Aplicativo e implantação no Azure Spring Apps

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 dedicado e consumo 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 aplica-se a: ✔️ Java ✔️ C#

Este artigo se aplica ao: ✔️ nível Básico/Standard ✔️ nível Enterprise

Os conceitos Aplicativo e Implantação são os dois principais conceitos no modelo de recurso do Azure Spring Apps. No Azure Spring Apps, um Aplicativo é uma abstração de um aplicativo de negócios. Uma versão do código ou binário implantado como Aplicativo é executado em uma Implantação. Os aplicativos são executados em uma Instância de serviço dos Aplicativos Spring do Azure, ou apenas instância de serviço, conforme mostrado a seguir.

Diagrama mostrando a relação entre os aplicativos e as implantações.

Você pode ter várias instâncias de serviço em uma única assinatura do Azure, mas o Serviço do Azure Spring Apps é mais fácil de usar quando todos os aplicativos que compõem um aplicativo de negócios residem em uma única instância de serviço. Um motivo é que os aplicativos provavelmente se comunicam entre si. Eles podem fazer isso facilmente usando o registro de serviço Eureka na instância de serviço.

O plano Standard dos Aplicativos Spring do Azure permite que um aplicativo tenha uma implantação de produção e uma implantação de preparo, para que você possa fazer a implantação azul/verde nele facilmente.

Aplicativo

Os seguintes recursos/propriedades são definidos no nível do aplicativo.

Recursos Descrição
Ponto de extremidade
público
A URL para acessar o aplicativo.
Domínio
personalizado
O registro CNAME que protege o domínio personalizado.
Vinculação
serviço
A conexão pronta para uso com outros serviços do Azure.
Identidade
gerenciada
A identidade gerenciada pelo Microsoft Entra ID permite que seu aplicativo acesse facilmente outros recursos protegidos do Microsoft Entra, como o Azure Key Vault.
Armazenamento
persistente
A configuração que permite que os dados persistam além da reinicialização do aplicativo.

Implantação

Os recursos/propriedades a seguir são definidos no nível de implantação e são trocados ao trocar a implantação de produção e de preparo.

Recursos Descrição
CPU O número de vcores por instância de aplicativo.
Memória O GB de memória por instância do aplicativo.
Contagem
instâncias
O número de instâncias de aplicativo, definido manual ou automaticamente.
Dimensionamento automático A contagem de instâncias de escala automaticamente com base em regras e agendamentos predefinidos.
Opções
JVM
As opções de JVM a serem definidas.
variáveis
ambientais
As variáveis de ambiente a serem definidas.
Versão
Runtime:
Java 8 ou Java 11.

Ambiente

Os Aplicativos Spring do Azure montam alguns arquivos YAML somente leitura em seus aplicativos implantados. Esses arquivos contêm o contexto do Azure de uma implantação. A lista a seguir mostra os caminhos e o conteúdo desses arquivos YAML:

  • /etc/azure-spring-cloud/context/azure-spring-apps.yml

    AZURE_SPRING_APPS:
        SUBSCRIPTION_ID:  <your-azure-subscription-id>
        RESOURCE_GROUP: <your-resource-group-name>
        NAME: <your-azure-spring-apps-name>
    
  • /etc/azure-spring-cloud/context/azure-spring-apps-deployment.yml

    AZURE_SPRING_APPS:
         APP:
            NAME: <your-app-name>
         DEPLOYMENT:
            NAME: <your-deployment-name>
            ACTIVE: true # true if the deployment is in production, false if in staging
    

Se o aplicativo for um aplicativo Spring Boot, esses dois caminhos de arquivo serão adicionados à variável de ambiente SPRING_CONFIG_ADDITIONAL_LOCATION. Dessa forma, seu aplicativo pode carregar essas propriedades como configurações e usá-las em seu código. Por exemplo, você pode usar a anotação @ConfigurationProperties para associar as propriedades YAML a uma classe Java. O snippet de código a seguir mostra como criar uma classe de @Configuration que representa o contexto do Azure:

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "azure-spring-apps")
@Data
public class AzureSpringAppsContext {

    private String subscriptionId;
    private String resourceGroup;
    private String name;

    private AppContext app;
    private DeploymentContext deployment;

    @Data
    public static class AppContext {
        private String name;
    }

    @Data
    public static class DeploymentContext {
        private String name;
        private boolean active;
    }
}

Para qualquer outro aplicativo poliglota, talvez seja necessário ler e acessar as propriedades correspondentes usando as bibliotecas de leitura/gravação de arquivo correspondentes em seus aplicativos.

Restrições

  • Um aplicativo deve ter uma implantação de produção. A API bloqueia a exclusão de uma implantação de produção. Você deve trocar uma implantação pelo preparo antes de excluí-la.
  • Um aplicativo pode ter no máximo duas implantações. A API bloqueia a criação de mais de duas implantações. Implante o novo binário na implantação de produção ou de preparação existente.
  • O gerenciamento de implantação não está disponível no plano Básico. Use o plano Standard ou Enterprise para a funcionalidade de implantação azul-verde.

Próximas etapas