Delen via


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 en Network 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:
  • 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:

  1. Sla het variables.tf bestand voor het Standard-abonnement of het Enterprise-abonnement lokaal op en open het in een editor.

  2. 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
      
  3. 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
  4. 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.
  5. Voer de volgende opdracht uit om de Terraform-modules te initialiseren:

    terraform init
    
  6. Voer de volgende opdracht uit om het Terraform-implementatieplan te maken:

    terraform plan -out=springcloud.plan
    
  7. 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.