Jak zrobić pętlę w Terraform

Jak zrobić pętlę w Terraform
Terraform oferuje deklaratywny model języka. Chociaż definiowanie zasobów jest bardzo łatwe i wydajne, może brakować podstawowych funkcji przydatnych w codziennych operacjach.

Na przykład konkretne języki deklaratywne nie obsługują przepływu kontroli, takich jak pętle. Dlatego, gdy trzeba powtarzalnie utworzyć kawałek kodu, musisz domyślnie skopiować i wkleić. To nie jest bardzo wydajna metoda dla żadnego programisty.

Terraform to rozumie i zapewnia kilka funkcji, które pomagają w funkcjach, takich jak warunki i pętle. W tym artykule nauczysz się, jak używać hrabiego, for_each i wyrażeń w terraform.

Podstawy

Terraform zapewnia trzy główne struktury podczas pracy z pętlami. Obejmują one:

  1. Liczyć
  2. Dla każdego
  3. Dla

Zrozumiemy, jak korzystać z każdej z tych konstrukcji pętli.

Parametr policz

Blok zasobów w Terraform definiuje głównie i zarządza jednym obiektem w chmurze. Może być jednak konieczne tworzenie lub zarządzanie wieloma obiektami bez tworzenia każdego bloku dla każdego obiektu. Wykonanie tego usuwa powtarzający się kod, w ten sposób ułatwia czytanie i obsługę.

Jednym ze sposobów na osiągnięcie tego jest użycie meta-argumentu hrabiego. Jeśli zdefiniujesz blok zasobów, który zawiera parametr Count z wartością jako liczbą całkowitą, Terraform wykonuje działania na określonej liczbie zasobów.

Podstawowe użycie

Parametr liczby, znany również jako meta-argument, może być używany w blokach zasobów lub modułów.

Akceptuje liczbę całkowitą lub liczbą i będzie wykonywać określone działania w wielu wybranych instancjach. Na przykład, jeśli ustawisz liczbę na 5 na bloku zasobów, który tworzy wiadra S3, Terraform utworzy pięć instancji S3 Bucket.

Jednak Terraform utworzy unikalny obiekt infrastruktury dla każdego elementu. Stąd każdy element otrzymuje operacje CRUD osobno.

Poniższy przykład pokazuje, jak używać parametru liczby w Terraform:

Terraform
wymagane_providers
AWS =
Źródło = "Hashicorp/AWS"
wersja = "-> 3.27 "


wymagane_wersja = "> = 0.12 "

Dostawca „AWS”
profilu = „domyślnie”
region = „US-East-1”

Zasób „AWS_INSTANCE” „Web_server”
AMO = "AMI-234C45E2"
instance_type = "t1.mikro "
Count = 3
tagi =
Name = "wersja WebServer: $ Count.indeks"

Powyższy przykładowy kod tworzy trzy instancje AWS typu T1.mikro. Używamy również metody Count do tworzenia tagów z liczbą instancji.

Atrybut indeksu umożliwia zmodyfikowanie konfiguracji dla każdego elementu. Wskaźnik liczby jest odrębną wartością opisującą każdą instancję zaczynającą się od 0.

W przeciwieństwie do większości meta-argumentów terraform, wartość parametru liczby musi być znana wcześniej.

Parametr For_Each

Parametr for_each jest ściśle podobny do argumentu liczby. Możesz go użyć z blokiem zasobów i modułów.

Podstawowe użycie

Parametr for_each akceptuje zestaw ciągów lub mapy. Następnie tworzy konkretną instancję dla każdego elementu w kolekcji. Podobnie jak Count, każdy element ma unikalny identyfikator infrastruktury obiektu, umożliwiający Terraformowi indywidualnie wykonywanie operacji CRUD na określonym obiekcie.

Poniższy fragment pokazuje, jak używać elementu For_each, aby utworzyć wielu użytkowników:

Zasób „AWS_IAM_USER” „Web-managers”
for_each = toset ([„John”, „Lucy”, „Harley”, „David”])
Nazwa = każdy.klucz

Poprzedni przykład pokazuje, jak korzystać z for_each z zestawem ciągów. Aby użyć mapy, rozważ kod pokazany poniżej:

for_each =
grupa = „Web”
grupa_b = "db"

Nazwa = każdy.klucz
lokalizacja = każdy.wartość

Dla parametru

Parametr dla pętli nie różni się bardzo od operacji w większości języków programowania. Pozwala zapętlić się na listę elementów.

Załóżmy na przykład, że masz listę użytkowników i chcesz przekonwertować nazwy użytkowników na UpperCase. W takim przypadku możesz użyć pętli dla:

Usernames = tolist ([„nazwa użytkownika1”, „nazwa użytkownika2”, nazwa użytkownika3])
[Foriinusernames.Lista: Upper (s)]

Poprzedni kod rozszerza elementy na liście i przekształca każdy na wielki poziom. Dowiedz się więcej o Terraform dla wyrażeń w dokumentacji.

Wniosek

Ten przewodnik zawiera podstawy wykonywania operacji pętli w Terraform przy użyciu hrabiego, for_each i wyrażeń. Mamy nadzieję, że znalazłeś przykłady za pomocą trzech parametrów pomocnych. Sprawdź Linux Wskazówka, aby uzyskać więcej wskazówek i informacji.