Quickstart: Azure Spring Apps inrichten met Behulp van Terraform
Notitie
De Basic-, Standard- en Enterprise-abonnementen worden afgeschaft vanaf medio maart 2025, met een pensioenperiode van 3 jaar. We raden u aan om over te stappen naar Azure Container Apps. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Het standaardverbruik en het speciale abonnement worden vanaf 30 september 2024 afgeschaft, met een volledige afsluiting na zes maanden. We raden u aan om over te stappen naar Azure Container Apps. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.
Dit artikel is van toepassing op: ❎ Basic ✅ Standard ✅ Enterprise
In deze quickstart wordt beschreven hoe u Terraform gebruikt om een Azure Spring Apps-cluster te implementeren in een bestaand virtueel netwerk.
Met Azure Spring Apps kunt u Spring-toepassingen eenvoudig implementeren in Azure zonder codewijzigingen. De service beheert de infrastructuur van Spring-toepassingen, zodat ontwikkelaars zich kunnen richten op hun code. Azure Spring Apps biedt levenscyclusbeheer met uitgebreide bewaking en diagnose, configuratiebeheer, servicedetectie, CI/CD-integratie, blauwgroene implementaties en meer.
Het Enterprise-implementatieplan bevat de volgende Tanzu-onderdelen:
- Build-service
- Toepassingsconfiguratieservice
- Serviceregister
- Spring Cloud Gateway
- API-portal
Het API Portal-onderdeel wordt opgenomen wanneer het beschikbaar wordt via de AzureRM Terraform-provider.
Zie de documentatie van de Azure Spring Apps Terraform-provider voor meer aanpassingen, waaronder ondersteuning voor aangepaste domeinen.
Vereisten
- Een Azure-abonnement. Als u geen abonnement hebt, maakt u een gratis account voordat u begint.
- Hashicorp Terraform
- Twee toegewezen subnetten voor het Azure Spring Apps-cluster, een voor de serviceruntime en een voor de Spring-toepassingen. Zie het gedeelte Vereisten voor virtuele netwerken van Azure Spring Apps implementeren in een virtueel netwerk voor subnet- en virtuele netwerkvereisten.
- Een bestaande Log Analytics-werkruimte voor diagnostische instellingen van Azure Spring Apps en een Application Insights-resource op basis van een werkruimte. Zie Logboeken en metrische gegevens analyseren met diagnostische instellingen en Application Insights Java In-Process Agent in Azure Spring Apps voor meer informatie.
- Drie interne CIDR-bereiken (Classless Inter-Domain Routing) (ten minste /16 ) die u hebt geïdentificeerd voor gebruik door het Azure Spring Apps-cluster. Deze CIDR-bereiken zijn niet rechtstreeks routeerbaar en worden alleen intern gebruikt door het Azure Spring Apps-cluster. Clusters gebruiken mogelijk niet 169.254.0.0/16, 172.30.0.0/16, 172.31.0.0/16 of 192.0.2.0/24 voor de interne Azure Spring Apps CIDR. Clusters gebruiken mogelijk ook geen IP-bereiken die zijn opgenomen in het adresbereik van het virtuele clusternetwerk.
- Servicemachtigingen verleend aan het virtuele netwerk. De Azure Spring Apps-resourceprovider vereist
User Access Administrator
enNetwork Contributor
machtigingen voor uw virtuele netwerk om een toegewezen en dynamische service-principal in het virtuele netwerk te verlenen voor verdere implementatie en onderhoud. Zie de sectie Service verlenen aan de sectie Azure Spring Apps implementeren in een virtueel netwerk voor instructies en meer informatie. - Als u Azure Firewall of een NVA (Network Virtual Appliance) gebruikt, moet u ook voldoen aan de volgende vereisten:
- Netwerk- en FQDN-regels (Fully Qualified Domain Name). Zie Vereisten voor virtuele netwerken voor meer informatie.
- Een unieke door de gebruiker gedefinieerde route (UDR) die is toegepast op elk van de serviceruntime- en Spring-toepassingssubnetten. Zie Routering van verkeer van virtuele netwerken voor meer informatie over UDR's. De UDR moet worden geconfigureerd met een route voor 0.0.0.0/0 met een bestemming van uw NVA voordat u het Azure Spring Apps-cluster implementeert. Zie de sectie Bring Your Own Route Table van Azure Spring Apps implementeren in een virtueel netwerk voor meer informatie.
- Als u voor het eerst een Azure Spring Apps Enterprise-planexemplaren implementeert in het doelabonnement, raadpleegt u de sectie Vereisten van het Enterprise-plan in Azure Marketplace.
Het Terraform-plan controleren
Het configuratiebestand dat in deze quickstart wordt gebruikt, is afkomstig uit de referentiearchitectuur van 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
}
}
}
Het Terraform-plan toepassen
Voer de volgende stappen uit om het Terraform-plan toe te passen:
Sla het variables.tf bestand voor het Standard-abonnement of het Enterprise-abonnement lokaal op en open het in een editor.
Bewerk het bestand om de volgende waarden toe te voegen:
De abonnements-id van het Azure-account waarnaar u gaat implementeren.
Een implementatielocatie uit de regio's waar Azure Spring Apps beschikbaar is, zoals wordt weergegeven in Producten die beschikbaar zijn per regio. U hebt de korte vorm van de locatienaam nodig. Als u deze waarde wilt ophalen, gebruikt u de volgende opdracht om een lijst met Azure-locaties te genereren en zoekt u vervolgens de naamwaarde op voor de regio die u hebt geselecteerd.
az account list-locations --output table
Bewerk het bestand om de volgende nieuwe implementatiegegevens toe te voegen:
- De naam van de resourcegroep waarnaar u gaat implementeren.
- Een naam van uw keuze voor de Implementatie van Azure Spring Apps.
- Een naam van uw keuze voor de Application Insights-resource.
- Drie CIDR-bereiken (ten minste /16) die worden gebruikt voor het hosten van de back-endinfrastructuur van Azure Spring Apps. De CIDR-bereiken mogen niet overlappen met bestaande CIDR-bereiken in het doelsubnet
- De sleutel-/waardeparen die moeten worden toegepast als tags op alle resources die tags ondersteunen. Zie Tags gebruiken om uw Azure-resources en -beheerhiërarchie te organiseren voor meer informatie
Bewerk het bestand om de volgende bestaande infrastructuurgegevens toe te voegen:
- De naam van de resourcegroep waarin het bestaande virtuele netwerk zich bevindt.
- De naam van het bestaande virtuele bereiknetwerk.
- De naam van het bestaande subnet dat moet worden gebruikt door de Azure Spring Apps Application Service.
- De naam van het bestaande subnet dat moet worden gebruikt door de Azure Spring Apps Runtime-service.
- De naam van de Azure Log Analytics-werkruimte.
Voer de volgende opdracht uit om de Terraform-modules te initialiseren:
terraform init
Voer de volgende opdracht uit om het Terraform-implementatieplan te maken:
terraform plan -out=springcloud.plan
Voer de volgende opdracht uit om het Terraform-implementatieplan toe te passen:
terraform apply springcloud.plan
Geïmplementeerde resources bekijken
U kunt de Azure-portal gebruiken om de geïmplementeerde resources te controleren of Azure CLI of een Azure PowerShell-script gebruiken om de geïmplementeerde resources weer te geven.
Resources opschonen
Als u van plan bent om verder te gaan met volgende snelstarts en zelfstudies, kunt u deze resources het beste intact laten. Wanneer u de resources die in dit artikel zijn gemaakt niet meer nodig hebt, verwijdert u deze met behulp van de volgende opdracht.
terraform destroy -auto-approve
Volgende stappen
In deze quickstart hebt u een Azure Spring Apps-exemplaar geïmplementeerd in een bestaand virtueel netwerk met behulp van Terraform en vervolgens de implementatie gevalideerd. Ga verder met de onderstaande resources voor meer informatie over Azure Spring Apps.
- Implementeer een van de volgende voorbeeldtoepassingen vanaf de onderstaande locaties:
- Aangepaste domeinen gebruiken met Azure Spring Apps.
- Toepassingen in Azure Spring Apps beschikbaar maken op internet met behulp van Azure-toepassing Gateway. Zie Toepassingen beschikbaar maken met end-to-end TLS in een virtueel netwerk voor meer informatie.
- Bekijk de beveiligde end-to-end Azure Spring Apps-referentiearchitectuur, die is gebaseerd op het Microsoft Azure Well-Architected Framework.