Duilgheadasan terraform

Duilgheadasan terraform
Nach toir sinn cuideam air beagan dhuilgheadasan, a’ gabhail a-steach an fheadhainn co-cheangailte ri lùban, ma tha aithrisean agus dòighean cleachdaidh, a bharrachd air cùisean nas fharsainge a bheir buaidh air Terraform san fharsaingeachd:

  • tha crìochan aig a' chunntas agus airson_gach paramadair;
  • cuir crìoch air cleachdadh ùine downt neoni;
  • faodaidh eadhon plana math fàiligeadh;
  • faodaidh na duilgheadasan aige a bhith aig ath-leasachadh;
  • tha co-leanailteachd dàil co-chòrdail... le dàil.

Tha crìochan aig crìochan cunntais agus for_gach

Tha na h-eisimpleirean sa chaibideil seo a’ dèanamh feum farsaing den pharameter cunntais agus an abairt for_each ann an lùban agus loidsig chumha. Bidh iad a’ coileanadh gu math, ach tha dà chuingealachadh cudromach aca a dh’ fheumas tu a bhith mothachail.

  • Chan urrainn cunnt agus for_each iomradh a thoirt air caochladairean toraidh stòrais sam bith.
  • cunntadh agus chan urrainn for_each a chleachdadh ann an rèiteachadh modal.

cunntadh agus chan urrainn dha for_each iomradh a thoirt air caochladairean toraidh stòrais sam bith

Smaoinich gu feum thu grunn luchd-frithealaidh EC2 a chleachdadh agus airson adhbhar air choireigin chan eil thu airson ASG a chleachdadh. Dh’ fhaodadh do chòd a bhith mar seo:

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

Bheir sinn sùil orra aon ri aon.

Leis gu bheil am paramadair cunntais air a shuidheachadh gu luach statach, obraichidh an còd seo gun duilgheadasan: nuair a ruitheas tu an àithne tagraidh, cruthaichidh e trì frithealaichean EC2. Ach dè ma bha thu airson aon fhrithealaiche a chuir a-steach anns gach Sòn ri fhaighinn (AZ) taobh a-staigh na sgìre AWS gnàthach agad? Faodaidh tu do chòd liosta de shònaichean a luchdachadh bhon stòr dàta aws_availability_zones agus an uairsin lùb tro gach fear agus cruthaich frithealaiche EC2 ann a’ cleachdadh am paramadair cunntais agus ruigsinneachd clàr-amais:

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

Obraichidh an còd seo gu math cuideachd, oir faodaidh am paramadair cunntais iomradh a thoirt air stòran dàta gun duilgheadas sam bith. Ach dè thachras ma tha an àireamh de luchd-frithealaidh a dh'fheumas tu a chruthachadh an crochadh air toradh cuid de ghoireas? Gus seo a shealltainn, is e an dòigh as fhasa an goireas random_integer a chleachdadh, a tha, mar a tha an t-ainm a’ moladh, a’ tilleadh àireamh-sluaigh air thuaiream:

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

Tha an còd seo a' cruthachadh àireamh air thuaiream eadar 1 agus 3. Chì sinn dè thachras ma dh'fheuchas sinn ri toradh a' ghoireis seo a chleachdadh ann am paramadair cunntais a' ghoireas aws_instance:

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

Ma ruitheas tu plana terraform air a’ chòd seo, gheibh thu a’ mhearachd a leanas:

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.

Tha Terraform ag iarraidh gun tèid cunntadh agus for_each a thomhas tron ​​ìre dealbhaidh, mus tèid goireasan sam bith a chruthachadh no atharrachadh. Tha seo a’ ciallachadh gum faod cunntadh agus for_each iomradh a thoirt air litrichean, caochladairean, tobraichean dàta, agus eadhon liostaichean ghoireasan (fhad ‘s a dh’ fhaodar an fhaid a dhearbhadh aig àm clàraidh), ach gun a bhith a’ toirt iomradh air caochladairean toraidh stòrais àireamhaichte.

cunntadh agus chan urrainn for_each a chleachdadh ann an rèiteachadh modal

Aon latha is dòcha gu bheil thu air do mhealladh gus paramadair cunntais a chuir ri rèiteachadh a’ mhodal agad:

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

     count = 3

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

