Démarrage rapide : Approvisionner Azure Spring Apps avec Terraform
Remarque
Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de 3 ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce de mise hors service d’Azure Spring Apps.
Le plan de consommation standard et dédiée sera déconseillé à compter du 30 septembre 2024, avec un arrêt complet après six mois. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer le plan de consommation standard et dédiée Azure Spring Apps vers Azure Container Apps.
Cet article s’applique à : ❎ Essentiel ✅ Standard ✅ Entreprise
Ce guide de démarrage rapide explique comment utiliser Terraform pour déployer un cluster Azure Spring Apps dans un réseau virtuel existant.
Azure Spring Apps permet de déployer facilement des applications Spring dans Azure, sans aucune modification du code. Le service gère l’infrastructure des applications Spring, ce qui permet aux développeurs de se concentrer sur leur code. Azure Spring Apps assure la gestion du cycle de vie en utilisant des outils complets, tels que la supervision et les diagnostics, la gestion des configurations, la découverte de services, l’intégration CI/CD, les déploiements bleus-verts, etc.
Le plan de déploiement Enterprise comprend les composants Tanzu suivants :
- Service de build
- Service de configuration des applications
- Registre de service
- Spring Cloud Gateway
- Portail des API
Le composant Portail des API sera inclus lorsqu’il sera disponible via le fournisseur AzureRM Terraform.
Pour une meilleure personnalisation, notamment la prise en charge du domaine personnalisé, consultez la documentation du fournisseur Terraform Azure Spring Apps.
Prérequis
- Un abonnement Azure. Si vous n’avez pas d’abonnement, créez un compte gratuit avant de commencer.
- HashiCorp Terraform
- Deux sous-réseaux dédiés pour le cluster Azure Spring Apps, l’un pour le runtime du service et l’autre pour les applications Spring. Pour connaître la configuration requise pour le sous-réseau et le réseau virtuel, consultez la section Conditions requises pour le réseau virtuel de l’article Déployer Azure Spring Apps dans un réseau virtuel.
- Un espace de travail Log Analytics existant pour les paramètres de diagnostic d’Azure Spring Apps et une ressource Application Insights basée sur un espace de travail. Pour plus d’informations, consultez Analyser les journaux et les métriques avec les paramètres de diagnostic et Agent in-process Java Application Insights dans Azure Spring Apps.
- Trois plages de routage CIDR (Classless InterDomain Routing) internes (au moins /16 chacune) que vous avez identifiées pour une utilisation par le cluster Azure Spring Apps. Ces plages CIDR ne sont pas directement routables. Elles ne sont utilisées qu’en interne par le cluster Azure Spring Apps. Les clusters ne peuvent pas utiliser 169.254.0.0/16, 172.30.0.0/16, 172.31.0.0/16 ou 192.0.2.0/24 pour le routage CIDR (Classless InterDomain routing) Azure Spring Apps interne. Les clusters ne peuvent pas non plus utiliser des plages d’adresses IP incluses dans la plage d’adresses du réseau virtuel du cluster.
- Autorisation de service accordée au réseau virtuel. Le fournisseur de ressources Azure Spring Apps nécessite des autorisations
User Access Administrator
etNetwork Contributor
sur votre réseau virtuel pour accorder un principal de service dédié et dynamique sur le réseau virtuel pour permettre le déploiement et la maintenance. Pour obtenir des instructions et plus d’informations, consultez la section Accorder l’autorisation du service au réseau virtuel de l’article Déployer Azure Spring Apps dans un réseau virtuel. - Si vous utilisez un pare-feu Azure ou une appliance virtuelle réseau, vous devez également répondre aux conditions préalables suivantes :
- Règles de réseau et de nom de domaine complet (FQDN). Pour plus d’informations, consultez la Conditions requises pour le réseau virtuel.
- Une route définie par l’utilisateur (UDR) unique appliquée à chacun des sous-réseaux de runtime de service et d’application Spring. Pour plus d’informations sur les UDR, consultez Routage du trafic de réseau virtuel. Avant le déploiement du cluster Azure Spring Apps, l’UDR doit être configuré avec une route pour 0.0.0.0/0 et votre appliance virtuelle réseau comme destination. Pour plus d’informations, consultez la section Apporter votre propre table de routage de l’article Déployer Azure Spring Apps dans un réseau virtuel.
- Si vous déployez une instance du plan Entreprise Azure Spring Apps pour la première fois dans l’abonnement cible, consultez la section Exigences du Plan Entreprise dans la Place de marché Azure.
Passer en revue le plan Terraform
Le fichier de configuration utilisé dans ce démarrage rapide provient de l’architecture de référence 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
}
}
}
Appliquer le plan Terraform
Pour appliquer le plan Terraform, procédez comme suit :
Enregistrez localement le fichier variables.tf pour le plan Standard ou le plan Entreprise, puis ouvrez-le dans un éditeur.
Modifiez le fichier, puis ajoutez les valeurs suivantes :
ID d’abonnement du compte Azure sur lequel vous allez effectuer le déploiement.
Un emplacement de déploiement dans les régions où Azure Spring Apps est disponible, comme indiqué dans Disponibilité des produits par région. Vous aurez besoin de la forme abrégée du nom de l’emplacement. Pour obtenir cette valeur, utilisez la commande suivante pour générer une liste d’emplacements Azure, puis recherchez la valeur Nom pour la région que vous avez sélectionnée.
az account list-locations --output table
Modifiez le fichier pour ajouter les nouvelles informations de déploiement suivantes :
- Nom du groupe de ressources sur lequel vous allez effectuer le déploiement.
- Nom de votre choix pour le déploiement Azure Spring Apps.
- Nom de votre choix pour la ressource Application Insights.
- Trois plages CIDR (au moins /16) utilisées pour héberger l’infrastructure back-end Azure Spring Apps. Les plages CIDR ne doivent pas chevaucher les plages CIDR existantes dans le sous-réseau cible
- Les paires clé/valeur à appliquer comme étiquettes à toutes les ressources qui prennent en charge les étiquettes. Pour plus d’informations, consultez Utiliser des étiquettes pour organiser vos ressources Azure et votre hiérarchie de gestion
Modifiez le fichier pour ajouter les informations d’infrastructure existantes suivantes :
- Nom du groupe de ressources dans lequel réside le réseau virtuel existant.
- Nom du réseau virtuel d’étendue existante.
- Nom du sous-réseau existant à utiliser par le service d’application Azure Spring Apps.
- Nom du sous-réseau existant à utiliser par le service de runtime Azure Spring Apps.
- Le nom de l’espace de travail d’Azure Log Analytics.
Exécutez la commande ci-dessous pour initialiser les modules de Terraform :
terraform init
Exécutez la commande suivante pour créer le plan de déploiement Terraform :
terraform plan -out=springcloud.plan
Exécutez la commande suivante pour appliquer le plan de déploiement Terraform :
terraform apply springcloud.plan
Vérifier les ressources déployées
Vous pouvez utiliser le portail Azure pour vérifier les ressources déployées, ou Azure CLI ou un script Azure PowerShell pour lister les ressources déployées.
Nettoyer les ressources
Si vous prévoyez d’utiliser d’autres guides de démarrage rapide et tutoriels, vous pouvez conserver ces ressources. Quand vous n’en avez plus besoin, supprimez les ressources créées dans cet article en utilisant la commande suivante.
terraform destroy -auto-approve
Étapes suivantes
Dans ce guide de démarrage rapide, vous avez déployé une instance Azure Spring Apps dans un réseau virtuel existant à l’aide de Terraform, puis vous avez validé le déploiement. Pour plus d’informations sur Azure Spring Apps, accédez aux ressources ci-dessous.
- Déployez l’un des exemples d’application suivants à partir des emplacements ci-dessous :
- Utilisez des domaines personnalisés avec Azure Spring Apps.
- Exposez des applications dans Azure Spring Apps à Internet à l’aide d’Azure Application Gateway. Pour plus d’informations, consultez Exposer des applications avec le protocole TLS de bout en bout dans un réseau virtuel.
- Affichez l’architecture de référence Azure Spring Apps sécurisée de bout en bout, basée sur Microsoft Azure Well-Architected Framework.