Snabbstart: Etablera Azure Spring Apps med Terraform
Kommentar
Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.
Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.
Den här artikeln gäller för:❌ Basic ✔️ Standard ✔️ Enterprise
Den här snabbstarten beskriver hur du använder Terraform för att distribuera ett Azure Spring Apps-kluster till ett befintligt virtuellt nätverk.
Azure Spring Apps gör det enkelt att distribuera Spring-program till Azure utan några kodändringar. Tjänsten hanterar infrastrukturen för Spring-program så att utvecklare kan fokusera på sin kod. Azure Spring Apps tillhandahåller livscykelhantering med omfattande övervakning och diagnostik, konfigurationshantering, tjänstidentifiering, CI/CD-integrering, blågröna distributioner med mera.
Enterprise-distributionsplanen innehåller följande Tanzu-komponenter:
- Byggtjänst
- Programkonfigurationstjänst
- Tjänstregister
- Spring Cloud Gateway
- API-portalen
API Portal-komponenten inkluderas när den blir tillgänglig via AzureRM Terraform-providern.
Mer anpassning, inklusive stöd för anpassade domäner, finns i dokumentationen för Terraform-providern för Azure Spring Apps.
Förutsättningar
- En Azure-prenumeration. Om du inte har någon prenumeration skapar du ett kostnadsfritt konto innan du börjar.
- Hashicorp Terraform
- Två dedikerade undernät för Azure Spring Apps-klustret, ett för tjänstkörningen och ett annat för Spring-programmen. För krav för undernät och virtuella nätverk, se avsnittet Krav för virtuellt nätverk i Distribuera Azure Spring Apps i ett virtuellt nätverk.
- En befintlig Log Analytics-arbetsyta för Diagnostikinställningar för Azure Spring Apps och en arbetsytebaserad Application Insights-resurs. Mer information finns i Analysera loggar och mått med diagnostikinställningar och Application Insights Java In-Process Agent i Azure Spring Apps.
- Tre interna CIDR-intervall (Classless Inter-Domain Routing) (minst /16 vardera) som du har identifierat för användning av Azure Spring Apps-klustret. Dessa CIDR-intervall kan inte dirigeras direkt och används endast internt av Azure Spring Apps-klustret. Kluster får inte använda 169.254.0.0/16, 172.30.0.0/16, 172.31.0.0/16 eller 192.0.2.0/24 för den interna Azure Spring Apps CIDR. Kluster får inte heller använda några IP-intervall som ingår i klustrets adressintervall för virtuella nätverk.
- Tjänstbehörighet som beviljats det virtuella nätverket. Azure Spring Apps-resursprovidern kräver
User Access Administrator
ochNetwork Contributor
behörigheter till ditt virtuella nätverk för att bevilja ett dedikerat och dynamiskt huvudnamn för tjänsten i det virtuella nätverket för ytterligare distribution och underhåll. Anvisningar och mer information finns i avsnittet Bevilja tjänstbehörighet till det virtuella nätverket i Distribuera Azure Spring Apps i ett virtuellt nätverk. - Om du använder Azure Firewall eller en virtuell nätverksinstallation (NVA) måste du också uppfylla följande krav:
- Regler för nätverk och fullständigt kvalificerade domännamn (FQDN). Mer information finns i Krav för virtuellt nätverk.
- En unik användardefinierad väg (UDR) som tillämpas på vart och ett av tjänstkörnings- och Spring-programundernäten. Mer information om UDR finns i Trafikdirigering för virtuella nätverk. UDR ska konfigureras med en väg för 0.0.0.0/0 med ett mål för din NVA innan du distribuerar Azure Spring Apps-klustret. Mer information finns i avsnittet Bring your own route table (Ta med din egen routningstabell) i Distribuera Azure Spring Apps i ett virtuellt nätverk.
- Om du distribuerar en Azure Spring Apps Enterprise-planinstans för första gången i målprenumerationen läser du avsnittet Krav i Enterprise-plan på Azure Marketplace.
Granska Terraform-planen
Konfigurationsfilen som används i den här snabbstarten kommer från referensarkitekturen för Azure Spring Apps.
# Azure provider version
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "= 3.21.1"
}
}
}
provider "azurerm" {
features {}
}
### Create Resource group
resource "azurerm_resource_group" "sc_corp_rg" {
name = var.resource_group_name
location = var.location
}
### Create Application Insights
resource "azurerm_application_insights" "sc_app_insights" {
name = var.app_insights_name
location = var.location
resource_group_name = var.resource_group_name
application_type = "web"
workspace_id = "/subscriptions/${var.subscription}/resourceGroups/${var.azurespringcloudvnetrg}/providers/Microsoft.OperationalInsights/workspaces/${var.sc_law_id}"
depends_on = [azurerm_resource_group.sc_corp_rg]
}
### Create Spring Cloud Service
resource "azurerm_spring_cloud_service" "sc" {
name = var.sc_service_name
resource_group_name = var.resource_group_name
location = var.location
sku_name = "S0"
network {
app_subnet_id = "/subscriptions/${var.subscription}/resourceGroups/${var.azurespringcloudvnetrg}/providers/Microsoft.Network/virtualNetworks/${var.vnet_spoke_name}/subnets/${var.app_subnet_id}"
service_runtime_subnet_id = "/subscriptions/${var.subscription}/resourceGroups/${var.azurespringcloudvnetrg}/providers/Microsoft.Network/virtualNetworks/${var.vnet_spoke_name}/subnets/${var.service_runtime_subnet_id}"
cidr_ranges = var.sc_cidr
}
timeouts {
create = "60m"
delete = "2h"
}
depends_on = [azurerm_resource_group.sc_corp_rg]
tags = var.tags
}
### Update Diags setting for Spring Cloud Service
resource "azurerm_monitor_diagnostic_setting" "sc_diag" {
name = "monitoring"
target_resource_id = azurerm_spring_cloud_service.sc.id
log_analytics_workspace_id = "/subscriptions/${var.subscription}/resourceGroups/${var.azurespringcloudvnetrg}/providers/Microsoft.OperationalInsights/workspaces/${var.sc_law_id}"
log {
category = "ApplicationConsole"
enabled = true
retention_policy {
enabled = false
}
}
metric {
category = "AllMetrics"
retention_policy {
enabled = false
}
}
}
Tillämpa Terraform-planen
Följ dessa steg för att tillämpa Terraform-planen:
Spara filen variables.tf för Standard-planen eller Enterprise-planen lokalt och öppna den sedan i ett redigeringsprogram.
Redigera filen för att lägga till följande värden:
Prenumerations-ID för det Azure-konto som du ska distribuera till.
En distributionsplats från de regioner där Azure Spring Apps är tillgängligt, enligt vad som visas i Produkter som är tillgängliga per region. Du behöver den korta formen av platsnamnet. Om du vill hämta det här värdet använder du följande kommando för att generera en lista över Azure-platser och letar sedan upp värdet Namn för den region som du har valt.
az account list-locations --output table
Redigera filen för att lägga till följande nya distributionsinformation:
- Namnet på den resursgrupp som du ska distribuera till.
- Ett valfritt namn för Azure Spring Apps-distributionen.
- Ett valfritt namn för Application Insights-resursen.
- Tre CIDR-intervall (minst /16) som används som värd för Azure Spring Apps-serverdelsinfrastrukturen. CIDR-intervallen får inte överlappa med befintliga CIDR-intervall i målundernätet
- Nyckel/värde-par som ska användas som taggar på alla resurser som stöder taggar. Mer information finns i Använda taggar för att organisera dina Azure-resurser och hanteringshierarki
Redigera filen för att lägga till följande befintlig infrastrukturinformation:
- Namnet på resursgruppen där det befintliga virtuella nätverket finns.
- Namnet på det befintliga virtuella omfångsnätverket.
- Namnet på det befintliga undernätet som ska användas av Azure Spring Apps Application Service.
- Namnet på det befintliga undernät som ska användas av Azure Spring Apps Runtime Service.
- Namnet på Azure Log Analytics-arbetsytan.
Kör följande kommando för att initiera Terraform-modulerna:
terraform init
Kör följande kommando för att skapa Terraform-distributionsplanen:
terraform plan -out=springcloud.plan
Kör följande kommando för att tillämpa Terraform-distributionsplanen:
terraform apply springcloud.plan
Granska distribuerade resurser
Du kan antingen använda Azure Portal för att kontrollera de distribuerade resurserna eller använda Azure CLI- eller Azure PowerShell-skript för att lista de distribuerade resurserna.
Rensa resurser
Om du planerar att fortsätta arbeta med efterföljande snabbstarter och självstudier kanske du vill lämna dessa resurser på plats. När de inte längre behövs tar du bort resurserna som skapats i den här artikeln med hjälp av följande kommando.
terraform destroy -auto-approve
Nästa steg
I den här snabbstarten distribuerade du en Azure Spring Apps-instans till ett befintligt virtuellt nätverk med Terraform och verifierade sedan distributionen. Om du vill veta mer om Azure Spring Apps fortsätter du till resurserna nedan.
- Distribuera något av följande exempelprogram från platserna nedan:
- Använd anpassade domäner med Azure Spring Apps.
- Exponera program i Azure Spring Apps på Internet med Hjälp av Azure Application Gateway. Mer information finns i Exponera program med TLS från slutpunkt till slutpunkt i ett virtuellt nätverk.
- Visa referensarkitekturen för Azure Spring Apps från slutpunkt till slutpunkt, som baseras på Microsoft Azure Well-Architected Framework.