Mailei Terraform

Mailei Terraform
Se'i o tatou fa'ailo ni nai fa'alavelave, e aofia ai mea e feso'ota'i ma fa'agasolo, pe afai o fa'amatalaga ma fa'aogaina auala, fa'apea fo'i ma isi fa'afitauli lautele e a'afia ai Terraform i le lautele:

  • o le faitau ma mo_ta'iala ta'itasi e iai tapula'a;
  • fa'atapula'a le fa'atinoina o taimi fa'aletonu;
  • e oo lava i se fuafuaga lelei e mafai ona toilalo;
  • toefactoring e mafai ona i ai ona mailei;
  • o le felagolagomai tolopo e ogatasi... ma le tolopoina.

E iai tapula'a le faitau ma mo_ta'i uma

O fa'ata'ita'iga i lenei mataupu e fa'aoga tele ai le fa'asologa o le numera ma le fa'aaliga mo_ta'itasi i fa'amaufa'ailoga ma fa'atonuga. E lelei a latou gaioiga, ae e lua a latou tapulaa taua e tatau ona e nofouta i ai.

  • Faitau ma mo_each e le mafai ona fa'asino i so'o se fesuiaiga o meafaitino.
  • faitau ma mo_each e le mafai ona fa'aoga ile fa'atulagaina o module.

faitau ma for_each e le mafai ona fa'asino i so'o se suiga o alagaoa

Vaai faalemafaufau e te manaʻomia le faʻapipiʻiina o le tele o sapalai EC2 ma mo nisi mafuaʻaga e te le manaʻo e faʻaaoga le ASG. O lau code atonu e pei o lenei:

resource "aws_instance" "example_1" {
   count             = 3
   ami                = "ami-0c55b159cbfafe1f0"
   instance_type = "t2.micro"
}

Se'i o tatou va'ava'ai ta'itasi.

Talu ai ona o le numera o le numera ua setiina i se tulaga taua, o lenei code o le a galue e aunoa ma ni faʻafitauli: pe a e faʻatinoina le faʻatonuga o le faʻatonuga, o le a fatuina ai le tolu EC2 servers. Ae fa'afefea pe a e mana'o e fa'apipi'i se 'au'aunaga i sone Avanoa ta'itasi (AZ) i totonu o lau AWS o lo'o iai nei? E mafai ona e ave lau fa'ailoga e utaina ai se lisi o sone mai le aws_availability_zones fa'amatalaga fa'amatalaga ona fa'asolo lea i ia mea ta'itasi ma fai se EC2 server i totonu e fa'aaoga ai le numera numera ma le fa'asologa o fa'asinomaga avanoa:

resource "aws_instance" "example_2" {
   count                   = length(data.aws_availability_zones.all.names)
   availability_zone   = data.aws_availability_zones.all.names[count.index]
   ami                     = "ami-0c55b159cbfafe1f0"
   instance_type       = "t2.micro"
}

data "aws_availability_zones" "all" {}

O lenei code o le a lelei foi, talu ai o le numera numera e mafai ona faʻasino i punaʻoa faʻamaumauga e aunoa ma se faʻafitauli. Ae o le a le mea e tupu pe afai o le numera o 'auʻaunaga e te manaʻomia e fatuina e faʻalagolago i le gaosiga o nisi punaoa? Ina ia faʻaalia lenei mea, o le auala pito sili ona faigofie o le faʻaaogaina lea o le random_integer punaoa, lea, e pei ona taʻu mai e le igoa, toe faʻafoʻi mai se numera faʻafuaseʻi:

resource "random_integer" "num_instances" {
  min = 1
  max = 3
}

O lenei code e fa'atupuina ai se numera fa'afuase'i i le va o le 1 ma le 3. Se'i va'ai po'o le a le mea e tupu pe a tatou taumafai e fa'aoga le mea e maua mai i lenei punaoa i le fa'asologa o le numera o le aws_instance resource:

resource "aws_instance" "example_3" {
   count             = random_integer.num_instances.result
   ami                = "ami-0c55b159cbfafe1f0"
   instance_type = "t2.micro"
}

Afai e te faʻatautaia le terraform plan i luga o lenei code, o le ae mauaina le mea sese:

Error: Invalid count argument

   on main.tf line 30, in resource "aws_instance" "example_3":
   30: count = random_integer.num_instances.result

The "count" value depends on resource attributes that cannot be determined until apply, so Terraform cannot predict how many instances will be created. To work around this, use the -target argument to first apply only the resources that the count depends on.

