Izcelsim dažas nepilnÄ«bas, tostarp tÄs, kas saistÄ«tas ar cilpÄm, if paziÅojumiem un izvietoÅ”anas metodÄm, kÄ arÄ« vispÄrÄ«gÄkas problÄmas, kas ietekmÄ Terraform kopumÄ:
parametriem skaits un for_each ir ierobežojumi;
ierobežot nulles dÄ«kstÄves izvietoÅ”anu;
pat labs plÄns var neizdoties;
pÄrstrukturÄÅ”anai var bÅ«t savas nepilnÄ«bas;
atliktÄ saskaÅotÄ«ba atbilst... ar atlikÅ”anu.
Skaits un for_each parametriem ir ierobežojumi
Å Ä«s nodaļas piemÄros plaÅ”i tiek izmantots skaitÄ«Å”anas parametrs un izteiksme for_each cilpÄs un nosacÄ«juma loÄ£ikÄ. Tie darbojas labi, taÄu tiem ir divi svarÄ«gi ierobežojumi, kas jums jÄzina.
Skaits un for_each nevar atsaukties uz resursa izvades mainīgajiem.
count un for_each nevar izmantot moduļa konfigurÄcijÄ.
count un for_each nevar atsaukties uz resursa izvades mainīgajiem
IedomÄjieties, ka jums ir jÄizvieto vairÄki EC2 serveri un kÄdu iemeslu dÄļ jÅ«s nevÄlaties izmantot ASG. JÅ«su kods varÄtu bÅ«t Å”Äds:
TÄ kÄ skaitÄ«Å”anas parametrs ir iestatÄ«ts uz statisku vÄrtÄ«bu, Å”is kods darbosies bez problÄmÄm: palaižot komandu lietot, tas izveidos trÄ«s EC2 serverus. Bet ko darÄ«t, ja vÄlaties izvietot vienu serveri katrÄ pieejamÄ«bas zonÄ (AZ) paÅ”reizÄjÄ AWS reÄ£ionÄ? Varat likt savam kodam ielÄdÄt zonu sarakstu no datu avota aws_availability_zones un pÄc tam veikt katru no tÄm un izveidot tajÄ EC2 serveri, izmantojot skaitÄ«Å”anas parametru un masÄ«va indeksa piekļuvi:
Å is kods arÄ« darbosies labi, jo skaitÄ«Å”anas parametrs bez problÄmÄm var atsaukties uz datu avotiem. Bet kas notiek, ja izveidojamo serveru skaits ir atkarÄ«gs no kÄda resursa izvades? Lai to parÄdÄ«tu, vienkÄrÅ”Äkais veids ir izmantot resursu random_integer, kas, kÄ norÄda nosaukums, atgriež nejauÅ”u veselu skaitli:
resource "random_integer" "num_instances" {
min = 1
max = 3
}
Å is kods Ä£enerÄ nejauÅ”u skaitli no 1 lÄ«dz 3. RedzÄsim, kas notiks, ja mÄÄ£inÄsim izmantot Ŕī resursa izvadi aws_instance resursa skaitÄ«Å”anas parametrÄ:
Ja palaižat terraform plÄnu ar Å”o kodu, tiks parÄdÄ«ta Å”Äda kļūda:
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 pieprasa, lai plÄnoÅ”anas fÄzÄ, pirms tiek izveidoti vai pÄrveidoti resursi, jÄaprÄÄ·ina skaits un katram. Tas nozÄ«mÄ, ka count un for_each var attiekties uz literÄļiem, mainÄ«gajiem, datu avotiem un pat resursu sarakstiem (ja vien to garumu var noteikt plÄnoÅ”anas laikÄ), bet ne uz aprÄÄ·inÄtajiem resursu izvades mainÄ«gajiem.
count un for_each nevar izmantot moduļa konfigurÄcijÄ
Å is kods mÄÄ£ina izmantot modulÄ« esoÅ”o skaitu, lai izveidotu trÄ«s tÄ«mekļa servera klastera resursa kopijas. Varat arÄ« iestatÄ«t moduļa pievienoÅ”anu neobligÄtu atkarÄ«bÄ no dažiem BÅ«la nosacÄ«jumiem, iestatot tÄ skaitÄ«Å”anas parametru uz 0. Tas varÄtu izskatÄ«ties kÄ saprÄtÄ«gs kods, taÄu, izpildot terraformas plÄnu, tiks parÄdÄ«ta Ŕī kļūda:
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.
DiemžÄl no Terraform 0.12.6 moduļa resursÄ netiek atbalstÄ«ta count vai for_each izmantoÅ”ana. SaskaÅÄ ar Terraform 0.12 izlaiÅ”anas piezÄ«mÄm (http://bit.ly/3257bv4), HashiCorp plÄno pievienot Å”o iespÄju nÄkotnÄ, tÄpÄc atkarÄ«bÄ no Ŕīs grÄmatas lasÄ«Å”anas brīža tÄ jau var bÅ«t pieejama. Lai to noteikti uzzinÄtu, lasiet Terraform izmaiÅu žurnÄlu Å”eit.
Nulles dÄ«kstÄves izvietoÅ”anas ierobežojumi
Bloka create_before_destroy izmantoÅ”ana kopÄ ar ASG ir lielisks risinÄjums, lai izveidotu nulles dÄ«kstÄves izvietojumus, izÅemot vienu brÄ«dinÄjumu: automÄtiskÄs mÄrogoÅ”anas noteikumi netiek atbalstÄ«ti. PrecÄ«zÄk sakot, tas atiestata ASG izmÄru atpakaļ uz min_size katrÄ izvietoÅ”anas reizÄ, kas varÄtu bÅ«t problÄma, ja izmantojat automÄtiskÄs mÄrogoÅ”anas noteikumus, lai palielinÄtu strÄdÄjoÅ”o serveru skaitu.
PiemÄram, tÄ«mekļa servera klastera modulis satur aws_autoscaling_schedule resursu pÄri, kas pulksten 9 palielina klastera serveru skaitu no diviem lÄ«dz desmit. Ja izvietosit, piemÄram, pulksten 11:9, jaunais ASG tiks palaists tikai ar diviem serveriem, nevis desmit, un paliks tÄds lÄ«dz nÄkamÄs dienas pulksten XNUMX:XNUMX.
Å o ierobežojumu var apiet vairÄkos veidos.
Mainiet atkÄrtoÅ”anÄs parametru aws_autoscaling_schedule no 0 9 * * * (āpalaist plkst. 9:0ā) uz 59-9 17-9 * * * (āpalaist katru minÅ«ti no 5:XNUMX lÄ«dz XNUMX:XNUMXā). Ja ASG jau ir desmit serveri, Ŕī automÄtiskÄs mÄrogoÅ”anas kÄrtula atkÄrtota izpilde neko nemainÄ«s, un tas ir tas, ko mÄs vÄlamies. Bet, ja ASG ir tikai nesen izvietots, Å”is noteikums nodroÅ”inÄs, ka maksimÄli minÅ«tes laikÄ tÄ serveru skaits sasniegs desmit. TÄ nav gluži eleganta pieeja, un arÄ« lieli lÄcieni no desmit uz diviem serveriem un atpakaļ var radÄ«t problÄmas lietotÄjiem.
Izveidojiet pielÄgotu skriptu, kas izmanto AWS API, lai noteiktu ASG aktÄ«vo serveru skaitu, izsauciet to, izmantojot ÄrÄju datu avotu (sk. "ÄrÄjais datu avots" 249. lpp.), un iestatiet ASG parametru wish_capacity uz vÄrtÄ«bu, ko atgriež scenÄrijs. TÄdÄ veidÄ katra jauna ASG instance vienmÄr darbosies ar tÄdu paÅ”u jaudu kÄ esoÅ”ajam Terraform kodam un apgrÅ«tina tÄ uzturÄÅ”anu.
Protams, ideÄlÄ gadÄ«jumÄ Terraform bÅ«tu iebÅ«vÄts atbalsts izvietoÅ”anai bez dÄ«kstÄves, taÄu 2019. gada maijÄ HashiCorp komanda neplÄnoja pievienot Å”o funkcionalitÄti (sÄ«kÄka informÄcija - Å”eit).
Pareizais plÄns var tikt nesekmÄ«gi Ä«stenots
Dažreiz plÄna komanda izveido pilnÄ«gi pareizu izvietoÅ”anas plÄnu, bet komanda App atgriež kļūdu. MÄÄ£iniet, piemÄram, pievienot aws_iam_user resursu ar tÄdu paÅ”u nosaukumu, ko izmantojÄt IAM lietotÄjam, kuru izveidojÄt iepriekÅ” 2. nodaļÄ:
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.
Ja palaižat komandu lietot, tiks parÄdÄ«ts Å”Äds kļūdas ziÅojums:
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" {
ProblÄma, protams, ir tÄ, ka IAM lietotÄjs ar Å”Ädu vÄrdu jau pastÄv. Un tas var notikt ne tikai IAM lietotÄjiem, bet gandrÄ«z jebkuram resursam. IespÄjams, kÄds Å”o resursu ir izveidojis manuÄli vai izmantojot komandrindu, taÄu jebkurÄ gadÄ«jumÄ ID atbilstÄ«bas rezultÄtÄ rodas konflikti. Å ai kļūdai ir daudz variÄciju, kas bieži vien pÄrsteidz Terraform jaunpienÄcÄjus.
Galvenais ir tas, ka komanda terraform plan Åem vÄrÄ tikai tos resursus, kas norÄdÄ«ti Terraform stÄvokļa failÄ. Ja resursi tiek izveidoti kÄdÄ citÄ veidÄ (piemÄram, manuÄli, noklikŔķinot AWS konsolÄ), tie nenonÄks stÄvokļa failÄ un tÄpÄc Terraform tos neÅems vÄrÄ, izpildot plan komandu. RezultÄtÄ plÄns, kas pirmajÄ mirklÄ« Ŕķiet pareizs, izrÄdÄ«sies neveiksmÄ«gs.
No tÄ ir jÄmÄcÄs divas mÄcÄ«bas.
Ja jau esat sÄcis strÄdÄt ar Terraform, nelietojiet neko citu. Ja daļa no jÅ«su infrastruktÅ«ras tiek pÄrvaldÄ«ta, izmantojot Terraform, jÅ«s vairs nevarat to manuÄli modificÄt. PretÄjÄ gadÄ«jumÄ jÅ«s ne tikai riskÄjat ar dÄ«vainÄm Terraform kļūdÄm, bet arÄ« noliedzat daudzas IaC priekÅ”rocÄ«bas, jo kods vairs nebÅ«s precÄ«zs jÅ«su infrastruktÅ«ras attÄlojums.
Ja jums jau ir kÄda infrastruktÅ«ra, izmantojiet importÄÅ”anas komandu. Ja sÄkat lietot Terraform ar esoÅ”o infrastruktÅ«ru, varat to pievienot stÄvokļa failam, izmantojot terraform importÄÅ”anas komandu. TÄdÄ veidÄ Terraform zinÄs, kÄda infrastruktÅ«ra ir jÄpÄrvalda. ImportÄÅ”anas komandai ir divi argumenti. PirmÄ ir resursa adrese jÅ«su konfigurÄcijas failos. Sintakse Å”eit ir tÄda pati kÄ resursu saitÄm: _. (piemÄram, aws_iam_user.existing_user). Otrais arguments ir importÄjamÄ resursa ID. PieÅemsim, ka resursa ID aws_iam_user ir lietotÄjvÄrds (piemÄram, yevgeniy.brikman), bet resursa ID aws_instance ir EC2 servera ID (piemÄram, i-190e22e5). KÄ importÄt resursu, parasti ir norÄdÄ«ts dokumentÄcijÄ tÄ lapas apakÅ”Ä.
ZemÄk ir importÄÅ”anas komanda, kas sinhronizÄ aws_iam_user resursu, ko pievienojÄt savai Terraform konfigurÄcijai kopÄ ar IAM lietotÄju 2. nodaÄ¼Ä (protams, aizstÄjot savu vÄrdu ar yevgeniy.brikman):
Terraform izsauks AWS API, lai atrastu jÅ«su IAM lietotÄju un izveidotu stÄvokļa faila saistÄ«bu starp to un aws_iam_user.existing_user resursu jÅ«su Terraform konfigurÄcijÄ. TurpmÄk, palaižot plÄnu komandu, Terraform zinÄs, ka IAM lietotÄjs jau pastÄv, un nemÄÄ£inÄs to izveidot vÄlreiz.
Ir vÄrts atzÄ«mÄt, ka, ja jums jau ir daudz resursu, ko vÄlaties importÄt programmÄ Terraform, manuÄla koda rakstÄ«Å”ana un katra importÄÅ”ana pa vienam var radÄ«t grÅ«tÄ«bas. TÄpÄc ir vÄrts izpÄtÄ«t tÄdu rÄ«ku kÄ Terraforming (http://terraforming.dtan4.net/), kas var automÄtiski importÄt kodu un stÄvokli no jÅ«su AWS konta.
PÄrveidoÅ”anai var bÅ«t savas nepilnÄ«bas
Refaktorings ir plaÅ”i izplatÄ«ta programmÄÅ”anas prakse, kurÄ jÅ«s mainÄt koda iekÅ”Äjo struktÅ«ru, vienlaikus atstÄjot nemainÄ«gu ÄrÄjo uzvedÄ«bu. Tas ir paredzÄts, lai padarÄ«tu kodu skaidrÄku, glÄ«tÄku un vieglÄk uzturÄjamu. Refaktorings ir neaizstÄjams paÅÄmiens, kas jÄizmanto regulÄri. Bet, kad runa ir par Terraform vai jebkuru citu IaC rÄ«ku, jums ir jÄbÅ«t ļoti uzmanÄ«giem attiecÄ«bÄ uz to, ko jÅ«s domÄjat ar koda daļas āÄrÄjo uzvedÄ«buā, pretÄjÄ gadÄ«jumÄ radÄ«sies negaidÄ«tas problÄmas.
PiemÄram, izplatÄ«ts pÄrstrukturÄÅ”anas veids ir mainÄ«go vai funkciju nosaukumu aizstÄÅ”ana ar saprotamÄkiem. DaudzÄm IDE ir iebÅ«vÄts pÄrstrukturÄÅ”anas atbalsts, un tÄs var automÄtiski pÄrdÄvÄt mainÄ«gos un funkcijas visÄ projektÄ. UniversÄlajÄs programmÄÅ”anas valodÄs Ŕī ir triviÄla procedÅ«ra, par kuru jÅ«s, iespÄjams, nedomÄjat, taÄu Terraform ar to ir jÄbÅ«t Ä«paÅ”i uzmanÄ«gam, pretÄjÄ gadÄ«jumÄ var rasties pÄrtraukumi.
PiemÄram, tÄ«mekļa servera klastera modulim ir ievades mainÄ«gais cluster_name:
variable "cluster_name" {
description = "The name to use for all the cluster resources"
type = string
}
IedomÄjieties, ka sÄkÄt izmantot Å”o moduli, lai izvietotu mikropakalpojumu ar nosaukumu foo. VÄlÄk vÄlaties pÄrdÄvÄt pakalpojumu par bÄru. Å Ä«s izmaiÅas var Ŕķist triviÄlas, taÄu patiesÄ«bÄ tÄs var izraisÄ«t pakalpojuma traucÄjumus.
Fakts ir tÄds, ka tÄ«mekļa servera klastera modulis izmanto mainÄ«go cluster_name vairÄkos resursos, tostarp divu droŔības grupu nosaukuma parametru un ALB:
Ja mainÄt resursa nosaukuma parametru, Terraform izdzÄsÄ«s Ŕī resursa veco versiju un tÄ vietÄ izveidos jaunu. Bet, ja Å”is resurss ir ALB, no tÄ dzÄÅ”anas lÄ«dz jaunas versijas lejupielÄdei jums nebÅ«s mehÄnisma, lai novirzÄ«tu trafiku uz jÅ«su tÄ«mekļa serveri. TÄpat, ja droŔības grupa tiek dzÄsta, jÅ«su serveri sÄks noraidÄ«t jebkÄdu tÄ«kla trafiku, lÄ«dz tiks izveidota jauna grupa.
VÄl viens pÄrstrukturÄÅ”anas veids, kas jÅ«s varÄtu interesÄt, ir Terraform ID maiÅa. KÄ piemÄru Åemsim aws_security_group resursu tÄ«mekļa servera klastera modulÄ«:
Å Ä« resursa identifikatoru sauc par instance. IedomÄjieties, ka pÄrstrukturÄÅ”anas laikÄ jÅ«s nolÄmÄt to mainÄ«t uz saprotamÄku (jÅ«suprÄt) nosaukumu cluster_instance:
Terraform saista katru resursa ID ar mÄkoÅa nodroÅ”inÄtÄja ID. PiemÄram, iam_user ir saistÄ«ts ar AWS IAM lietotÄja ID, un aws_instance ir saistÄ«ts ar AWS EC2 servera ID. Ja mainÄt resursa ID (piemÄram, no instances uz cluster_instance, kÄ tas ir gadÄ«jumÄ ar aws_security_group), uz Terraform, tas parÄdÄ«sies tÄ, it kÄ bÅ«tu izdzÄsts vecais resurss un pievienots jauns. Ja lietosit Ŕīs izmaiÅas, Terraform izdzÄsÄ«s veco droŔības grupu un izveidos jaunu, savukÄrt jÅ«su serveri sÄks noraidÄ«t jebkÄdu tÄ«kla trafiku.
Å eit ir Äetras galvenÄs atziÅas, kuras jums vajadzÄtu Åemt no Ŕīs diskusijas.
VienmÄr izmantojiet plÄnu komandu. Tas var atklÄt visas Ŕīs nepilnÄ«bas. RÅ«pÄ«gi pÄrskatiet tÄ rezultÄtus un pievÄrsiet uzmanÄ«bu situÄcijÄm, kad Terraform plÄno dzÄst resursus, kurus, visticamÄk, nevajadzÄtu dzÄst.
Izveidojiet pirms dzÄÅ”anas. Ja vÄlaties aizstÄt resursu, pirms oriÄ£inÄla dzÄÅ”anas rÅ«pÄ«gi pÄrdomÄjiet, vai jums ir jÄizveido aizstÄjÄjs. Ja atbilde ir apstiprinoÅ”a, var palÄ«dzÄt Create_before_destroy. To paÅ”u rezultÄtu var sasniegt manuÄli, veicot divas darbÄ«bas: vispirms pievienojiet konfigurÄcijai jaunu resursu un palaidiet komandu lietot, un pÄc tam noÅemiet veco resursu no konfigurÄcijas un vÄlreiz izmantojiet lietotnes komandu.
Lai mainÄ«tu identifikatorus, ir jÄmaina statuss. Ja vÄlaties mainÄ«t ar resursu saistÄ«to ID (piemÄram, pÄrdÄvÄt aws_security_group no instances uz cluster_instance), neizdzÄÅ”ot resursu un neizveidojot jaunu tÄ versiju, ir attiecÄ«gi jÄatjaunina Terraform stÄvokļa fails. Nekad nedariet to manuÄli ā tÄ vietÄ izmantojiet komandu terraform state. PÄrdÄvÄjot identifikatorus, palaidiet komandu terraform state mv, kurai ir Å”Äda sintakse:
terraform state mv <ORIGINAL_REFERENCE> <NEW_REFERENCE>
ORIGINAL_REFERENCE ir izteiksme, kas attiecas uz resursu tÄ paÅ”reizÄjÄ formÄ, un NEW_REFERENCE ir vieta, kur vÄlaties to pÄrvietot. PiemÄram, pÄrdÄvÄjot grupu aws_security_group no instances uz cluster_instance, ir jÄizpilda Å”Äda komanda:
$ terraform state mv
aws_security_group.instance
aws_security_group.cluster_instance
Tas norÄda Terraform, ka stÄvoklis, kas iepriekÅ” bija saistÄ«ts ar aws_security_group.instance, tagad ir jÄsaista ar aws_security_group.cluster_instance. Ja pÄc Ŕīs komandas pÄrdÄvÄÅ”anas un palaiÅ”anas terraform plÄns neuzrÄda nekÄdas izmaiÅas, tad jÅ«s visu izdarÄ«jÄt pareizi.
Dažus iestatÄ«jumus nevar mainÄ«t. Daudzu resursu parametri ir nemainÄmi. Ja mÄÄ£inÄsit tos mainÄ«t, Terraform izdzÄsÄ«s veco resursu un tÄ vietÄ izveidos jaunu. KatrÄ resursa lapÄ parasti ir norÄdÄ«ts, kas notiek, mainot konkrÄtu iestatÄ«jumu, tÄpÄc noteikti pÄrbaudiet dokumentÄciju. VienmÄr izmantojiet komandu plan un apsveriet iespÄju izmantot stratÄÄ£iju create_before_destroy.
AtliktÄ konsekvence atbilst... ar atlikÅ”anu
Dažu mÄkoÅpakalpojumu sniedzÄju API, piemÄram, AWS, ir asinhronas un tÄm ir aizkavÄta konsekvence. Asinhronija nozÄ«mÄ, ka saskarne var nekavÄjoties atgriezt atbildi, negaidot pieprasÄ«tÄs darbÄ«bas pabeigÅ”anu. AizkavÄta konsekvence nozÄ«mÄ, ka var paiet laiks, lai izmaiÅas izplatÄ«tos visÄ sistÄmÄ; kamÄr tas notiek, jÅ«su atbildes var bÅ«t nekonsekventas un atkarÄ«gas no tÄ, kura datu avota replika reaÄ£Ä uz jÅ«su API izsaukumiem.
IedomÄjieties, piemÄram, ka veicat API zvanu uz AWS, lÅ«dzot izveidot EC2 serveri. API gandrÄ«z uzreiz sniegs āveiksmÄ«guā atbildi (izveidots 201), negaidot, kamÄr tiks izveidots pats serveris. Ja mÄÄ£inÄsit izveidot savienojumu ar to uzreiz, tas gandrÄ«z noteikti neizdosies, jo tajÄ brÄ«dÄ« AWS joprojÄm inicializÄ resursus vai, alternatÄ«vi, serveris vÄl nav palaists. TurklÄt, ja veicat citu zvanu, lai iegÅ«tu informÄciju par Å”o serveri, var tikt parÄdÄ«ts kļūdas ziÅojums (404 Nav atrasts). Lieta tÄda, ka informÄcija par Å”o EC2 serveri joprojÄm var tikt izplatÄ«ta visÄ AWS, pirms tÄ kļūst pieejama visur, jums bÅ«s jÄgaida dažas sekundes.
Ikreiz, kad izmantojat asinhronu API ar slinku konsekvenci, jums periodiski jÄmÄÄ£ina atkÄrtoti iesniegt pieprasÄ«jumu, lÄ«dz darbÄ«ba ir pabeigta un tiek izplatÄ«ta sistÄmÄ. DiemžÄl AWS SDK Å”im nolÅ«kam nesniedz nekÄdus labus rÄ«kus, un Terraform projekts agrÄk cieta no daudzÄm kļūdÄm, piemÄram, 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
Citiem vÄrdiem sakot, jÅ«s izveidojat resursu (piemÄram, apakÅ”tÄ«klu) un pÄc tam mÄÄ£inÄt iegÅ«t informÄciju par to (piemÄram, jaunizveidotÄ apakÅ”tÄ«kla ID), un Terraform nevar to atrast. LielÄkÄ daļa no Ŕīm kļūdÄm (tostarp 6813) ir novÄrstas, taÄu tÄs joprojÄm ik pa laikam parÄdÄs, it Ä«paÅ”i, ja Terraform pievieno atbalstu jaunam resursa veidam. Tas ir kaitinoÅ”i, bet vairumÄ gadÄ«jumu nerada nekÄdu kaitÄjumu. AtkÄrtoti palaižot terraform application, visam vajadzÄtu darboties, jo Å”ajÄ laikÄ informÄcija jau bÅ«s izplatÄ«jusies visÄ sistÄmÄ.