Ọnyà terraform

Ọnyà terraform
Ka anyị gosipụta ọnyà ole na ole, gụnyere ndị metụtara loops, ma ọ bụrụ na nkwupụta na usoro mbugharị, yana okwu ndị ọzọ na-emetụta Terraform n'ozuzu:

  • ọnụ ọgụgụ na maka_ọ bụla paramita nwere oke;
  • belata oge nkwụsịtụ efu;
  • ọbụna ezigbo atụmatụ nwere ike ịda;
  • refactoring nwere ike inwe ọnyà ya;
  • nkwekọ akwụsịla akwụsị na-agbanwe agbanwe... na nbugharị.

Ọnụọgụ na maka paramita ọ bụla nwere oke

Ọmụmaatụ ndị dị n'isiakwụkwọ a na-eji oke ọnụọgụgụ na okwu maka_ọ bụla na loops na mgbagha ọnọdụ. Ha na-arụ ọrụ nke ọma, mana ha nwere oke abụọ dị mkpa ị kwesịrị ịma.

  • Gụọ na maka_onye ọ bụla enweghị ike ịkọwapụta mgbanwe mgbanwe akụrụngwa ọ bụla.
  • gụọ na maka_ọ bụla enweghị ike iji na nhazi modul.

gụọ na maka_onye ọ bụla enweghị ike ịkọwapụta mgbanwe mgbanwe akụrụngwa ọ bụla

Were ya na ị ga-ebuga ọtụtụ sava EC2 na n'ihi ihe ụfọdụ ị chọghị iji ASG. Koodu gị nwere ike ịdị ka nke a:

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

Ka anyị leba anya na ha otu otu.

Ebe ọ bụ na atọrọ ngụkọ ọnụ na uru kwụ ọtọ, koodu a ga-arụ ọrụ n'enweghị nsogbu: mgbe ị na-agba ọsọ itinye iwu, ọ ga-emepụta sava EC2 atọ. Mana gịnị ma ọ bụrụ na ịchọrọ ibuga otu ihe nkesa na mpaghara nnweta ọ bụla (AZ) n'ime mpaghara AWS gị ugbu a? Ị nwere ike ibunye koodu gị ndepụta mpaghara site na isi iyi data aws_availability_zones wee pịa nke ọ bụla wee mepụta sava EC2 n'ime ya site na iji paramita ọnụọgụ na ohere ntinye aha:

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" {}

Koodu a ga-arụkwa ọrụ nke ọma, ebe ọ bụ na ọnụọgụgụ nwere ike idetu isi mmalite data n'enweghị nsogbu ọ bụla. Ma gịnị na-eme ma ọ bụrụ na ọnụọgụ nke sava ịchọrọ ịmepụta dabere na mmepụta nke ụfọdụ akụ? Iji gosi nke a, ụzọ kacha mfe bụ iji random_integer akụ, nke, dị ka aha na-egosi, weghachiri a random integer:

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

Koodu a na-ewepụta nọmba random n'etiti 1 na 3. Ka anyị hụ ihe ga-eme ma ọ bụrụ na anyị nwaa iji mmepụta nke akụ a na ọnụọgụgụ nke aws_instance akụ:

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

Ọ bụrụ na ị na-eme atụmatụ terraform na koodu a, ị ga-enweta njehie a:

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.

Terraform chọrọ ka agụọ ọnụ na maka_onye ọ bụla ga-agbakọ n'oge a na-eme atụmatụ, tupu emee ma ọ bụ gbanwee akụrụngwa ọ bụla. Nke a pụtara na ọnụ na maka_ọ bụla nwere ike na-ezo aka na nkịtị, mgbanwe, isi mmalite data, na ọbụna ndepụta ihe onwunwe (ọ bụrụhaala na ogologo ha nwere ike ikpebi na oge nhazi oge), ma ọ bụghị gbakọọ akụ mmepụta variables.

gụọ na maka_ọ bụla enweghị ike iji na nhazi modul

Otu ụbọchị enwere ike ịnwa gị ịgbakwunye paramita ọnụọgụ na nhazi modul gị:

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

     count = 3

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