E mana'omia e Terraform le faitau ma mo_ta'itasi e fa'atatau i le taimi o fuafuaga, a'o le'i faia so'o se alagā'oa pe suia. O lona uiga o le faitau ma mo_each e mafai ona faasino i mea moni, fesuiaiga, puna'oa o fa'amaumauga, ma e o'o lava i lisi o punaoa (pe a mafai ona fa'amauina lo latou umi i le taimi fa'atulagaina), ae le o le fa'avasegaina o fesuiaiga o alagaoa.

faitau ma mo_each e le mafai ona fa'aoga ile fa'atulagaina o module

E iai se aso e ono fa'aosoosoina ai oe e fa'aopoopo se fa'ailoga numera i lau fa'atulagaina o module:

module "count_example" {
     source = "../../../../modules/services/webserver-cluster"

     count = 3

     cluster_name = "terraform-up-and-running-example"
     server_port = 8080
     instance_type = "t2.micro"
}

O lenei tulafono e taumafai e fa'aoga le numera i totonu o se module e fai ai ni kopi se tolu o le upegatafa'ilagi-cluster punaoa. Pe e te mana'o e fai le fa'afeso'ota'i o se module e filifili e fa'atatau i nisi tulaga Boolean e ala i le fa'atulagaina o lona fa'amaufa'ailoga i le 0. Atonu e foliga mai o se fa'ailoga talafeagai, ae o le a e maua le mea sese pe a fa'atino fuafuaga fa'afanua:

Error: Reserved argument name in module block

   on main.tf line 13, in module "count_example":
   13: count = 3

The name "count" is reserved for use in a future version of Terraform.

Ae paga lea, e pei o Terraform 0.12.6, e le lagolagoina le fa'aogaina o le numera po'o mo_each i totonu o se punaoa module. E tusa ai ma le Terraform 0.12 faʻasalalauga faʻamatalaga (http://bit.ly/3257bv4), ua fuafua HashiCorp e faʻaopoopo lenei gafatia i le lumanaʻi, o lea e fuafua i le taimi e te faitau ai i lenei tusi, atonu ua avanoa. Ina ia iloa mautinoa, faitau le Terraform changelog iinei.

Tapula'a o Fa'atonuga ole Taimi Fa'ato'ilalo

O le fa'aogaina o le poloka create_before_destroy fa'atasi ma le ASG o se fofo sili lea mo le fa'atupuina o le fa'atinoina o le leai o se taimi, se'i vagana ai le fa'atagaga e tasi: e le lagolagoina tulafono fa'a-auto. Pe sili atu le saʻo, e toe faʻafoʻi le tele o le ASG i le min_size i luga o faʻatonuga uma, e mafai ona avea ma faʻafitauli pe afai o loʻo e faʻaogaina tulafono faʻapitoa e faʻateleina ai le numera o sapalai o loʻo tamoe.

Mo se faʻataʻitaʻiga, o le webserver-cluster module o loʻo i ai se pea aws_autoscaling_schedule resources, lea i le 9 i le taeao e faʻateleina ai le numera o sapalai i le fuifui mai le lua i le sefulu. Afai e te fa'atulagaina i, fai mai, 11 i le taeao, o le ASG fou o le a fa'aulu i luga na'o le lua sapalai nai lo le sefulu ma tumau ai i lena auala seia oo i le 9 i le taeao i le aso e sosoo ai.

O lenei tapula'a e mafai ona fa'asao i le tele o auala.

  • Suia le parakalafa toe fai i le aws_autoscaling_schedule mai le 0 9 * * * (“taufetuli i le 9 i le taeao”) i se mea e pei o le 0-59 9-17 * * * (“taufetuli i minute uma mai le 9 i le taeao i le 5 i le afiafi”). Afai o le ASG ua uma ona i ai ni 'auʻaunaga e sefulu, o le toe faʻaogaina o lenei tulafono autoscaling o le a le suia ai se mea, o le mea lea matou te mananaʻo ai. Ae afai e le'i leva ona tu'uina atu le ASG, o le a mautinoa e le tulafono lea e o'o atu i le sefulu le aofa'i o ana 'au'aunaga i totonu o le minute. E le'o se faiga fa'alelei atoa, ma oso tetele mai le sefulu i le lua 'au'aunaga ma tua e mafai fo'i ona fa'atupu fa'afitauli mo tagata fa'aoga.
  • Fausia se tusitusiga faʻapitoa e faʻaaoga ai le AWS API e fuafua ai le aofaʻi o sapalai o loʻo galue i le ASG, valaʻau e faʻaaoga ai se puna faʻamatalaga mai fafo (silasila i le "Faʻamatalaga Faʻamatalaga Faʻamatalaga" i le itulau 249), ma seti le manaʻo_capacity parameter a le ASG i le tau toe faafoi mai e. le tusitusiga. O le auala lea, o fa'ata'ita'iga fou ASG ta'itasi o le a tamo'e i le tulaga tutusa ma le code Terraform o lo'o iai ma fa'afaigata ai ona tausia.

O le mea moni, o Terraform o le a lelei ona fausia-i totonu o le lagolago mo le leai o se taimi e faʻaaogaina, ae o Me 2019, e leai se fuafuaga a le 'au HashiCorp e faʻaopoopoina lenei galuega (fa'amatalaga - iinei).