Feuchaidh an còd seo ri cunntadh am broinn modal a chleachdadh gus trì leth-bhreacan den ghoireas brabhsair-lìn a chruthachadh. No 's dòcha gum biodh tu airson modal a cheangal ri roghainn a rèir suidheachadh Boolean le bhith a' suidheachadh a paramadair cunntais gu 0. Dh'fhaodadh seo a bhith coltach ri còd reusanta, ach gheibh thu a' mhearachd seo nuair a bhios tu a' cur an gnìomh plana cruth-tìre:

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.

Gu mì-fhortanach, a thaobh Terraform 0.12.6, chan eil taic ri cleachdadh cunntais no for_each ann an goireas modal. A rèir notaichean fuasglaidh Terraform 0.12 (http://bit.ly/3257bv4), tha HashiCorp an dùil an comas seo a chuir ris san àm ri teachd, mar sin a rèir cuin a leughas tu an leabhar seo, is dòcha gum bi e ri fhaighinn mu thràth. Gus faighinn a-mach gu cinnteach, leugh an Terraform changelog an seo.

Crìochan air cleachdadh Zero Downtime

Tha a bhith a’ cleachdadh a’ bhloc create_before_destroy ann an co-bhonn ri ASG na fhuasgladh math airson cleachdadh neoni-ùine a chruthachadh, ach a-mhàin aon uaimh: chan eil taic ri riaghailtean fèin-sgèile. No airson a bhith nas mionaidiche, bidh seo ag ath-shuidheachadh meud ASG air ais gu min_size air a h-uile cleachdadh, rud a dh’ fhaodadh a bhith na dhuilgheadas ma bha thu a’ cleachdadh riaghailtean fèin-sgèile gus an àireamh de luchd-frithealaidh a tha a’ ruith a mheudachadh.

Mar eisimpleir, anns a’ mhodal webserver-cluster tha paidhir de ghoireasan aws_autoscaling_schedule, a bhios aig 9m ag àrdachadh an àireamh de luchd-frithealaidh sa bhuidheann bho dhà gu deich. Ma chleachdas tu aig, can, 11m, tòisichidh an ASG ùr le dìreach dà fhrithealaiche seach deich agus fanaidh e mar sin gu 9m an ath latha.

Faodar faighinn seachad air a’ chuingealachadh seo ann an grunn dhòighean.

  • Atharraich am paramadair ath-chuairteachaidh ann an aws_autoscaling_schedule bho 0 9 * * * (“ruith aig 9m”) gu rudeigin mar 0-59 9-17 * * (“ruith gach mionaid bho 9m gu 5f”). Ma tha deich frithealaichean aig ASG mu thràth, chan atharraich an riaghailt fèin-sgèileadh seo a-rithist dad, agus sin a tha sinn ag iarraidh. Ach mura deach an ASG a chleachdadh ach o chionn ghoirid, nì an riaghailt seo cinnteach gun ruig an àireamh de luchd-frithealaidh ann am mionaid aig a’ char as àirde deich. Chan e dòigh-obrach gu tur eireachdail a tha seo, agus faodaidh leuman mòra bho dheich gu dà fhrithealaiche agus air ais cuideachd duilgheadasan adhbhrachadh do luchd-cleachdaidh.
  • Cruthaich sgriobt àbhaisteach a chleachdas an API AWS gus faighinn a-mach an àireamh de luchd-frithealaidh gnìomhach san ASG, cuir fios thuige le bhith a’ cleachdadh stòr dàta bhon taobh a-muigh (faic “Stòr Dàta Taobh a-muigh" air duilleag 249), agus suidhich paramadair comas miannaichte an ASG chun luach a thilleas. an sgriob. San dòigh seo, bidh gach eisimpleir ASG ùr an-còmhnaidh a’ ruith aig an aon chomas ris a’ chòd Terraform a th’ ann mar-thà agus ga dhèanamh nas duilghe a chumail suas.

Gu dearbh, bhiodh e na b’ fheàrr gum biodh taic stèidhichte aig Terraform airson cleachdadh neoni-ùine, ach bhon Chèitean 2019, cha robh planaichean aig sgioba HashiCorp an gnìomh seo a chuir ris (mion-fhiosrachadh - an seo).

Is dòcha gun tèid am plana ceart a chur an gnìomh gu neo-shoirbheachail

Aig amannan bidh òrdugh a’ phlana a’ toirt a-mach plana cleachdaidh gu tur ceart, ach bidh an àithne tagraidh a’ tilleadh mearachd. Feuch, mar eisimpleir, an goireas aws_iam_user a chur ris leis an aon ainm a chleachd thu airson an neach-cleachdaidh IAM a chruthaich thu na bu thràithe ann an Caibideil 2:

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

A-nis, ma ruitheas tu àithne a’ phlana, bheir Terraform a-mach plana cleachdaidh a tha coltach gu reusanta:

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.

Ma ruitheas tu an àithne tagraidh gheibh thu a’ mhearachd a leanas:

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

Is e an duilgheadas, gu dearbh, gu bheil neach-cleachdaidh IAM leis an ainm sin ann mu thràth. Agus faodaidh seo tachairt chan ann a-mhàin do luchd-cleachdaidh IAM, ach do cha mhòr goireas sam bith. Tha e comasach gun do chruthaich cuideigin an goireas seo le làimh no le bhith a’ cleachdadh na loidhne-àithne, ach an dara dòigh, bidh a bhith a’ maidseadh IDan a’ leantainn gu còmhstri. Tha mòran eadar-dhealachaidhean den mhearachd seo a bhios gu tric a’ glacadh luchd-tòiseachaidh gu Terraform le iongnadh.

Is e am prìomh phuing nach eil an àithne plana terraform a’ toirt aire ach do na goireasan sin a tha air an sònrachadh ann am faidhle stàite Terraform. Ma thèid goireasan a chruthachadh ann an dòigh air choireigin eile (mar eisimpleir, le làimh le bhith a’ briogadh air consol AWS), cha tig iad gu crìch ann am faidhle na stàite agus mar sin cha toir Terraform aire dhaibh nuair a chuireas iad an gnìomh òrdugh a’ phlana. Mar thoradh air an sin, cha bhith plana a tha coltach ceart aig a’ chiad sealladh soirbheachail.

Tha dà leasan ri ionnsachadh bho seo.

  • Ma tha thu air tòiseachadh ag obair le Terraform mu thràth, na cleachd dad sam bith eile. Ma tha pàirt den bhun-structar agad air a riaghladh le bhith a’ cleachdadh Terraform, chan urrainn dhut atharrachadh le làimh tuilleadh. Rud eile, chan e a-mhàin gu bheil thu ann an cunnart mearachdan Terraform neònach, ach bidh thu cuideachd a’ diùltadh mòran de bhuannachdan IaC leis nach bi an còd na riochdachadh ceart den bhun-structar agad tuilleadh.
  • Ma tha beagan bun-structair agad mu thràth, cleachd an àithne in-mhalairt. Ma tha thu a’ tòiseachadh a’ cleachdadh Terraform leis a’ bhun-structar a th’ ann mar-thà, faodaidh tu a chur ris an fhaidhle stàite a’ cleachdadh an àithne in-mhalairt terraform. San dòigh seo bidh fios aig Terraform dè am bun-structar a dh’ fheumar a riaghladh. Gabhaidh an àithne in-mhalairt dà argamaid. Is e a’ chiad fhear an seòladh stòrais anns na faidhlichean rèiteachaidh agad. Tha an co-chòrdadh an seo co-ionann ri ceanglaichean stòrais: _. (mar aws_iam_user.existing_user). Is e an dàrna argamaid ID a’ ghoireas a thèid a thoirt a-steach. Canaidh sinn gur e ID a’ ghoireas aws_iam_user an t-ainm neach-cleachdaidh (mar eisimpleir, yevgeniy.brikman), agus is e ID a’ ghoireas aws_instance ID an fhrithealaiche EC2 (mar i-190e22e5). Mar as trice tha mar a thèid goireas a thoirt a-steach air a chomharrachadh anns na sgrìobhainnean aig bonn na duilleige aige.

    Gu h-ìosal tha àithne in-mhalairt a bhios a’ sioncronadh a’ ghoireas aws_iam_user a chuir thu ris an rèiteachadh Terraform agad còmhla ris an neach-cleachdaidh IAM ann an Caibideil 2 (cuir d’ ainm an àite yevgeniy.brikman, gu dearbh):

    $ terraform import aws_iam_user.existing_user yevgeniy.brikman

    Cuiridh Terraform fios gu AWS API gus do chleachdaiche IAM a lorg agus cruthaich ceangal faidhle stàite eadar e agus an goireas aws_iam_user.existing_user anns an rèiteachadh Terraform agad. Bho seo a-mach, nuair a ruitheas tu an àithne plana, bidh fios aig Terraform gu bheil an neach-cleachdaidh IAM ann mu thràth agus nach feuch e ri a chruthachadh a-rithist.

    Is fhiach a bhith mothachail ma tha tòrr ghoireasan agad mu thràth a tha thu airson a thoirt a-steach gu Terraform, faodaidh e a bhith na dhuilgheadas a bhith a’ sgrìobhadh a ’chòd le làimh agus a’ toirt a-steach gach fear aig aon àm. Mar sin is fhiach coimhead a-steach do inneal mar Terraforming (http://terraforming.dtan4.net/), as urrainn còd agus stàite a thoirt a-steach gu fèin-ghluasadach bhon chunntas AWS agad.

    Faodaidh na duilgheadasan aige a bhith aig ath-shuidheachadh

    Ath-sgeadachadh Tha e na chleachdadh cumanta ann am prògramadh far an atharraich thu structar a-staigh a’ chòd fhad ‘s a dh’ fhàgas tu an giùlan bhon taobh a-muigh gun atharrachadh. Tha seo airson a’ chòd a dhèanamh nas soilleire, nas grinne, agus nas fhasa a chumail suas. Tha ath-leasachadh na dhòigh riatanach a bu chòir a chleachdadh gu cunbhalach. Ach nuair a thig e gu Terraform no inneal IaC sam bith eile, feumaidh tu a bhith air leth faiceallach mu na tha thu a’ ciallachadh le “giùlan a-muigh” pìos còd, air neo thig duilgheadasan ris nach robh dùil.

    Mar eisimpleir, is e ath-leasachadh cumanta a th’ ann an àite ainmean chaochladairean no ghnìomhan le feadhainn nas so-thuigsinn. Tha taic stèidhichte aig mòran IDEan airson ath-fhactaraidh agus faodaidh iad caochladairean agus gnìomhan ath-ainmeachadh gu fèin-ghluasadach tron ​​​​phròiseact. Ann an cànanan prògramadh coitcheann, is e dòigh-obrach beag a tha seo is dòcha nach smaoinich thu, ach ann an Terraform feumaidh tu a bhith air leth faiceallach le seo, air neo dh’ fhaodadh gum bi briseadh-dùil agad.

    Mar eisimpleir, tha clàr-ainm caochlaideach caochlaideach anns a’ mhodal webserver-cluster:

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

    Smaoinich gun do thòisich thu air a’ mhodal seo a chleachdadh gus meanbh-sheirbheis ris an canar foo a chleachdadh. Nas fhaide air adhart, tha thu airson an t-seirbheis agad ath-ainmeachadh gu bàr. Is dòcha gu bheil an t-atharrachadh seo a’ coimhead beag, ach ann an da-rìribh faodaidh e briseadh seirbheis adhbhrachadh.

    Is e an fhìrinn gu bheil am modal webserver-cluster a’ cleachdadh an caochladair cluster_name ann an grunn ghoireasan, a’ toirt a-steach paramadair ainm dà bhuidheann tèarainteachd agus an 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]
    }

    Ma dh’atharraicheas tu am paramadair ainm air goireas, sguabaidh Terraform an seann dreach den ghoireas sin às agus cruthaichidh e fear ùr na àite. Ach mas e ALB a th’ anns a’ ghoireas sin, eadar a sguabadh às agus dreach ùr a luchdachadh sìos, cha bhith dòigh agad airson trafaic ath-stiùireadh chun t-seirbheisiche lìn agad. Mar an ceudna, ma thèid buidheann tèarainteachd a dhubhadh às, tòisichidh na frithealaichean agad a’ diùltadh trafaic lìonraidh sam bith gus an tèid buidheann ùr a chruthachadh.

    Is e seòrsa eile de ath-leasachadh a dh’ fhaodadh ùidh a bhith agad ann a bhith ag atharrachadh ID Terraform. Gabhamaid an goireas aws_security_group anns a’ mhodal webserver-cluster mar eisimpleir:

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

    Canar eisimpleir ri aithnichear a’ ghoireas seo. Smaoinich gun do chuir thu romhpa atharrachadh gu ainm nas so-thuigsinn (nad bheachd-sa) cluster_instance:

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

    Dè thachras aig a’ cheann thall? Tha sin ceart: briseadh-dùil.

    Bidh Terraform a’ ceangal gach ID stòrais ri ID an t-solaraiche sgòthan. Mar eisimpleir, tha iam_user co-cheangailte ri ID cleachdaiche AWS IAM, agus tha aws_instance co-cheangailte ri ID frithealaiche AWS EC2. Ma dh’atharraicheas tu ID a’ ghoireas (can eisimpleir gu cluster_instance, mar a thachras le aws_security_group), gu Terraform nochdaidh e mar gun do sguab thu às an t-seann ghoireas agus gun do chuir thu fear ùr ris. Ma chuireas tu na h-atharrachaidhean sin an sàs, sguabaidh Terraform às an t-seann bhuidheann tèarainteachd agus cruthaichidh e fear ùr, fhad ‘s a thòisicheas na frithealaichean agad a’ diùltadh trafaic lìonraidh sam bith.

    Seo ceithir prìomh leasanan a bu chòir dhut a thoirt air falbh bhon deasbad seo.

    • Cleachd an òrdugh plana an-còmhnaidh. Faodaidh e na cnapan-starra sin uile fhoillseachadh. Dèan lèirmheas air an toradh aige gu faiceallach agus thoir aire do shuidheachaidhean far a bheil Terraform an dùil goireasan a dhubhadh às nach bu chòir a dhubhadh às.
    • Cruthaich mus cuir thu às. Ma tha thu airson goireas a chur na àite, smaoinich gu faiceallach am feum thu fear eile a chruthachadh mus sguab thu às an tè thùsail. Mas e am freagairt tha, faodaidh create_before_destroy do chuideachadh. Faodar an aon toradh a choileanadh le làimh le bhith a’ coileanadh dà cheum: an toiseach cuir goireas ùr ris an rèiteachadh agus ruith an àithne tagraidh, agus an uairsin thoir air falbh an seann ghoireas bhon rèiteachadh agus cleachd an àithne tagraidh a-rithist.
    • Feumaidh atharrachadh aithnichearan staid atharrachadh. Ma tha thu airson an ID co-cheangailte ri goireas atharrachadh (mar eisimpleir, ath-ainmich aws_security_group bho eisimpleir gu cluster_instance) gun an goireas a dhubhadh às agus dreach ùr a chruthachadh dheth, feumaidh tu am faidhle stàite Terraform ùrachadh a rèir sin. Na dèan seo le làimh a-riamh - cleachd an àithne stàite terraform na àite. Nuair a bhios tu ag ath-ainmeachadh aithnichearan, bu chòir dhut an àithne terraform state mv a ruith, aig a bheil an co-chòrdadh a leanas:
      terraform state mv <ORIGINAL_REFERENCE> <NEW_REFERENCE>

      'S e abairt a th' ann an ORIGINAL_REFERENCE a tha a' toirt iomradh air a' ghoireas mar a tha e an-dràsta, agus 's e NEW_REFERENCE far a bheil thu airson a ghluasad. Mar eisimpleir, nuair a bhios tu ag ath-ainmeachadh a’ bhuidheann aws_security_group bho eisimpleir gu cluster_instance, feumaidh tu an àithne a leanas a ruith:

      $ terraform state mv 
         aws_security_group.instance 
         aws_security_group.cluster_instance

      Tha seo ag innse do Terraform gum bu chòir an stàit a bha roimhe co-cheangailte ri aws_security_group.instance a-nis a bhith co-cheangailte ri aws_security_group.cluster_instance. Mura h-eil am plana terraform àithne seo a’ nochdadh atharrachaidhean sam bith às deidh dhut ath-ainmeachadh agus ruith, rinn thu a h-uile càil ceart.

    • Chan urrainnear cuid de shuidheachaidhean atharrachadh. Tha crìochan mòran ghoireasan gun atharrachadh. Ma dh’ fheuchas tu rin atharrachadh, sguabaidh Terraform às an t-seann ghoireas agus cruthaichidh tu fear ùr na àite. Mar as trice bidh gach duilleag stòrais ag innse dè thachras nuair a dh’ atharraicheas tu suidheachadh sònraichte, mar sin bi cinnteach gun toir thu sùil air na sgrìobhainnean. Cleachd an àithne plana an-còmhnaidh agus beachdaich air an ro-innleachd create_before_destroy a chleachdadh.

    Tha cunbhalachd dàil co-chòrdail... le dàil

    Tha APIan cuid de sholaraichean sgòthan, leithid AWS, asyncronach agus tha iad air dàil a chuir air cunbhalachd. Tha Asynchrony a’ ciallachadh gum faod an eadar-aghaidh freagairt a thilleadh sa bhad gun a bhith a’ feitheamh ris a’ ghnìomh a chaidh iarraidh a chrìochnachadh. Tha dàil cunbhalachd a’ ciallachadh gum faodadh ùine a thoirt do dh’ atharrachaidhean gluasad air feadh an t-siostaim; fhad ‘s a tha seo a’ tachairt, faodaidh gum bi na freagairtean agad neo-chunbhalach agus an urra ri mac-samhail stòr dàta a tha a’ freagairt do ghairmean API.

    Smaoinich, mar eisimpleir, gun dèan thu gairm API gu AWS ag iarraidh air frithealaiche EC2 a chruthachadh. Tillidh an API freagairt “soirbheachail” (201 Created) cha mhòr sa bhad, gun a bhith a’ feitheamh ris an fhrithealaiche fhèin a chruthachadh. Ma dh’ fheuchas tu ri ceangal ris anns a’ bhad, bidh e cha mhòr cinnteach a’ fàiligeadh oir aig an àm sin tha AWS fhathast a’ tòiseachadh ghoireasan no, air an làimh eile, chan eil am frithealaiche air tòiseachadh fhathast. A bharrachd air an sin, ma nì thu gairm eile gus fiosrachadh fhaighinn mun t-seirbheisiche seo, is dòcha gum faigh thu mearachd (404 Not Found). Is e an rud gum faodadh am fiosrachadh mun t-seirbheisiche EC2 seo a bhith air a sgaoileadh air feadh AWS mus bi e ri fhaighinn anns a h-uile àite, feumaidh tu feitheamh beagan dhiog.

    Nuair a chleachdas tu API asyncronach le cunbhalachd leisg, feumaidh tu an t-iarrtas agad ath-aithris bho àm gu àm gus an tèid an gnìomh a chrìochnachadh agus a sgaoileadh tron ​​​​t-siostam. Gu mì-fhortanach, chan eil an AWS SDK a’ toirt seachad innealan math sam bith airson seo, agus b’ àbhaist don phròiseact Terraform fulang le mòran bhiteagan mar 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

    Ann am faclan eile, cruthaichidh tu goireas (mar subnet) agus an uairsin feuchaidh tu ri beagan fiosrachaidh fhaighinn mu dheidhinn (mar ID an subnet a chaidh a chruthachadh às ùr), agus chan urrainn dha Terraform a lorg. Chaidh a’ mhòr-chuid de na mialan sin (6813 nam measg) a chàradh, ach bidh iad fhathast a’ fàs suas bho àm gu àm, gu h-àraidh nuair a chuireas Terraform taic ri seòrsa goireas ùr. Tha seo duilich, ach sa mhòr-chuid de chùisean chan eil e ag adhbhrachadh cron sam bith. Nuair a bhios tu a’ ruith terraform cuir a-steach a-rithist, bu chòir a h-uile dad obrachadh, oir ron àm seo bidh am fiosrachadh air sgaoileadh air feadh an t-siostam mar-thà.

    Tha an earrann seo air a thoirt seachad bhon leabhar le Evgeniy Brikman "Tarraform: bun-structair aig ìre còd".

Source: www.habr.com

Cuir beachd ann