Koodu a na-anwa iji ịgụta n'ime modul mepụta nnomi atọ nke akụrụngwa webụsaịtị-ụyọkọ. Ma ọ bụ ị nwere ike ime ka ijikọ modul nhọrọ dabere na ụfọdụ ọnọdụ Boolean site na ịtọ ntọala ọnụ ya na 0. Nke a nwere ike ịdị ka koodu ezi uche dị na ya, mana ị ga-enweta njehie a mgbe ị na-eme atụmatụ terraform:

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.

Ọ dị nwute, dịka nke Terraform 0.12.6, anaghị akwado iji ọnụ ọgụgụ ma ọ bụ maka_ọ bụla na akụrụngwa modul. Dabere na ndetu ntọhapụ Terraform 0.12 (http://bit.ly/3257bv4), HashiCorp na-ezube ịgbakwunye ikike a n'ọdịniihu, yabụ dabere na mgbe ị gụrụ akwụkwọ a, ọ nwere ike ịdị adị. Iji chọpụta nke ọma, gụọ Terraform changelog ebe a.

Mmachi nke ntinye oge nkwụsị efu efu

Iji create_before_destroy ngọngọ jikọtara ya na ASG bụ nnukwu ngwọta maka ịmepụta oge nkwụsịtụ efu, ma e wezụga otu caveat: akwadoghị iwu autoscaling. Ma ọ bụ ka ọ bụrụ nke ziri ezi, nke a na-emegharị nha ASG azụ na min_size na ntinye ọ bụla, nke nwere ike ịbụ nsogbu ma ọ bụrụ na ị na-eji iwu autoscaling na-amụba ọnụ ọgụgụ nke sava na-agba ọsọ.

Dịka ọmụmaatụ, modul webserver-cluster nwere ụzọ akụrụngwa aws_autoscaling_schedule, nke na elekere itoolu nke ụtụtụ na-abawanye ọnụọgụ nke sava na ụyọkọ ahụ site na abụọ ruo iri. Ọ bụrụ na ibuga na, sịnụ, 9 am, ASG ọhụrụ ga-eji naanị sava abụọ bulite karịa iri ma nọrọ n'ụzọ ahụ ruo elekere 11 nke ụtụtụ n'echi ya.

Enwere ike wezuga mmachi a n'ọtụtụ ụzọ.

  • Gbanwee usoro nlọghachi azụ na aws_autoscaling_schedule site na 0 9 * * * ("na-agba na elekere 9 nke ụtụtụ") ka ọ bụrụ ihe dịka 0-59 9-17 * * * ("na-agba ọsọ kwa nkeji site na 9 ụtụtụ ruo 5 pm"). Ọ bụrụ na ASG enweelarị sava iri, na-agba ọsọ iwu autoscaling ọzọ agaghị agbanwe ihe ọ bụla, nke bụ ihe anyị chọrọ. Mana ọ bụrụ na etinyere ASG n'oge na-adịbeghị anya, iwu a ga-ahụ na n'ime nkeji kacha karịa ọnụọgụ nke sava ya ga-eru iri. Nke a abụghị ụzọ mara mma kpamkpam, na nnukwu jumps site na iri gaa na sava abụọ na azụ nwekwara ike ịkpata nsogbu maka ndị ọrụ.
  • Mepụta edemede omenala nke na-eji AWS API iji chọpụta ọnụọgụ nke sava na-arụ ọrụ na ASG, kpọọ ya site na iji isi iyi data mpụga (lee "Isi Data Mpụga" na ibe 249), wee tọọ paramita_ike ASG chọrọ na uru nke eweghachiri. edemede ahụ. N'ụzọ dị otú a, ihe atụ ASG ọhụrụ ọ bụla ga-agba ọsọ mgbe niile n'otu ikike dị ka koodu Terraform dị ugbu a ma mee ka ọ sie ike ịnọgide na-enwe.

N'ezie, Terraform gaara enwe nkwado nkwado maka mbugharị oge efu, mana dịka nke Mee 2019, ndị otu HashiCorp enweghị atụmatụ ịgbakwunye ọrụ a.nkọwa - ebe a).

Enwere ike mejuputa atụmatụ ziri ezi nke ọma

Mgbe ụfọdụ, iwu atụmatụ na-ewepụta atụmatụ mbugharị zuru oke, mana iwu etinyere na-eweghachi mperi. Gbalịa, dịka ọmụmaatụ, tinye akụrụngwa aws_iam_user n'otu aha ahụ ị jiri maka onye ọrụ IAM nke ị mepụtara na mbụ n'Isi nke 2:

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

Ugbu a, ọ bụrụ na ị na-agba ọsọ iwu atụmatụ, Terraform ga-ewepụta atụmatụ mbugharị nke yiri ezi uche:

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.

Ọ bụrụ n’ịgbara iwu itinye, ị ga-enweta njehie a:

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" {

Nsogbu, n'ezie, bụ na onye ọrụ IAM nwere aha ahụ adịlarị. Nke a nwere ike ime ọ bụghị naanị ndị ọrụ IAM, mana ọ fọrọ nke nta ka ọ bụrụ akụrụngwa ọ bụla. Ọ ga-ekwe omume na mmadụ jiri aka ya mepụta akụrụngwa a ma ọ bụ jiri ahịrị iwu, mana n'ụzọ ọ bụla, ID dakọtara na-eduga na esemokwu. Enwere ọtụtụ ọdịiche nke njehie a na-ejidekarị ndị ọhụrụ na Terraform na mberede.

Isi ihe bụ na iwu atụmatụ terraform na-eburu n'uche akụrụngwa ndị akọwapụtara na faịlụ steeti Terraform. Ọ bụrụ na emepụtara akụrụngwa n'ụzọ ọzọ (dịka ọmụmaatụ, iji aka site na ịpị na njikwa AWS), ha agaghị ejedebe na faịlụ steeti ya mere Terraform agaghị eburu ha n'uche mgbe ị na-eme atụmatụ atụmatụ. N'ihi ya, atụmatụ nke yiri ihe ziri ezi na nlele mbụ ga-apụta na ọ gaghị aga nke ọma.

Enwere ihe abụọ a ga-amụta na nke a.

  • Ọ bụrụ na ịmalitelarị ịrụ ọrụ na Terraform, ejila ihe ọ bụla ọzọ. Ọ bụrụ na ejiri Terraform jikwaa akụkụ nke akụrụngwa gị, ị nweghịzi ike iji aka gbanwee ya. Ma ọ bụghị ya, ọ bụghị naanị na ị ga-etinye ihe ize ndụ dị egwu Terraform njehie, mana ị na-ewepụkwa ọtụtụ uru nke IaC ebe ọ bụ na koodu agaghị abụzi ihe nnọchianya ziri ezi nke akụrụngwa gị.
  • Ọ bụrụ na ịnweelarị akụrụngwa ụfọdụ, jiri iwu mbubata. Ọ bụrụ na ị na-amalite iji Terraform nwere akụrụngwa dị adị, ị nwere ike tinye ya na faịlụ steeti site na iji iwu mbubata terraform. N'ụzọ dị otú a, Terraform ga-amata akụrụngwa kwesịrị ijikwa ya. Iwu mbubata na-ewe arụmụka abụọ. Nke mbụ bụ adreesị akụrụngwa na faịlụ nhazi gị. Okwu syntax ebe a bụ otu maka njikọ akụrụngwa: _. (dị ka aws_iam_user.existing_user). Arụmụka nke abụọ bụ ID nke akụrụngwa a ga-ebubata. Ka anyị kwuo na ID akụrụngwa aws_iam_user bụ aha njirimara (dịka ọmụmaatụ, yevgeniy.brikman), yana ID aws_instance bụ NJ sava EC2 (dị ka i-190e22e5). A na-egosipụtakarị otu esi ebubata akụrụngwa na akwụkwọ dị n'okpuru ibe ya.

    N'okpuru bụ iwu mbubata nke na-emekọrịta akụrụngwa aws_iam_user nke ị gbakwunyere na nhazi Terraform gị yana onye ọrụ IAM n'Isi nke 2 (na-anọchi aha gị maka yevgeniy.brikman, n'ezie):

    $ terraform import aws_iam_user.existing_user yevgeniy.brikman

    Terraform ga-akpọ API AWS ka ịchọta onye ọrụ IAM gị wee mepụta njikọ faịlụ steeti n'etiti ya na aws_iam_user.existing_user resource na nhazi Terraform gị. Site ugbu a gaa n'ihu, mgbe ị na-eme atụmatụ atụmatụ, Terraform ga-ama na onye ọrụ IAM adịlarị ma ọ gaghị anwa ịmepụta ya ọzọ.

    Ọ dị mma ịmara na ọ bụrụ na ịnweelarị ọtụtụ akụrụngwa ịchọrọ ibubata na Terraform, iji aka dee koodu na ibubata nke ọ bụla n'otu oge nwere ike bụrụ nsogbu. Yabụ na ọ bara uru ileba anya na ngwa dị ka Terraforming (http://terraforming.dtan4.net/), nke nwere ike ibubata koodu na steeti ozugbo site na akaụntụ AWS gị.

    Refactoring nwere ike inwe ọnyà ya

    Na-emegharị ahụ bụ ihe a na-emekarị na mmemme ebe ị na-agbanwe usoro ime nke koodu ahụ mgbe ị na-ahapụ àgwà mpụga na-agbanweghị agbanwe. Nke a bụ iji mee ka koodu ahụ dokwuo anya, dị mma, yana mfe idowe ya. Ntugharị bụ usoro dị mkpa nke kwesịrị iji ya eme ihe mgbe niile. Mana a bịa na Terraform ma ọ bụ ngwaọrụ IaC ọ bụla, ị ga-akpachara anya maka ihe ị na-ekwu site na “omume mpụga” nke mpempe koodu, ma ọ bụghị ya, nsogbu ndị a na-atụghị anya ya ga-ebilite.

    Dịka ọmụmaatụ, ụdị ngbanwe a na-ahụkarị bụ iji ndị nwere nghọta dochie aha mgbanwe ma ọ bụ ọrụ. Ọtụtụ IDE arụnyere n'ime nkwado maka nrụpụta ma nwee ike nyegharịa mgbanwe na ọrụ na-akpaghị aka n'oge ọrụ ahụ dum. N'asụsụ mmemme izugbe, nke a bụ usoro dị ntakịrị nke ị nwere ike ị gaghị eche maka ya, mana na Terraform ị ga-akpachara anya na nke a, ma ọ bụghị na ị nwere ike ịpụpụ.

    Ọmụmaatụ, modul sava-ụyọkọ nwere ihe ntinye agbanwe cluster_name:

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

    Ka e were ya na ị malitere iji modul a ka ibunye microservice akpọrọ foo. Ka emechara, ịchọrọ ịnyegharị ọrụ gị aha ka ọ bụrụ mmanya. Mgbanwe a nwere ike iyi ihe na-adịghị mkpa, mana n'eziokwu ọ nwere ike ịkpata ọgba aghara ọrụ.

    Nke bụ eziokwu bụ na modul sava-ụyọkọ na-eji cluster_name variable n'ọtụtụ akụrụngwa, gụnyere aha njirimara nke otu nchekwa abụọ yana 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]
    }

    Ọ bụrụ na ị gbanwee oke aha na akụrụngwa, Terraform ga-ehichapụ ụdị ochie nke akụrụngwa ahụ wee mepụta nke ọhụrụ n'ọnọdụ ya. Mana ọ bụrụ na akụrụngwa ahụ bụ ALB, n'etiti ihichapụ ya na nbudata ụdị ọhụrụ, ị gaghị enwe usoro iji bugharịa okporo ụzọ gaa na sava weebụ gị. N'otu aka ahụ, ọ bụrụ na ehichapụrụ otu nchekwa, sava gị ga-amalite ịjụ okporo ụzọ netwọk ọ bụla ruo mgbe emepụtara otu ọhụrụ.

    Ụdị mmeghari ọzọ ị nwere ike ịmasị gị bụ ịgbanwe ID Terraform. Ka anyị were akụrụngwa aws_security_group dị na modul nkesa-ụyọkọ webụ dịka ọmụmaatụ:

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

    A na-akpọ njirimara akụrụngwa a ọmụmaatụ. Were ya na mgbe ị na-emegharị ihe, ị kpebiri ịgbanwe ya ka ọ bụrụ nke a ghọtara karịa (n'echiche gị) aha cluster_instance:

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

    Gịnị ga-eme n'ikpeazụ? Nke ahụ ziri ezi: nkwụsị.

    Terraform na-ejikọta NJ akụrụngwa ọ bụla na NJ onye na-eweta igwe ojii. Dịka ọmụmaatụ, ejikọrọ iam_user na ID onye ọrụ AWS IAM, yana aws_intance jikọtara ya na NJ sava AWS EC2. Ọ bụrụ na ị gbanwee ID akụrụngwa (kwuo site na ọmụmaatụ gaa na cluster_instance, dị ka ọ dị na aws_security_group), na Terraform ọ ga-adị ka a ga-asị na ị ehichapụrụ ihe ochie ma tinye nke ọhụrụ. Ọ bụrụ na itinye mgbanwe ndị a, Terraform ga-ehichapụ otu nchekwa ochie wee mepụta nke ọhụrụ, ebe sava gị na-amalite ịjụ okporo ụzọ netwọk ọ bụla.

    Nke a bụ isi ihe anọ dị mkpa ị ga-ewepụ na mkparịta ụka a.

    • Jiri iwu atụmatụ mgbe niile. Ọ nwere ike ikpughe snags ndị a niile. Jiri nlezianya nyochaa mmepụta ya ma ṅaa ntị n'ọnọdụ ebe Terraform na-ezube ihichapụ akụrụngwa ndị o yikarịrị ka agaghị ehichapụ.
    • Mepụta tupu ihichapụ. Ọ bụrụ na ịchọrọ iji dochie akụrụngwa, chee echiche nke ọma ma ọ dị mkpa ka ị mepụta nnọchi tupu ihichapụ nke mbụ. Ọ bụrụ na azịza ya bụ ee, create_before_destroy nwere ike inye aka. Enwere ike nweta otu nsonaazụ ahụ na aka site n'ime usoro abụọ: buru ụzọ tinye ihe ọhụrụ na nhazi ma mee iwu ntinye, wee wepụ ihe ochie ochie na nhazi ma jiri iwu tinye ọzọ.
    • Ịgbanwe njirimara chọrọ mgbanwe steeti. Ọ bụrụ na ịchọrọ ịgbanwe NJ ejikọtara na akụrụngwa (dịka ọmụmaatụ, nyegharịa aws_security_group site na ọmụmaatụ gaa na cluster_intance) na-ehichapụghị akụrụngwa yana imepụta ụdị ọhụrụ ya, ị ga-emelite faịlụ steeti Terraform otu a. Emela nke a na aka gị - jiri iwu steeti terraform kama. Mgbe ị na-atụgharị aha njirimara, ị ga-agba ọsọ iwu mv steeti terraform, nke nwere syntax ndị a:
      terraform state mv <ORIGINAL_REFERENCE> <NEW_REFERENCE>

      ORIGINAL_REFERENCE bụ okwu na-ezo aka na akụrụngwa n'ụdị ọ dị ugbu a, na NEW_REFERENCE bụ ebe ịchọrọ ịkwaga ya. Dịka ọmụmaatụ, mgbe ị na-atụgharị aha ndị otu aw_security_group site na ọmụmaatụ gaa na cluster_instance, ị ga-emerịrị iwu a:

      $ terraform state mv 
         aws_security_group.instance 
         aws_security_group.cluster_instance

      Nke a na-agwa Terraform na steeti e jikọtara ya na aws_security_group.intance ga-ejikọta ya na aws_security_group.cluster_instance. Ọ bụrụ na mgbe renaming na-agba ọsọ a iwu terraform atụmatụ egosighi mgbanwe ọ bụla, mgbe ahụ i mere ihe niile n'ụzọ ziri ezi.

    • Enweghị ike ịgbanwe ntọala ụfọdụ. Paragraf nke ọtụtụ akụrụngwa anaghị agbanwe agbanwe. Ọ bụrụ n’ịgbalị ịgbanwe ha, Terraform ga-ehichapụ akụrụngwa ochie wee mepụta nke ọhụrụ n’ọnọdụ ya. Ibe akụrụngwa ọ bụla ga-egosipụtakarị ihe na-eme mgbe ị gbanwere otu ntọala, yabụ hụ na ịlele akwụkwọ ahụ. Jiri iwu atụmatụ mgbe niile wee tụlee iji atụmatụ create_before_destroy.

    Nkwekọrịta echere na-agbanwe agbanwe... yana nbigharị

    API ụfọdụ ndị na-eweta ígwé ojii, dị ka AWS, na-ejikọtaghị ọnụ ma egbuola oge nkwụsi ike. Asynchony pụtara na interface ahụ nwere ike weghachi nzaghachi ozugbo na-echeghị ka emechara ihe a rịọrọ. Nkwekọrịta na-egbu oge pụtara na mgbanwe nwere ike iwepụta oge ịgbasa n'ime usoro; ka nke a na-eme, nzaghachi gị nwere ike ịbụ nke na-ekwekọghị ekwekọ yana dabere na ụdị ụdị data na-aza oku API gị.

    Were ya, dịka ọmụmaatụ, na ị na-akpọ API na AWS na-arịọ ya ka o mepụta sava EC2. API ga-eweghachi nzaghachi “na-aga nke ọma” (201 Created) ihe fọrọ nke nta ka ọ bụrụ ozugbo, na-echeghị ka emee ihe nkesa n'onwe ya. Ọ bụrụ na ị na-agbalị ijikọ ya ozugbo, ọ ga-fọrọ nke nta ka ọ daa n'ihi na n'oge ahụ AWS ka na-amalite ihe onwunwe ma ọ bụ, ọzọ, ihe nkesa abanyebeghị. Ọzọkwa, ọ bụrụ na ịmee oku ọzọ iji nweta ozi gbasara ihe nkesa a, ị nwere ike ịnweta njehie (404 Not Found). Ihe bụ na ozi gbasara ihe nkesa EC2 a ka nwere ike ịgbasa na AWS niile tupu ọ dị ebe niile, ị ga-echere sekọnd ole na ole.

    Mgbe ọ bụla ị na-eji API asynchronous yana nkwụsi ike umengwụ, ị ga-anwalerịrị arịrịọ gị kwa oge ruo mgbe ihe ahụ gwụchara wee gbasaa na sistemụ. N'ụzọ dị mwute, AWS SDK adịghị enye ngwá ọrụ ọ bụla dị mma maka nke a, na ọrụ Terraform na-enweta ọtụtụ ahụhụ dị ka 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

    N'ikwu ya n'ụzọ ọzọ, ị mepụtara akụrụngwa (dị ka subnet) wee gbalịa nweta ụfọdụ ozi gbasara ya (dị ka ID nke subnet emepụtara ọhụrụ), Terraform enweghị ike ịchọta ya. Ọtụtụ n'ime ahụhụ ndị a (gụnyere 6813) ka edobere, mana ha ka na-etolite site n'oge ruo n'oge, ọkachasị mgbe Terraform na-agbakwunye nkwado maka ụdị akụrụngwa ọhụrụ. Nke a na-ewe iwe, mana n'ọtụtụ ọnọdụ adịghị emerụ ahụ. Mgbe ị na-agba ọsọ terraform tinye ọzọ, ihe niile kwesịrị ịrụ ọrụ, ebe ọ bụ na n'oge a, ozi ahụ agbasaworị na sistemụ.

    Nke a bụ akụkụ nke akwụkwọ Evgeniy Brikman gosipụtara "Teraform: akụrụngwa na ọkwa koodu".

isi: www.habr.com

Tinye a comment