O le fuafuaga sa'o e ono le manuia le faatinoga

O nisi taimi o le fa'atonuga o le fuafuaga e maua ai se fuafuaga fa'apipi'i sa'o lelei, ae o le fa'atonuga fa'atonu e toe fa'afo'i mai ai se mea sese. Taumafai, mo se faʻataʻitaʻiga, faʻaopoopo le aws_iam_user punaoa ma le igoa tutusa na e faʻaaogaina mo le tagata IAM na e faia muamua i le Mataupu 2:

resource "aws_iam_user" "existing_user" {
   # Подставьте сюда имя уже существующего пользователя IAM,
   # чтобы попрактиковаться в использовании команды terraform import
   name = "yevgeniy.brikman"
}

Ia, afai e te faʻatautaia le faʻatonuga o le fuafuaga, o le a faʻaalia e Terraform se fuafuaga faʻapipiʻi talafeagai:

Terraform will perform the following actions:

   # aws_iam_user.existing_user will be created
   + resource "aws_iam_user" "existing_user" {
         + arn                  = (known after apply)
         + force_destroy   = false
         + id                    = (known after apply)
         + name               = "yevgeniy.brikman"
         + path                 = "/"
         + unique_id         = (known after apply)
      }

Plan: 1 to add, 0 to change, 0 to destroy.

Afai e te faʻatinoina le faʻatonuga o le a e mauaina le mea sese:

