Guia de início rápido: provisionar aplicativos do Azure Spring usando o Terraform
Nota
Os planos Basic, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de aposentadoria de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.
O plano de consumo padrão e dedicado 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 obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.
Este artigo aplica-se 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 alterações de código. O serviço gerencia a infraestrutura dos aplicativos Spring para que os desenvolvedores possam se concentrar em seu código. O Azure Spring Apps fornece gerenciamento do ciclo de vida usando monitoramento e diagnóstico abrangentes, gerenciamento de configuração, descoberta de serviços, integração de CI/CD, implantações azul-verde e muito mais.
O plano de implantação Enterprise inclui os seguintes componentes Tanzu:
- Serviço de compilação
- Serviço de Configuração de Aplicativos
- Registo de Serviços
- Gateway de nuvem Spring
- API Portal
O componente Portal da API será incluído quando estiver disponível por meio do provedor AzureRM Terraform.
Para obter mais personalização, incluindo suporte de domínio personalizado, consulte a documentação do provedor Terraform do Azure Spring Apps.
Pré-requisitos
- Uma subscrição do Azure. Se você não tiver 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 tempo de execução do serviço e outra para os aplicativos Spring. Para requisitos de sub-rede e rede virtual, consulte a seção Requisitos de rede virtual de Implantar aplicativos Azure Spring em uma rede virtual.
- Um espaço de trabalho existente do Log Analytics 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, consulte Analisar logs e métricas com configurações de diagnóstico e Agente em processo Java do Application Insights no Azure Spring Apps.
- Três intervalos internos de Roteamento entre Domínios sem Classe (CIDR) (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 serão usados apenas 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 interno do Azure Spring Apps. Os clusters também não podem usar nenhum intervalo de IP incluído no intervalo de endereços de rede virtual do cluster.
- Permissão de serviço concedida à rede virtual. O Provedor de Recursos do Azure Spring Apps 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 adicionais. Para obter instruções e mais informações, consulte a seção Conceder permissão de serviço para a rede virtual de Implantar o Azure Spring Apps em uma rede virtual. - Se estiver a utilizar a Firewall do Azure ou uma Ferramenta Virtual de Rede (NVA), também terá de satisfazer os seguintes pré-requisitos:
- Regras de rede e FQDN (nome de domínio totalmente qualificado). Para obter mais informações, consulte Requisitos de rede virtual.
- Uma UDR (User Defined Route) exclusiva aplicada a cada uma das sub-redes do aplicativo Spring, do tempo de execução do serviço e do aplicativo Spring. Para obter mais informações sobre UDRs, consulte Roteamento de tráfego de rede virtual. O UDR deve ser configurado com uma rota para 0.0.0.0/0 com um destino do seu NVA antes de implantar o cluster do Azure Spring Apps. Para obter mais informações, consulte a seção Traga sua própria tabela de rotas de Implantar aplicativos Azure Spring em uma rede virtual.
- Se você estiver implantando uma instância do plano do Azure Spring Apps Enterprise pela primeira vez na assinatura de destino, consulte a seção Requisitos do plano Enterprise no Azure Marketplace.
Rever o plano Terraform
O arquivo de configuração usado neste 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 Terraform
Para aplicar o plano Terraform, siga estes passos:
Salve o arquivo variables.tf para o plano Standard ou o plano Enterprise localmente e abra-o em um editor.
Edite o arquivo para adicionar os seguintes valores:
A ID de assinatura da conta do Azure na qual você implantará.
Um local de implantação das regiões onde o Azure Spring Apps está disponível, conforme mostrado em Produtos disponíveis por região. Você precisará da forma abreviada do nome do local. Para obter esse valor, use o comando a seguir para gerar uma lista de locais do Azure e, em seguida, procure o valor Name para a 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 sobrepor-se a quaisquer intervalos CIDR existentes na sub-rede de destino
- Os pares chave/valor a serem aplicados como tags em todos os recursos que suportam tags. Para obter mais informações, consulte Usar tags para organizar seus recursos do Azure e hierarquia de gerenciamento
Edite o arquivo para adicionar as seguintes informações de infraestrutura existentes:
- O nome do grupo de recursos onde reside a rede virtual existente.
- 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 Tempo de Execução do Azure Spring Apps.
- O nome do espaço de trabalho 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
Rever os recursos implementados
Você pode usar o portal do Azure para verificar os recursos implantados ou usar a CLI do Azure ou o script do Azure PowerShell para listar os recursos implantados.
Clean up resources (Limpar recursos)
Se você planeja continuar trabalhando com guias de início rápido e tutoriais subsequentes, convém deixar esses recursos no lugar. Quando não for mais necessário, exclua os recursos criados neste artigo usando o comando a seguir.
terraform destroy -auto-approve
Próximos passos
Neste início rápido, você implantou uma instância do Azure Spring Apps em uma rede virtual existente usando o Terraform e, em seguida, validou a implantação. Para saber mais sobre o Azure Spring Apps, continue com os recursos abaixo.
- Implante um dos seguintes aplicativos de exemplo dos locais abaixo:
- Use domínios personalizados com o Azure Spring Apps.
- Exponha aplicativos no Azure Spring Apps para a Internet usando o Azure Application Gateway. Para obter mais informações, consulte Expor aplicativos com TLS de ponta a ponta em uma rede virtual.
- Veja a arquitetura de referência segura de ponta a ponta do Azure Spring Apps, que se baseia no Microsoft Azure Well-Architected Framework.