Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Użyj usługi Azure Container Instances, aby łatwo i szybko uruchamiać bezserwerowe kontenery Docker na platformie Azure. Przekaż na żądanie aplikację do instancji kontenera, gdy nie potrzebujesz pełnej platformy orkiestracji kontenerów, np. Azure Kubernetes Service. W tym artykule użyjesz narzędzia Terraform do wdrożenia izolowanego kontenera platformy Docker i udostępnienia jej aplikacji internetowej za pomocą publicznego adresu IP.
Narzędzie Terraform umożliwia definiowanie, wyświetlanie wersji zapoznawczej i wdrażanie infrastruktury chmury. Za pomocą narzędzia Terraform tworzysz pliki konfiguracji przy użyciu składni HCL. Składnia listy HCL umożliwia określenie dostawcy chmury — takiego jak platforma Azure — oraz elementów tworzących infrastrukturę chmury. Po utworzeniu plików konfiguracji utworzysz plan wykonywania , który umożliwia wyświetlenie podglądu zmian infrastruktury przed ich wdrożeniem. Po zweryfikowaniu zmian należy zastosować plan wykonywania w celu wdrożenia infrastruktury.
Z tego artykułu dowiesz się, jak wykonywać następujące działania:
- Tworzenie losowej wartości dla nazwy grupy zasobów platformy Azure przy użyciu random_pet
- Tworzenie grupy zasobów platformy Azure przy użyciu azurerm_resource_group
- Tworzenie losowej wartości dla nazwy kontenera przy użyciu random_string
- Tworzenie grupy kontenerów platformy Azure przy użyciu azurerm_container_group
Wymagania wstępne
Implementowanie kodu narzędzia Terraform
Uwaga
Przykładowy kod tego artykułu znajduje się w repozytorium GitHub programu Azure Terraform. Możesz wyświetlić plik dziennika zawierający wyniki testu z bieżących i poprzednich wersji programu Terraform.
Zobacz więcej artykułów i przykładowego kodu pokazującego, jak zarządzać zasobami platformy Azure za pomocą narzędzia Terraform
Utwórz katalog, w którym chcesz przetestować i uruchomić przykładowy kod programu Terraform i utworzyć go jako bieżący katalog.
Utwórz plik o nazwie
main.tfi wstaw następujący kod:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { name = random_pet.rg_name.id location = var.resource_group_location } resource "random_string" "container_name" { length = 25 lower = true upper = false special = false } resource "azurerm_container_group" "container" { name = "${var.container_group_name_prefix}-${random_string.container_name.result}" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name ip_address_type = "Public" os_type = "Linux" restart_policy = var.restart_policy zones = var.zone != "" ? [ var.zone ] : null container { name = "${var.container_name_prefix}-${random_string.container_name.result}" image = var.image cpu = var.cpu_cores memory = var.memory_in_gb ports { port = var.port protocol = "TCP" } } }Utwórz plik o nazwie
outputs.tfi wstaw następujący kod:output "container_ipv4_address" { value = azurerm_container_group.container.ip_address }Utwórz plik o nazwie
providers.tfi wstaw następujący kod:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }Utwórz plik o nazwie
variables.tfi wstaw następujący kod:variable "resource_group_location" { type = string default = "eastus" description = "Location for all resources." } variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random value so name is unique in your Azure subscription." } variable "container_group_name_prefix" { type = string description = "Prefix of the container group name that's combined with a random value so name is unique in your Azure subscription." default = "acigroup" } variable "container_name_prefix" { type = string description = "Prefix of the container name that's combined with a random value so name is unique in your Azure subscription." default = "aci" } variable "image" { type = string description = "Container image to deploy. Should be of the form repoName/imagename:tag for images stored in public Docker Hub, or a fully qualified URI for other registries. Images from private registries require additional registry credentials." default = "mcr.microsoft.com/azuredocs/aci-helloworld" } variable "port" { type = number description = "Port to open on the container and the public IP address." default = 80 } variable "cpu_cores" { type = number description = "The number of CPU cores to allocate to the container." default = 1 } variable "memory_in_gb" { type = number description = "The amount of memory to allocate to the container in gigabytes." default = 2 } variable "restart_policy" { type = string description = "The behavior of Azure runtime if container has stopped." default = "Always" validation { condition = contains(["Always", "Never", "OnFailure"], var.restart_policy) error_message = "The restart_policy must be one of the following: Always, Never, OnFailure." } } variable "zone" { type = string description = "The availability zone to deploy the container group into. If not specified, the container group is nonzonal and might be deployed into any zone." default = "" }Aby uczynić grupę kontenerów strefową, ustaw wartość zmiennej
zonena logiczną strefę dostępności, do której chcesz ją wdrożyć.Ważne
Grupy kontenerów strefowych są dostępne tylko w regionach, które obsługują strefy dostępności. Aby sprawdzić, czy region obsługuje strefy dostępności, zobacz Lista regionów platformy Azure.
Inicjowanie narzędzia Terraform
Uruchom narzędzie terraform init, aby zainicjować wdrożenie narzędzia Terraform. Polecenie to pobiera dostawcę Azure wymaganego do zarządzania zasobami Azure.
terraform init -upgrade
Kluczowe punkty:
- Parametr
-upgradeuaktualnia niezbędne wtyczki dostawcy do najnowszej wersji, która jest zgodna z ograniczeniami wersji konfiguracji.
Tworzenie planu wykonania programu Terraform
Uruchom terraform plan, aby utworzyć plan wykonania.
terraform plan -out main.tfplan
Kluczowe punkty:
- Polecenie
terraform plantworzy plan wykonania, ale nie wykonuje go. Zamiast tego określa, jakie akcje są niezbędne do utworzenia konfiguracji określonej w plikach konfiguracji. Ten wzorzec umożliwia sprawdzenie, czy plan wykonania jest zgodny z oczekiwaniami przed wprowadzeniem jakichkolwiek zmian w rzeczywistych zasobach. - Opcjonalny parametr
-outumożliwia określenie pliku wyjściowego dla planu. Użycie parametru-outgwarantuje, że sprawdzony plan jest dokładnie tym, co jest stosowane.
Zastosowanie planu wykonawczego Terraform
Uruchom terraform apply, aby zastosować plan wykonania do infrastruktury chmury.
terraform apply main.tfplan
Kluczowe punkty:
- Polecenie
terraform applyw przykładzie zakłada, że wcześniej uruchomionoterraform plan -out main.tfplan. - Jeśli określono inną nazwę pliku dla parametru
-out, użyj tej samej nazwy pliku w wywołaniuterraform apply. - Jeśli nie użyłeś parametru
-out, wywołajterraform applybez żadnych parametrów.
Weryfikowanie wyników
Po zastosowaniu planu wykonania narzędzie Terraform zwraca publiczny adres IP. Aby ponownie wyświetlić adres IP, uruchom terraform output.
terraform output -raw container_ipv4_addressWprowadź publiczny adres IP przykładu na pasku adresu przeglądarki.
Czyszczenie zasobów
Jeśli zasoby utworzone za pomocą narzędzia Terraform nie są już potrzebne, wykonaj następujące czynności:
Uruchom terraform plan i określ flagę
destroy.terraform plan -destroy -out main.destroy.tfplanKluczowe punkty:
- Polecenie
terraform plantworzy plan wykonania, ale nie wykonuje go. Zamiast tego określa, jakie akcje są niezbędne do utworzenia konfiguracji określonej w plikach konfiguracji. Ten wzorzec umożliwia sprawdzenie, czy plan wykonania jest zgodny z oczekiwaniami przed wprowadzeniem jakichkolwiek zmian w rzeczywistych zasobach. - Opcjonalny parametr
-outumożliwia określenie pliku wyjściowego dla planu. Użycie parametru-outgwarantuje, że sprawdzony plan jest dokładnie tym, co jest stosowane.
- Polecenie
Uruchom terraform apply, aby wykonać plan.
terraform apply main.destroy.tfplan
Rozwiązywanie problemów z programem Terraform na platformie Azure
Rozwiązywanie typowych problemów podczas korzystania z narzędzia Terraform na platformie Azure