Używanie narzędzia Terraform jako infrastruktury jako narzędzia kodu dla interfejsu wiersza polecenia dla deweloperów platformy Azure
Interfejs wiersza polecenia dla deweloperów platformy Azure (azd
) obsługuje wielu dostawców infrastruktury jako kodu (IaC), w tym:
Domyślnie zakłada się, azd
że Bicep jest dostawcą IaC. Zapoznaj się z artykułem Porównanie programu Terraform i Bicep , aby uzyskać pomoc w podejmowaniu decyzji, który dostawca IaC jest najlepszy dla twojego projektu.
Uwaga
Narzędzie Terraform jest nadal w wersji beta. Przeczytaj więcej na temat obsługi funkcji alfa i beta na stronie strategii obsługi wersji funkcji i wydania
Wymagania wstępne
- Instalowanie i konfigurowanie narzędzia Terraform
- Instalowanie i logowanie się do interfejsu wiersza polecenia platformy Azure (wersja 2.38.0 lub nowsza)
- Zapoznaj się z diagramem architektury i zasobami platformy Azure, które wdrożysz w szablonie Node.js lub narzędzia Terraform języka Python.
Uwaga
Chociaż azd
nie polega na logowaniu interfejsu wiersza polecenia platformy Azure, narzędzie Terraform wymaga interfejsu wiersza polecenia platformy Azure. Przeczytaj więcej na temat tego wymagania z oficjalnej dokumentacji narzędzia Terraform.
Konfigurowanie narzędzia Terraform jako dostawcy IaC
azure.yaml
Otwórz plik znajdujący się w katalogu głównym projektu i upewnij się, że masz następujące wiersze, aby zastąpić wartość domyślną, czyli Bicep:infra: provider: terraform
Dodaj wszystkie
.tf
pliki doinfra
katalogu znajdującego się w katalogu głównym projektu.Uruchom program
azd up
.
Uwaga
Zapoznaj się z tymi dwoma szablonami azd przy użyciu narzędzia Terraform jako dostawcy IaC: Node.js i Terraform oraz Python i Terraform.
azd pipeline config
dla programu Terraform
Narzędzie Terraform przechowuje stan infrastruktury zarządzanej i konfiguracji. Ze względu na ten plik stanu należy włączyć stan zdalny przed uruchomieniem azd pipeline config
w celu skonfigurowania potoku wdrażania w usłudze GitHub.
Domyślnie zakłada się użycie azd
pliku stanu lokalnego. Jeśli uruchomiono polecenie azd up
przed włączeniem stanu zdalnego, należy uruchomić azd down
i przełączyć się do pliku stanu zdalnego.
Stan lokalny a zdalny
Narzędzie Terraform używa utrwalonego stanu danych w celu śledzenia zasobów, którymi zarządza.
Scenariusze włączania stanu zdalnego:
- Aby zezwolić na współużytkowany dostęp do danych stanu i zezwolić wielu osobom na pracę w tej kolekcji zasobów infrastruktury
- Aby uniknąć ujawniania poufnych informacji zawartych w pliku stanu
- Aby zmniejszyć prawdopodobieństwo przypadkowego usunięcia z powodu przechowywania stanu lokalnego
Włączanie stanu zdalnego
Upewnij się, że skonfigurowaliśmy konto magazynu stanu zdalnego.
Dodaj nowy plik o nazwie
provider.conf.json
w folderzeinfra
.{ "storage_account_name": "${RS_STORAGE_ACCOUNT}", "container_name": "${RS_CONTAINER_NAME}", "key": "azd/azdremotetest.tfstate", "resource_group_name": "${RS_RESOURCE_GROUP}" }
Aktualizacja
provider.tf
znaleziona w folderzeinfra
w celu ustawienia zaplecza jako zdalnego# Configure the Azure Provider terraform { required_version = ">= 1.1.7, < 2.0.0" backend "azurerm" { }
Uruchom polecenie
azd env set <key> <value>
, aby dodać konfigurację.env
w pliku. Na przykład:azd env set RS_STORAGE_ACCOUNT your_storage_account_name azd env set RS_CONTAINER_NAME your_terraform_container_name azd env set RS_RESOURCE_GROUP your_storage_account_resource_group
Uruchom następne
azd
polecenie zgodnie ze zwykłym przepływem pracy. Po wykryciuazd
stanu zdalnego program Terraform inicjuje konfigurację skonfigurowanego zaplecza.Aby udostępnić środowisko kolegom z zespołu, upewnij się, że są uruchamiane
azd env refresh -e <environmentName>
w celu odświeżenia ustawień środowiska w systemie lokalnym i wykonaj krok 4, aby dodać konfigurację.env
w pliku.
Zobacz też
- Dowiedz się więcej o zależności narzędzia Terraform od interfejsu wiersza polecenia platformy Azure.
- Aby uzyskać więcej informacji na temat stanu zdalnego, zobacz Przechowywanie stanu programu Terraform w usłudze Azure Storage.
- Szablon: React Web App with Node.js API and MongoDB (Terraform) on Azure (React Web App with Node.js API and MongoDB (Terraform) (React Web App with Node.js API and MongoDB (Terraform) on Azure (React Web App with