Guia de Início Rápido: Provisionar o Azure Spring Apps usando o Terraform
Observação
Os planos Básico, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de desativação de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira o anúncio de desativação dos Aplicativos Spring do Azure.
O plano consumo e dedicado Standard será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira Migrar o plano dedicado e consumo Standard dos Aplicativos Spring do Azure para os Aplicativos de Contêiner do Azure.
Este artigo se aplica a: ❎ Basic ✅ Standard ✅ Enterprise
Este guia de início rápido descreve como usar o Terraform para implantar um cluster do Azure Spring Apps em uma rede virtual existente.
O Azure Spring Apps facilita a implantação de aplicativos Spring no Azure sem nenhuma alteração de código. O serviço gerencia a infraestrutura dos aplicativos do Spring para que os desenvolvedores possam se concentrar no código. O Azure Spring Apps fornece gerenciamento de ciclo de vida usando monitoramento e diagnóstico abrangentes, gerenciamento de configuração, descoberta de serviços, integração de CI/CD, implantações em “blue-green” e muito mais.
O plano de implantação Enterprise inclui os seguintes componentes do Tanzu:
- Serviço de build
- Serviço de Configuração do Aplicativo
- Registro do Serviço
- Spring Cloud Gateway
- Portal de API
O componente de Portal da API será incluído quando ele ficar disponível por meio do provedor Terraform do AzureRM.
Para ter mais personalização, incluindo suporte de domínio personalizado, confira a documentação do provedor Terraform do Azure Spring Apps.
Pré-requisitos
- Uma assinatura do Azure. Caso não tenha uma assinatura, crie uma conta gratuita antes de começar.
- Hashicorp Terraform
- Duas sub-redes dedicadas para o cluster do Azure Spring Apps: uma para o runtime de serviço e outra para os aplicativos Spring. Para obter os requisitos detalhados da rede virtual, confira a seção Requisitos de rede virtual de Implantar o Azure Spring Apps em uma rede virtual.
- Um workspace do Log Analytics existente para configurações de diagnóstico do Azure Spring Apps e um recurso do Application Insights baseado em espaço de trabalho. Para obter mais informações, confira Analisar logs e métricas com configurações de diagnóstico e Agente em processo de Java do Application Insights no Azure Spring Apps.
- Três intervalos internos do CIDR (Roteamento entre Domínios sem Classificação) (pelo menos /16 cada) que você identificou para uso pelo cluster do Azure Spring Apps. Esses intervalos CIDR não serão diretamente roteáveis e só serão usados internamente pelo cluster do Azure Spring Apps. Os clusters não podem usar 169.254.0.0/16, 172.30.0.0/16, 172.31.0.0/16 ou 192.0.2.0/24 para o CIDR do Aplicativos Spring do Azure. Os clusters também podem não usar nenhum intervalo de IP incluído no intervalo de endereços de rede virtual do cluster.
- Permissão de serviço concedida para a rede virtual. O Provedor de Recursos do Aplicativos Spring do Azure requer
User Access Administrator
eNetwork Contributor
permissões para sua rede virtual para conceder uma entidade de serviço dedicada e dinâmica na rede virtual para implantação e manutenção posteriores. Para obter instruções e mais informações, confira a seção Conceder permissão de serviço à rede virtual de Implantar o Azure Spring Apps em uma rede virtual. - Caso esteja usando o Firewall do Azure ou um NVA (Solução de virtualização de rede), você também precisará atender aos seguintes pré-requisitos:
- Regras de FQDN (nome de domínio totalmente qualificado) e de rede. Para obter mais informações, confira Requisitos de rede virtual.
- Uma UDR (rota definida pelo usuário) exclusiva aplicada a cada uma das sub-redes do runtime de serviço e do aplicativo Spring. Para obter mais informações sobre a UDR, confira Roteamento de tráfego da rede virtual. A UDR deve ser configurada com uma rota para 0.0.0.0/0 com um destino de sua NVA antes de implantar o cluster do Azure Spring Apps. Para obter mais informações, confira a seção Traga sua própria tabela de rotas de Implantar o Azure Spring Apps em uma rede virtual.
- Se você estiver implantando a instância do plano Enterprise do Aplicativos Spring do Azure pela primeira vez na assinatura de destino, confira a seção Requisitos do plano Enterprise no Azure Marketplace.
Revisar o plano do Terraform
O arquivo de configuração usado neste guia de início rápido é da arquitetura de referência do 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
}
}
}
Aplicar o plano do Terraform
Para aplicar o plano do Terraform, siga estas etapas:
Salve o arquivo variables.tf do plano Standard ou do plano Enterprise localmente e abra-o em um editor.
Edite o arquivo para adicionar os seguintes valores:
A ID da assinatura da conta do Azure que você implantará.
Um local de implantação das regiões em que o Azure Spring Apps está disponível, conforme mostrado em Produtos disponíveis por região. Você precisará da forma curta do nome do local. Para obter esse valor, use o comando a seguir para gerar uma lista de locais do Azure e procure o valor Nome da região selecionada.
az account list-locations --output table
Edite o arquivo para adicionar as seguintes novas informações de implantação:
- O nome do grupo de recursos no qual você implantará.
- Um nome de sua escolha para a implantação do Azure Spring Apps.
- Um nome de sua escolha para o recurso do Application Insights.
- Três intervalos CIDR (pelo menos /16) que são usados para hospedar a infraestrutura de back-end do Azure Spring Apps. Os intervalos CIDR não devem se sobrepor a nenhum intervalo CIDR existente na sub-rede de destino
- Os pares chave/valor a serem aplicados como marcas em todos os recursos que dão suporte a marcas. Para saber mais, confira Usar marcas para organizar os recursos do Azure e a hierarquia de gerenciamento
Edite o arquivo para adicionar as seguintes informações de infraestrutura existentes:
- O nome do grupo de recursos em que a rede virtual existente se encontra.
- O nome da rede virtual de escopo existente.
- O nome da sub-rede existente a ser usada pelo Serviço de Aplicativo do Azure Spring Apps.
- O nome da sub-rede existente a ser usada pelo Serviço de Runtime do Azure Spring Apps.
- O nome do workspace do Azure Log Analytics.
Execute o seguinte comando para inicializar os módulos Terraform:
terraform init
Execute o seguinte comando para criar o plano de implantação do Terraform:
terraform plan -out=springcloud.plan
Execute o seguinte comando para aplicar o plano de implantação do Terraform:
terraform apply springcloud.plan
Examinar os recursos implantados
Você pode usar o portal do Azure para verificar os recursos implantados ou usar o script da CLI do Azure ou do Azure PowerShell para listar os recursos implantados.
Limpar os recursos
Se planejar continuar trabalhando com os tutoriais e inícios rápidos subsequentes, deixe esses recursos onde estão. Quando não forem mais necessários, exclua os recursos criados neste artigo usando o comando a seguir.
terraform destroy -auto-approve
Próximas etapas
Neste guia de início rápido, você implantou uma instância do Azure Spring Apps em uma rede virtual existente usando o Terraform e validou a implantação. Para saber mais sobre o Azure Spring Apps, confira os recursos abaixo.
- Implante um dos seguintes aplicativos de exemplo dos locais abaixo:
- Use domínios personalizados com o Azure Spring Apps.
- Exponha os aplicativos no Azure Spring Apps à Internet usando o Gateway de Aplicativo do Azure. Para mais informações, consulte Expor aplicativos com TLS de ponta a ponta em uma rede virtual.
- Veja a arquitetura de referência do Azure Spring Apps de ponta a ponta segura, que se baseia no Microsoft Azure Well-Architected Framework.