Szybki start: aprowizuj usługę Azure Spring Apps przy użyciu narzędzia Terraform
Uwaga
Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.
Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.
Ten artykuł dotyczy: ❎ Basic ✅ Standard ✅ Enterprise
W tym przewodniku Szybki start opisano sposób wdrażania klastra usługi Azure Spring Apps w istniejącej sieci wirtualnej za pomocą narzędzia Terraform.
Usługa Azure Spring Apps ułatwia wdrażanie aplikacji Spring na platformie Azure bez żadnych zmian w kodzie. Usługa zarządza infrastrukturą aplikacji Spring, aby deweloperzy mogli skupić się na swoim kodzie. Usługa Azure Spring Apps zapewnia zarządzanie cyklem życia przy użyciu kompleksowego monitorowania i diagnostyki, zarządzania konfiguracją, odnajdywania usług, integracji/ciągłego wdrażania, wdrożeń niebieskich zielonych i nie tylko.
Plan wdrożenia przedsiębiorstwa obejmuje następujące składniki Tanzu:
- Usługa kompilacji
- Usługa konfiguracji aplikacji
- Rejestr usług
- Spring Cloud Gateway
- API Portal
Składnik portalu interfejsu API zostanie uwzględniony, gdy stanie się dostępny za pośrednictwem dostawcy narzędzia Terraform modułu AzureRM.
Aby uzyskać więcej możliwości dostosowywania, w tym obsługę domeny niestandardowej, zobacz dokumentację dostawcy narzędzia Terraform usługi Azure Spring Apps.
Wymagania wstępne
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji, przed rozpoczęciem utwórz bezpłatne konto .
- Hashicorp Terraform
- Dwie dedykowane podsieci klastra usługi Azure Spring Apps, jedna dla środowiska uruchomieniowego usługi, a druga dla aplikacji Spring. Aby uzyskać wymagania dotyczące podsieci i sieci wirtualnej, zobacz sekcję Wymagania dotyczące sieci wirtualnej w temacie Wdrażanie usługi Azure Spring Apps w sieci wirtualnej.
- Istniejący obszar roboczy usługi Log Analytics dla ustawień diagnostycznych usługi Azure Spring Apps i zasób usługi Application Insights oparty na obszarze roboczym. Aby uzyskać więcej informacji, zobacz Analizowanie dzienników i metryk przy użyciu ustawień diagnostycznych oraz Agent in-Process Agent usługi Application Insights w usłudze Azure Spring Apps.
- Trzy wewnętrzne zakresy routingu międzydomenowego (CIDR, Classless Inter-Domain Routing) (co najmniej /16 ), które zostały zidentyfikowane do użycia przez klaster usługi Azure Spring Apps. Te zakresy CIDR nie będą bezpośrednio routingowane i będą używane tylko wewnętrznie przez klaster usługi Azure Spring Apps. Klastry mogą nie używać 169.254.0.0/16, 172.30.0.0/16, 172.31.0.0/16 lub 192.0.2.0/24 dla wewnętrznej trasy CIDR usługi Azure Spring Apps. Klastry mogą również nie używać żadnych zakresów adresów IP uwzględnionych w zakresie adresów sieci wirtualnej klastra.
- Uprawnienie usługi przyznane sieci wirtualnej. Dostawca zasobów usługi Azure Spring Apps wymaga
User Access Administrator
uprawnień iNetwork Contributor
uprawnień do sieci wirtualnej w celu udzielenia dedykowanej i dynamicznej jednostki usługi w sieci wirtualnej w celu dalszego wdrażania i konserwacji. Aby uzyskać instrukcje i więcej informacji, zobacz sekcję Udzielanie uprawnień usługi do sieci wirtualnej w temacie Wdrażanie usługi Azure Spring Apps w sieci wirtualnej. - Jeśli używasz usługi Azure Firewall lub wirtualnego urządzenia sieciowego (WUS), musisz również spełnić następujące wymagania wstępne:
- Reguły w pełni kwalifikowanej nazwy domeny (FQDN). Aby uzyskać więcej informacji, zobacz Wymagania dotyczące sieci wirtualnej.
- Unikatowa trasa zdefiniowana przez użytkownika (UDR) zastosowana do każdego środowiska uruchomieniowego usługi i podsieci aplikacji Spring. Aby uzyskać więcej informacji na temat tras zdefiniowanych przez użytkownika, zobacz Routing ruchu w sieci wirtualnej. Trasa zdefiniowana przez użytkownika powinna być skonfigurowana przy użyciu trasy dla wersji 0.0.0.0/0 z miejscem docelowym urządzenia WUS przed wdrożeniem klastra usługi Azure Spring Apps. Aby uzyskać więcej informacji, zobacz sekcję Bring your own route table ( Wdrażanie usługi Azure Spring Apps w sieci wirtualnej).
- Jeśli wdrażasz wystąpienie planu Usługi Azure Spring Apps Enterprise po raz pierwszy w subskrypcji docelowej, zobacz sekcję Wymagania planu przedsiębiorstwa w witrynie Azure Marketplace.
Zapoznaj się z planem narzędzia Terraform
Plik konfiguracji używany w tym przewodniku Szybki start pochodzi z architektury referencyjnej usługi 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
}
}
}
Stosowanie planu narzędzia Terraform
Aby zastosować plan programu Terraform, wykonaj następujące kroki:
Zapisz plik variables.tf dla planu standardowego lub planu Enterprise lokalnie, a następnie otwórz go w edytorze.
Edytuj plik, aby dodać następujące wartości:
Identyfikator subskrypcji konta platformy Azure, do którego będziesz wdrażać.
Lokalizacja wdrożenia z regionów, w których jest dostępna usługa Azure Spring Apps, jak pokazano w artykule Produkty dostępne według regionów. Będzie potrzebna krótka forma nazwy lokalizacji. Aby uzyskać tę wartość, użyj następującego polecenia, aby wygenerować listę lokalizacji platformy Azure, a następnie wyszukaj wartość Nazwa dla wybranego regionu.
az account list-locations --output table
Edytuj plik, aby dodać następujące nowe informacje o wdrożeniu:
- Nazwa grupy zasobów, w której zostanie wdrożona.
- Wybrana nazwa wdrożenia usługi Azure Spring Apps.
- Wybrana nazwa zasobu usługi Application Insights.
- Trzy zakresy CIDR (co najmniej /16), które są używane do hostowania infrastruktury zaplecza usługi Azure Spring Apps. Zakresy CIDR nie mogą pokrywać się z żadnymi istniejącymi zakresami CIDR w docelowej podsieci
- Pary klucz/wartość, które mają być stosowane jako tagi dla wszystkich zasobów, które obsługują tagi. Aby uzyskać więcej informacji, zobacz Organizowanie zasobów platformy Azure i hierarchii zarządzania przy użyciu tagów
Edytuj plik, aby dodać następujące istniejące informacje o infrastrukturze:
- Nazwa grupy zasobów, w której znajduje się istniejąca sieć wirtualna.
- Nazwa istniejącej sieci wirtualnej zakresu.
- Nazwa istniejącej podsieci, która ma być używana przez usługę aplikacji Azure Spring Apps.
- Nazwa istniejącej podsieci, która ma być używana przez usługę Azure Spring Apps Runtime Service.
- Nazwa obszaru roboczego usługi Azure Log Analytics.
Uruchom następujące polecenie, aby zainicjować moduły programu Terraform:
terraform init
Uruchom następujące polecenie, aby utworzyć plan wdrożenia programu Terraform:
terraform plan -out=springcloud.plan
Uruchom następujące polecenie, aby zastosować plan wdrożenia programu Terraform:
terraform apply springcloud.plan
Przeglądanie wdrożonych zasobów
Możesz użyć witryny Azure Portal, aby sprawdzić wdrożone zasoby lub użyć interfejsu wiersza polecenia platformy Azure lub skryptu programu Azure PowerShell, aby wyświetlić listę wdrożonych zasobów.
Czyszczenie zasobów
Jeśli planujesz kontynuować pracę z kolejnymi przewodnikami Szybki start i samouczkami, możesz pozostawić te zasoby na miejscu. Jeśli zasoby utworzone w tym artykule nie będą już potrzebne, usuń je przy użyciu następującego polecenia.
terraform destroy -auto-approve
Następne kroki
W tym przewodniku Szybki start wdrożono wystąpienie usługi Azure Spring Apps w istniejącej sieci wirtualnej przy użyciu narzędzia Terraform, a następnie sprawdzono wdrożenie. Aby dowiedzieć się więcej na temat usługi Azure Spring Apps, przejdź do poniższych zasobów.
- Wdróż jedną z następujących przykładowych aplikacji z poniższych lokalizacji:
- Używanie domen niestandardowych z usługą Azure Spring Apps.
- Uwidaczniaj aplikacje w usłudze Azure Spring Apps w Internecie przy użyciu usługi aplikacja systemu Azure Gateway. Aby uzyskać więcej informacji, zobacz Udostępnianie aplikacji za pomocą kompleksowego protokołu TLS w sieci wirtualnej.
- Zapoznaj się z kompleksową architekturą referencyjną usługi Azure Spring Apps opartą na platformie Microsoft Azure Well-Architected Framework.