Error: Error creating IAM User yevgeniy.brikman: EntityAlreadyExists:
User with name yevgeniy.brikman already exists.

   on main.tf line 10, in resource "aws_iam_user" "existing_user":
   10: resource "aws_iam_user" "existing_user" {

O le faʻafitauli, ioe, o se tagata faʻaoga IAM ma lena igoa ua uma ona i ai. Ma e mafai ona tupu lenei mea e le gata i tagata faʻaoga IAM, ae toetoe lava o soʻo se punaoa. E mafai ona faia e se tasi lenei punaoa ma le lima poʻo le faʻaaogaina o le laina faʻatonu, ae poʻo le a lava le auala, faʻafetaui ID e taʻitaʻia ai feeseeseaiga. E tele fesuiaiga o lenei mea sese e masani ona faʻateʻia tagata fou i Terraform.

O le mea autu o le faʻatonuga o le fuafuaga o le terraform e naʻo le amanaʻiaina o na punaoa o loʻo faʻamaonia i le Terraform state file. Afai o punaoa e fausia i se isi auala (mo se faʻataʻitaʻiga, ma le lima e ala i le kiliki i le AWS console), latou te le faʻamutaina i le faila a le setete ma o le mea lea e le amanaia ai e Terraform pe a faʻatinoina le faʻatonuga o le fuafuaga. O se taunuuga, o se fuafuaga e foliga sa'o i le tepa muamua o le a iu ina le manuia.

E lua lesona e aʻoaʻoina mai ai.

  • Afai ua uma ona e amata galue ma Terraform, aua le faʻaaogaina se isi mea. Afai o se vaega o au atina'e o lo'o pulea e fa'aaoga ai le Terraform, e le toe mafai ona e toe suia ma le lima. A leai, e le gata ina e lamatia mea sese Terraform, ae e te faʻafitia foi le tele o faʻamanuiaga o le IaC talu ai o le code o le a le toe avea ma faʻamatalaga saʻo o au atinaʻe.
  • Afai ua iai ni au atina'e, fa'aoga le fa'atonuga mai fafo. Afai o loʻo e amata faʻaaoga Terraform ma atinaʻe o loʻo i ai nei, e mafai ona e faʻaopopo i le faila a le setete e faʻaaoga ai le terraform import command. O le auala lea e iloa ai e Terraform mea tetele e mana'omia ona pulea. O le fa'atonuga fa'aulufale mai e lua finauga. Muamua o le tuatusi punaoa i au faila faila. O le syntax iinei e tutusa ma mo so'oga punaoa: _. (pei aws_iam_user.existing_user). O le finauga lona lua o le ID o le punaoa e faaulufale mai. Fa'apea o le ID punaoa aws_iam_user o le igoa fa'aoga (mo se fa'ata'ita'iga, yevgeniy.brikman), ma le ID punaoa aws_instance o le ID server EC2 (pei o i-190e22e5). O le fa'afefea ona fa'aulufaleina mai o se puna'oa e masani lava ona fa'ailoa mai i fa'amaumauga i le pito i lalo o lona itulau.

    O loʻo i lalo se faʻatonuga faʻaulufaleina e faʻamaopoopoina le aws_iam_user punaoa na e faʻaopoopoina i lau faʻatulagaga Terraform faʻatasi ma le tagata IAM i le Mataupu 2 (sui lou igoa mo yevgeniy.brikman, ioe):

    $ terraform import aws_iam_user.existing_user yevgeniy.brikman

    O le a vala'au Terraform i le AWS API e su'e lau IAM fa'aoga ma fa'atupu se fa'asoa faila a le setete i le va ma le aws_iam_user.existing_user punaoa i lau fa'atulagaga Terraform. Mai le taimi nei, pe a e faʻatautaia le faʻatonuga o le fuafuaga, o le a iloa e Terraform o loʻo i ai le tagata IAM ma o le a le toe taumafai e toe faia.

    E taua le matauina afai ua tele au punaoa e te manaʻo e faʻaulufale mai i totonu o Terraform, o le tusiina ma le lima o le code ma le faʻaulufaleina mai o mea taʻitasi i le taimi e mafai ona avea ma faʻalavelave. O lea e aoga le va'ai i se meafaigaluega e pei o Terraforming (http://terraforming.dtan4.net/), lea e mafai ona otometi le fa'aulufale mai o le code ma le setete mai lau tala AWS.

    Refactoring e mafai ona i ai ona mailei

    Toe faia ose faiga masani i polokalame e te suia ai le fausaga i totonu o le code ae tu'u le amio i fafo e le suia. O le mea lea e fa'amanino atili ai le fa'ailoga, mama, ma faigofie ona tausia. Refactoring o se metotia taua e tatau ona faʻaaogaina i taimi uma. Ae a oʻo mai i Terraform poʻo soʻo se isi meafaigaluega IaC, e tatau ona e matua faʻaeteete i le uiga o lau "amio i fafo" o se fasi tulafono, a leai o le a tulaʻi mai faʻafitauli e leʻi mafaufauina.

    Mo se faʻataʻitaʻiga, o se ituaiga masani o le toe faʻaleleia o le suia o igoa o fesuiaiga poʻo galuega i mea e sili atu ona malamalama. O le tele o IDE o loʻo iai le lagolago mo le toe faʻaleleia ma e mafai ona toe faʻaigoaina suiga ma galuega i totonu o le poloketi. I gagana fa'apolokalame fa'amoemoe lautele, ose faiga fa'atauva'a lea atonu e te le mafaufau i ai, ae i Terraform e tatau ona e matua fa'aeteete i lenei mea, a le o lea e te ono fa'aletonu.

    Mo se faʻataʻitaʻiga, o le webserver-cluster module o loʻo i ai se faʻaogaina ole cluster_name:

    variable "cluster_name" {
       description = "The name to use for all the cluster resources"
       type          = string
    }

    Va'ai faalemafaufau na e amata fa'aogaina lenei module e fa'atino ai se microservice e ta'ua foo. Mulimuli ane, e te mana'o e toe fa'aigoa lau tautua ile pa. O lenei suiga atonu e foliga faatauvaa, ae o le mea moni e mafai ona mafua ai le faʻalavelaveina o auaunaga.

    O le mea moni o le webserver-cluster module e faʻaaogaina le cluster_name variable i le tele o punaoa, e aofia ai le faʻailoga igoa o vaega saogalemu e lua ma le ALB:

    resource "aws_lb" "example" {
       name                    = var.cluster_name
       load_balancer_type = "application"
       subnets = data.aws_subnet_ids.default.ids
       security_groups      = [aws_security_group.alb.id]
    }

    Afai e te suia le igoa parakalafa i luga o se punaoa, o le a tape e Terraform le lomiga tuai o lena punaoa ma fatuina se mea fou i lona tulaga. Ae afai o lena punaoa o se ALB, i le va o le tapeina ma le siiina mai o se lomiga fou, o le a leai sau masini e toe faʻafeiloaʻi ai fefaʻatauaiga i lau 'upega tafaʻilagi. E fa'apea fo'i, afai e tapeina se vaega o le puipuiga, o le a amata ona teena e au 'au'aunaga so'o se fefa'ataua'iga o feso'ota'iga se'ia o'o ina faia se vaega fou.

    O le isi ituaiga o toe fa'afoliga atonu e te fiafia i ai o le suia lea o le Terraform ID. Sei o tatou ave le aws_security_group punaoa i le webserver-cluster module e fai ma faʻataʻitaʻiga:

    resource "aws_security_group" "instance" {
      # (...)
    }

    O le fa'ailoaina o lenei punaoa ua ta'ua o le fa'ata'ita'iga. Vaʻai faalemafaufau i le taimi o le toe faʻaleleia na e filifili e sui i se igoa e sili atu ona malamalama (i lou manatu) cluster_instance:

    resource "aws_security_group" "cluster_instance" {
       # (...)
    }

    O le ā o le a tupu i le iʻuga? E sa'o: o se fa'alavelave.

    E fa'afeso'ota'i e Terraform ID puna'oa ta'itasi ma ID e tu'uina atu ao. Mo se fa'ata'ita'iga, iam_user e feso'ota'i ma le AWS IAM ID fa'aoga, ma aws_instance e feso'ota'i ma le ID server AWS EC2. Afai e te suia le ID punaoa (fai mai le faʻataʻitaʻiga i le cluster_instance, e pei o le tulaga i le aws_security_group), i Terraform o le a foliga mai ua e tapeina le punaoa tuai ma faʻaopoopo se mea fou. Afai e te faʻaogaina nei suiga, o le a tape e Terraform le vaega tuai o le puipuiga ma fatuina se mea fou, aʻo amata ona teena e au 'auʻaunaga soʻo se fefaʻatauaiga o fesoʻotaiga.

    O lesona autu nei e fa e tatau ona e mauaina mai lenei talanoaga.

    • Fa'aaoga i taimi uma le fa'atonuga o le fuafuaga. E mafai ona faʻaalia uma nei faʻalavelave. Toe iloilo ma le faaeteete ana galuega faatino ma gauai atu i tulaga e fuafua ai Terraform e tape punaoa e foliga mai e le tatau ona tapeina.
    • Fausia ae e te le'i tapeina. Afai e te manaʻo e sui se punaoa, mafaufau lelei pe e te manaʻomia le faia o se mea e sui ai aʻo leʻi tapeina le mea muamua. Afai o le tali o le ioe, create_before_destroy e mafai ona fesoasoani. O le taunuuga lava e tasi e mafai ona ausia ma le lima e ala i le faia o ni laasaga se lua: muamua faʻaopoopo se punaoa fou i le faʻatulagaina ma faʻatautaia le faʻatonuga faʻaoga, ona aveese lea o le punaoa tuai mai le faʻatulagaina ma toe faʻaaoga le poloaiga faʻaoga.
    • O le suia o fa'ailoga e mana'omia ai le suiga o le tulaga. Afai e te manaʻo e sui le ID e fesoʻotaʻi ma se punaoa (mo se faʻataʻitaʻiga, toe faʻaigoaina aws_security_group mai le faʻataʻitaʻiga i cluster_instance) e aunoa ma le tapeina o le punaoa ma fatuina se faʻamatalaga fou, e tatau ona e faʻafouina le Terraform state file e tusa ai. Aua ne'i faia ma le lima lenei mea - fa'aaoga le fa'atonuga o le setete. Pe a toe faʻaigoaina faʻamatalaga, e tatau ona e faʻatautaia le terraform state mv command, lea e iai le syntax lea:
      terraform state mv <ORIGINAL_REFERENCE> <NEW_REFERENCE>

      ORIGINAL_REFERENCE o se fa'aaliga e fa'asino i le puna'oa i lona tulaga o iai nei, ma NEW_REFERENCE o le mea e te mana'o e fa'anofo ai. Mo se faʻataʻitaʻiga, pe a toe faʻaigoaina le aws_security_group group mai le faʻataʻitaʻiga i le cluster_instance, e te manaʻomia le faʻatinoina o le poloaiga lenei:

      $ terraform state mv 
         aws_security_group.instance 
         aws_security_group.cluster_instance

      E ta'u atu ai ia Terraform o le setete sa feso'ota'i muamua ma aws_security_group.instance ua tatau nei ona feso'ota'i ma aws_security_group.cluster_instance. Afai a maeʻa ona toe faʻaigoaina ma faʻatautaia lenei faʻatonuga o le terraform plan e le faʻaalia ai ni suiga, ona e faia saʻo mea uma.

    • O nisi tulaga e le mafai ona suia. O fa'asologa o le tele o punaoa e le mafai ona suia. Afai e te taumafai e sui, o le a tape e Terraform le punaoa tuai ma fatuina se mea fou i lona tulaga. O itulau punaoa ta'itasi e masani ona fa'aalia ai le mea e tupu pe a e suia se fa'atulagaga fa'apitoa, ia mautinoa e siaki le fa'amaumauga. Faʻaaoga i taimi uma le faʻatonuga o le fuafuaga ma mafaufau e faʻaaoga le create_before_destroy fuafuaga.

    O le fa'atuai le tumau e ogatasi... ma le tolopoina

    O nisi API o lo'o tu'uina atu ao, e pei ole AWS, e le'o fa'atasi ma ua tuai ona fa'atasi. Asynchrony o lona uiga e mafai e le atinaʻe vave ona toe faʻafoʻi mai se tali e aunoa ma le faʻatali mo le gaioiga o loʻo talosagaina e maeʻa. Fa'atuai tumau o lona uiga o suiga e ono umi se taimi e fa'asalalauina ai i le faiga atoa; a'o tupu lenei mea, o au tali atonu e le o gatasi ma fa'alagolago i le fa'asologa o fa'amaumauga o lo'o tali atu i au API telefoni.

    Vaʻai faalemafaufau, mo se faʻataʻitaʻiga, e te faia se API telefoni i le AWS e fai atu i ai e fai se EC2 server. O le API o le a toe faʻafoʻi mai se tali "manuia" (201 Created) toetoe lava a vave, e aunoa ma le faʻatali mo le server lava ia e faia. Afai e te taumafai e faʻafesoʻotaʻi i le taimi lava lena, e toetoe lava a le manuia ona o le taimi lena o loʻo faʻauluina pea e le AWS punaoa pe, i se isi itu, e leʻi faʻauluina le server. E le gata i lea, afai e te toe faia se isi telefoni e maua mai ai faʻamatalaga e uiga i lenei 'auʻaunaga, atonu e te maua se mea sese (404 E Leʻi Maua). O le mea o le faʻamatalaga e uiga i lenei EC2 server e mafai lava ona faʻasalalau i le AWS atoa ae leʻi maua i soʻo se mea, e tatau ona e faʻatali mo ni nai sekone.

    So'o se taimi lava e te fa'aogaina ai se API fa'atasi ma le paie, e tatau ona e toe fa'ata'ita'i i lea taimi ma lea taimi lau talosaga se'ia mae'a le gaioiga ma fa'asalalau i le faiga. Ae paga lea, e le maua e le AWS SDK ni meafaigaluega lelei mo lenei mea, ma o le Terraform project sa masani ona mafatia i le tele o bugs pei o 6813 (https://github.com/hashicorp/terraform/issues/6813):

    $ terraform apply
    aws_subnet.private-persistence.2: InvalidSubnetID.NotFound:
    The subnet ID 'subnet-xxxxxxx' does not exist

    I se isi faaupuga, e te fatuina se punaoa (pei o se subnet) ona taumafai lea e maua ni faʻamatalaga e uiga i ai (pei o le ID o le subnet fou fou), ma e le mafai e Terraform ona maua. O le tele o nei bugs (e aofia ai le 6813) ua uma ona faʻaleleia, ae o loʻo tupu pea mai lea taimi i lea taimi, aemaise lava pe a faʻaopoopo e Terraform le lagolago mo se ituaiga punaoa fou. E ita tele lenei mea, ae i le tele o tulaga e le afaina ai. A e toe faʻaogaina le terraform, e tatau ona aoga mea uma, talu ai o le taimi lea o le a faʻasalalau faʻamatalaga i totonu o le polokalama.

    O lenei vaega o loʻo tuʻuina atu mai le tusi e Evgeniy Brikman "Terraform: aseta i le tulaga code".

puna: www.habr.com

Faaopoopo i ai se faamatalaga