Como implantar aplicativos poliglotas no plano do Azure Spring Apps Enterprise

Nota

Azure Spring Apps é o novo nome para o serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns lugares por um tempo enquanto trabalhamos para atualizar ativos, como capturas de tela, vídeos e diagramas.

Este artigo aplica-se a:❌ Basic/Standard ✔️ Enterprise

Este artigo mostra como implantar aplicativos poliglotas no plano do Azure Spring Apps Enterprise e como esses aplicativos poliglotas podem usar os recursos de serviço de compilação fornecidos por buildpacks.

Pré-requisitos

Implantar aplicativos poliglotas em uma instância de serviço

Esta seção se aplica à criação e implantação de aplicativos poliglotas quando o serviço de compilação está habilitado. Se você desabilitar o serviço de compilação, poderá implantar aplicativos somente com uma imagem de contêiner personalizada. Você pode criar sua própria imagem ou usar uma criada por uma instância do Azure Spring Apps Enterprise. Para obter mais informações, consulte Implantar um aplicativo com uma imagem de contêiner personalizada.

Gerenciar construtores

Ao criar uma instância do Azure Spring Apps Enterprise, você deve escolher um construtor padrão de um dos seguintes buildpacks da família de idiomas com suporte:

Para obter mais informações, consulte Language Family Buildpacks for VMware Tanzu.

Esses buildpacks suportam a criação com código-fonte ou artefatos para Java, .NET Core, Go, arquivos estáticos da Web, Node.js e aplicativos Python. Você também pode ver as versões do buildpack durante a criação ou visualização de um construtor. E você pode criar um construtor personalizado especificando buildpacks e uma pilha.

Todos os construtores configurados em uma instância de serviço do Azure Spring Apps são listados na página Serviço de Compilação, conforme mostrado na captura de tela a seguir:

Captura de ecrã do portal do Azure que mostra a página Serviço de Criação com a lista Construtores realçada.

Selecione Adicionar para criar um novo construtor. A captura de tela a seguir mostra os recursos que você deve usar para criar o construtor personalizado. A pilha do sistema operacional inclui Bionic Base, Bionic Full, Jammy Tiny, Jammy Base, e Jammy Full. Bionic é baseado em Ubuntu 18.04 (Bionic Beaver) e Jammy é baseado em Ubuntu 22.04 (Jammy Jellyfish). Para obter mais informações, consulte a seção Recomendações da pilha do sistema operacional.

Recomendamos o uso Jammy OS Stack para criar seu construtor porque o VMware está preterindo Bionic OS Stacko .

Captura de ecrã do portal do Azure que mostra a página Adicionar Construtor com a Pilha do SO e o nome do buildpack selecionado realçados.

Você também pode editar um construtor personalizado quando o construtor não é usado em uma implantação. Você pode atualizar os buildpacks ou a pilha do sistema operacional, mas o nome do construtor é somente leitura.

Captura de ecrã do portal do Azure que mostra a página Serviço de Criação com o botão de reticências e a opção de menu Editar construtor realçados.

O construtor é um recurso que contribui continuamente para suas implantações. Ele fornece as imagens de tempo de execução mais recentes e os pacotes de compilação mais recentes.

Não é possível excluir um construtor quando implantações ativas existentes estão sendo criadas com o construtor. Para excluir um construtor nesse estado, use as seguintes etapas:

  1. Salve a configuração como um novo construtor.
  2. Implante aplicativos com o novo construtor. As implantações estão ligadas ao novo construtor.
  3. Migre as implantações no construtor anterior para o novo construtor.
  4. Exclua o construtor original.

Recomendações de pilha de SO

No Azure Spring Apps, recomendamos o uso Jammy OS Stack para criar seu construtor porque Bioinic OS Stack está na linha para a descontinuação pelo VMware. A lista a seguir descreve as opções disponíveis:

  • Jammy Tiny: Adequado para construir uma imagem mínima para o menor tamanho possível e pegada de segurança. Como construir uma imagem nativa Java, ele pode tornar a imagem de contêiner final menor. As bibliotecas integradas são limitadas. Por exemplo, você não pode se conectar a uma instância de aplicativo para solução de problemas porque não shell há biblioteca.

    • A maioria dos aplicativos Go.
    • Aplicativos Java. Algumas opções de configuração do Apache Tomcat, como a configuração bin/setenv.sh, não estão disponíveis porque o Tiny não tem shell.
  • Jammy Base: Adequado para a maioria dos aplicativos sem extensões nativas.

    • Aplicativos Java e aplicativos .NET Core.
    • Opte por aplicações que requerem algumas bibliotecas C.
    • Aplicativos Node.js, Python ou Servidores Web sem extensões nativas.
  • Jammy Full: Inclui a maioria das bibliotecas e é adequado para aplicativos com extensões nativas. Por exemplo, inclui uma biblioteca mais completa de fontes. Se seu aplicativo depende da extensão nativa, use a Full pilha.

    • Node.js ou aplicativos Python com extensões nativas.

Para obter mais informações, consulte Ubuntu Stacks na documentação do VMware.

Gerenciar o registro de contêiner

Esta seção mostra como gerenciar o registro de contêiner usado pelo serviço de compilação se você habilitar o serviço de compilação com seu próprio registro de contêiner. Se você habilitar o serviço de compilação com um registro de contêiner gerenciado do Azure Spring Apps, poderá ignorar esta seção.

Depois de habilitar um registro de contêiner de usuário com o serviço de compilação, você pode mostrar e configurar o registro usando o portal do Azure ou a CLI do Azure.

Use as seguintes etapas para mostrar, adicionar, editar e excluir o registro de contêiner:

  1. Abra o portal do Azure.

  2. Selecione Registro de contêiner no painel de navegação.

  3. Selecione Adicionar para criar um registro de contêiner.

    Captura de ecrã do portal do Azure que mostra a página Registo de contentor com o botão Adicionar registo de contentor.

  4. Para um registo de contentor, selecione o botão de reticências (...) e, em seguida, selecione Editar para visualizar a configuração do registo.

    Captura de ecrã do portal do Azure que mostra a página de registo Contentor.

  5. Revise os valores na página Editar registro de contêiner.

    Captura de ecrã do portal do Azure que mostra a página Registo de contentor com o painel de registo Editar contentor aberto.

  6. Para excluir um registro de contêiner, selecione o botão de reticências (...) e, em seguida, selecione Excluir para excluir o registro. Se o registro de contêiner for usado pelo serviço de compilação, ele não poderá ser excluído.

    Captura de ecrã do portal do Azure que mostra a página Registo de contentor com o painel de registo Editar contentor aberto e as caixas Nome de utilizador e Palavra-passe realçadas.

O serviço de compilação pode usar um registro de contêiner e também pode alterar o registro de contêiner associado. Este processo é demorado. Quando a alteração acontece, todos os recursos do construtor e da compilação sob o serviço de compilação são reconstruídos e, em seguida, as imagens de contêiner finais são enviadas por push para o novo registro de contêiner.

Use as seguintes etapas para alternar o registro de contêiner associado ao serviço de compilação:

  1. Abra o portal do Azure.

  2. Selecione Criar serviço no painel de navegação.

  3. Selecione Registro de contêiner referenciado para atualizar o registro de contêiner para o serviço de compilação.

    Captura de ecrã do portal do Azure que mostra a página Serviço de Criação com o registo de contentor referenciado realçado.

Crie e implante aplicativos poliglotas

Você pode criar e implantar aplicativos poliglotas das seguintes maneiras usando o registro de contêiner:

  • Para o serviço de compilação usando o registro de contêiner gerenciado do Azure Spring Apps, você pode criar um aplicativo em uma imagem e, em seguida, implantá-lo na instância de serviço atual do Azure Spring Apps. A compilação e a implantação são executadas juntas usando o az spring app deploy comando.

  • Para o serviço de compilação usando um registro de contêiner gerenciado pelo usuário, você pode criar um aplicativo em uma imagem de contêiner e, em seguida, implantar a imagem na instância atual do Azure Spring Apps Enterprise e em outras instâncias. Os comandos build e deploy são separados. Você pode usar o comando build para criar ou atualizar uma compilação e, em seguida, usar o comando deploy para implantar a imagem de contêiner na instância de serviço.

Para obter mais informações, consulte a seção Build service on demand de Use Tanzu Build Service.

Os exemplos a seguir mostram alguns comandos de compilação úteis para usar.

az configure --defaults group=<resource-group-name> spring=<service-name>

az spring build-service build list
az spring build-service build show --name <build-name>
az spring build-service build create --name <build-name> --artifact-path <artifact-path>
az spring build-service build update --name <build-name> --artifact-path <artifact-path>
az spring build-service build delete --name <build-name>

Os seguintes exemplos da CLI do Azure mostram a criação e a implantação de um arquivo de artefato para dois cenários de registro de contêiner:

  • Registro de contêiner gerenciado do Azure Spring Apps.
  • Registro de contêiner gerenciado pelo usuário.

Este exemplo cria e implanta em um comando. O comando a seguir especifica um construtor para criar um aplicativo em uma imagem de contêiner e, em seguida, implanta o aplicativo diretamente na instância de serviço do Azure Springs Apps Enterprise.

Se você não especificar o construtor, um default construtor será usado.

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --builder <builder-name> \
    --artifact-path <path-to-your-JAR-file>

Se você implantar o aplicativo com um arquivo de artefato, use --artifact-path para especificar o caminho do arquivo. Ambos os arquivos JAR e WAR são aceitáveis.

Se a CLI do Azure detetar o pacote WAR como um JAR fino, use --disable-validation para desabilitar a validação.

O exemplo a seguir implanta a pasta de código-fonte em uma implantação ativa usando o --source-path parâmetro para especificar a pasta.

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --builder <builder-name> \
    --source-path <path-to-source-code>

Você também pode configurar o ambiente de compilação para criar o aplicativo. Por exemplo, em um aplicativo Java, você pode especificar a versão JDK usando o ambiente de BP_JVM_VERSION compilação.

Para especificar ambientes de compilação, use --build-env, conforme mostrado no exemplo a seguir. As variáveis de ambiente de compilação disponíveis são descritas posteriormente neste artigo.

O comando a seguir implanta um aplicativo:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --build-env <key1=value1> <key2=value2> \
    --builder <builder-name> \
    --artifact-path <path-to-your-JAR-file>

Para cada compilação, você também pode especificar os recursos de compilação, conforme mostrado no exemplo a seguir.

O comando a seguir implanta um aplicativo:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --build-env <key1=value1> <key2=value2> \
    --build-cpu <build-cpu-size> \
    --build-memory <build-memory-size> \
    --builder <builder-name> \
    --artifact-path <path-to-your-JAR-file>

O recurso de CPU/memória de compilação padrão é 1 vCPU, 2 Gi. Se o seu aplicativo precisar de uma quantidade menor ou maior de memória, use --build-memory para especificar os recursos de memória - por exemplo, 500Mi, , 1Gi2Gi, e assim por diante. Se seu aplicativo precisar de uma quantidade menor ou maior de recursos da CPU, use --build-cpu para especificar os recursos da CPU - por exemplo, 500m, , 12, e assim por diante. O limite máximo de recursos de CPU/memória para uma compilação é 8 vCPU, 16Gi.

Os recursos de CPU e memória são limitados pelo tamanho do pool de agentes de serviço de compilação. Para obter mais informações, consulte a seção Pool de agentes de compilação de Usar o Tanzu Build Service. A soma da cota de recursos de compilação de processamento não pode exceder o tamanho do pool de agentes.

O número paralelo de tarefas de compilação depende do tamanho do pool de agentes e de cada recurso de compilação. Por exemplo, se o recurso de compilação for o padrão 1 vCPU, 2 Gi e o tamanho do pool de agentes for 6 vCPU, 12 Gi, o número de compilação paralelo será 6.

Outras tarefas de compilação são bloqueadas por um tempo devido a limitações de cota de recursos.

Seu aplicativo deve escutar na porta 8080. Os aplicativos Spring Boot substituem o para usar o SERVER_PORT 8080 automaticamente.

Idiomas suportados para implantações

A tabela a seguir indica os recursos suportados para cada idioma.

Caraterística Java Python .NET Core Go Arquivos estáticos Imagem nativa Java PHP
Gerenciamento do ciclo de vida do aplicativo ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Atribuir ponto de extremidade ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Azure Monitor ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Integração APM pronta para uso ✔️
Implantação azul/verde ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Domínio personalizado ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Dimensionamento - dimensionamento automático ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Dimensionamento - dimensionamento manual (entrada/saída, up/down) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Identidade gerida ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Portal API para VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Spring Cloud Gateway para VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Serviço de configuração de aplicativos para VMware Tanzu ✔️ ✔️
Registro de serviço VMware Tanzu ✔️ ✔️
App Live View para VMware Tanzu ✔️ ✔️
Rede virtual ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Endereço IP de saída ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
E2E TLS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Solução de problemas avançada - thread/heap/JFR dump ✔️
Traga o seu próprio armazenamento ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Integrar a vinculação de serviço com o Resource Connector ✔️ ✔️
Zona de Disponibilidade ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Eventos do ciclo de vida do aplicativo ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Tamanho reduzido do aplicativo - 0,5 vCPU e 512 MB ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Automatize implantações de aplicativos com o Terraform e o Azure Pipeline Task ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Eliminação suave ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Experiência de diagnóstico interativa (baseada em AppLens) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
SLA ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Personalizar sondas de integridade ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Conexão de shell da Web para solução de problemas ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ️ ✔️ ✔️
Depuração remota ✔️

Para obter mais informações sobre as configurações suportadas para aplicativos de idiomas diferentes, consulte a seção correspondente mais adiante neste artigo.

Limitações do Java Native Image

Native Image é uma tecnologia para compilar código Java antecipadamente para um executável nativo. As imagens nativas oferecem várias vantagens, como uma inicialização instantânea e consumo de memória reduzido. Você pode empacotar imagens nativas em uma imagem de contêiner leve para uma implantação mais rápida e eficiente. Devido à Otimização de Mundo Fechado, aplicam-se as seguintes limitações :

  • Os seguintes recursos Java requerem configuração em tempo de compilação executável:
    • Carregamento dinâmico de classes
    • Reflexão
    • Proxy dinâmico
    • JNI (Interface Nativa Java)
    • Serialização
  • O bytecode não está mais disponível em tempo de execução, portanto, a depuração e o monitoramento com ferramentas direcionadas para a JVMTI não são possíveis.

Os seguintes recursos não são suportados no Azure Spring Apps devido à limitação do Java Native Image. Os Aplicativos de primavera do Azure darão suporte a eles quando a Imagem Nativa Java e a comunidade superarem a limitação.

Caraterística Por que não é suportado
Azure Monitor As imagens nativas criadas pelo GraalVM não suportam métricas JVM.
Dimensionamento – dimensionamento automático As imagens nativas criadas pelo GraalVM não suportam métricas JVM.
Integração APM pronta para uso APM Vendor & Buildpack não suporta imagem nativa.
Identidade gerida Os SDKs do Azure não dão suporte à imagem nativa.
Solução de problemas avançada – thread/heap/JFR dump As imagens nativas criadas pelo GraalVM não suportam dump thread/heap/JFR.
Depuração remota GraalVM Native Image não suporta depuração remota.
Conexão sem senha usando o Service Connector O SDK Java do Azure não suporta imagem nativa.

Nota

Nas seções de configuração de compilação e implantação de linguagem diferente a seguir, --build-env significa que o ambiente é usado na fase de compilação. --env significa que o ambiente é usado na fase de tempo de execução.

Recomendamos que você especifique a versão do idioma caso a versão padrão seja alterada. Por exemplo, use --build-env BP_JVM_VERSION=11.* para especificar Java 11 como a versão JDK. Para outros idiomas, você pode obter o nome da variável de ambiente nas descrições a seguir para cada idioma.

Implementar aplicações Java

O buildpack para implementar aplicações Java é tanzu-buildpacks/java-azure.

A tabela a seguir lista os recursos suportados no Azure Spring Apps:

Descrição das funcionalidades Comentário Variável de ambiente Utilização
Fornece o Microsoft OpenJDK. Configura a versão da JVM. A versão padrão do JDK é 17. Atualmente suportado: JDK 8, 11, 17 e 21. BP_JVM_VERSION --build-env BP_JVM_VERSION=11.*
Runtime env. Configura se o Java Native Memory Tracking (NMT) está ativado. O valor padrão é true. Não suportado no JDK 8. BPL_JAVA_NMT_ENABLED --env BPL_JAVA_NMT_ENABLED=true
Configura o nível de detalhe para a saída Java Native Memory Tracking (NMT). O valor padrão é summary. Defina como detalhe para uma saída NMT detalhada. BPL_JAVA_NMT_LEVEL --env BPL_JAVA_NMT_ENABLED=summary
Adicione certificados de autoridade de certificação ao armazenamento confiável do sistema na compilação e no tempo de execução. Consulte a seção Configurar certificados de autoridade de certificação para compilações e implantações de aplicativos de Como configurar a integração APM e certificados de autoridade de certificação. N/A N/A
Integre com o agente Application Insights, Dynatrace, Elastic, New Relic, App Dynamic APM. Consulte Como configurar a integração APM e certificados de CA. N/A N/A
Implante o pacote WAR com Apache Tomcat ou TomEE. Defina o servidor de aplicativos a ser usado. Defina como tomcat para usar Tomcat e tomee para usar TomEE. O valor padrão é tomcat. BP_JAVA_APP_SERVER --build-env BP_JAVA_APP_SERVER=tomee
Suporta aplicações Spring Boot. Indica se o suporte ao Spring Cloud Bindings para a imagem deve ser fornecido no momento da compilação. O valor predefinido é falso. BP_SPRING_CLOUD_BINDINGS_DISABLED --build-env BP_SPRING_CLOUD_BINDINGS_DISABLED=false
Indica se as propriedades do ambiente Spring Boot devem ser configuradas automaticamente a partir de associações em tempo de execução. Esse recurso requer que o Spring Cloud Bindings já tenha sido instalado no momento da compilação ou não faça nada. O valor predefinido é falso. BPL_SPRING_CLOUD_BINDINGS_DISABLED --env BPL_SPRING_CLOUD_BINDINGS_DISABLED=false
Suporte à criação de aplicativos baseados em Maven a partir do código-fonte. Usado para um projeto multi-módulo. Indica o módulo no qual localizar o artefato do aplicativo. O padrão é o módulo raiz (vazio). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway
Suporte à criação de aplicativos baseados em Gradle a partir do código-fonte. Usado para um projeto multi-módulo. Indica o módulo no qual localizar o artefato do aplicativo. O padrão é o módulo raiz (vazio). BP_GRADLE_BUILT_MODULE --build-env BP_GRADLE_BUILT_MODULE=./gateway
Habilite a configuração de rótulos na imagem criada. Configura rótulos especificados pela OCI com nomes curtos de variáveis de ambiente e rótulos arbitrários usando uma sintaxe delimitada por espaço em uma única variável de ambiente. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Veja mais variáveis de ambiente aqui.
--build-env BP_OCI_AUTHORS=<value>
Integre o agente JProfiler. Indica se o suporte ao JProfiler deve ser integrado. O valor predefinido é falso. BP_JPROFILER_ENABLED Fase de construção:
--build-env BP_JPROFILER_ENABLED=true
Fase de tempo de execução:
--env BPL_JPROFILER_ENABLED=true
BPL_JPROFILER_PORT=<port> (opcional, o padrão é 8849)
BPL_JPROFILER_NOWAIT=true (opcional. Indica se a JVM é executada antes que o JProfiler seja anexado. O valor padrão é true.)
Indica se o suporte a JProfiler deve ser ativado em tempo de execução. O valor predefinido é falso. BPL_JPROFILER_ENABLED --env BPL_JPROFILER_ENABLED=false
Indica em qual porta o agente JProfiler escuta. O valor padrão é 8849. BPL_JPROFILER_PORT --env BPL_JPROFILER_PORT=8849
Indica se a JVM é executada antes que o JProfiler seja anexado. O valor padrão é true. BPL_JPROFILER_NOWAIT --env BPL_JPROFILER_NOWAIT=true
Integre o agente JRebel . O pedido deve conter um ficheiro rebel-remote.xml . N/A N/A
O AES encripta uma aplicação em tempo de compilação e, em seguida, desencripta-a no momento da inicialização. A chave AES a ser usada em tempo de compilação. BP_EAR_KEY --build-env BP_EAR_KEY=<value>
A chave AES a ser usada em tempo de execução. BPL_EAR_KEY --env BPL_EAR_KEY=<value>
Integre o agente AspectJ Weaver . <APPLICATION_ROOT>/ aop.xml existe e aspectj-weaver.*.jar existe. N/A N/A

Implantar aplicativos .NET

O buildpack para implantar aplicativos .NET é tanzu-buildpacks/dotnet-core.

A tabela a seguir lista os recursos suportados no Azure Spring Apps:

Descrição das funcionalidades Comentário Variável de ambiente Utilização
Configure a versão de tempo de execução do .NET Core. Suporta Net6.0, Net7.0 e Net8.0.
Você pode configurar através de um arquivo de projeto runtimeconfig.json ou MSBuild.
O tempo de execução padrão é 6.0.*.
N/A N/A
Adicione certificados de autoridade de certificação ao armazenamento confiável do sistema na compilação e no tempo de execução. Consulte a seção Configurar certificados de autoridade de certificação para compilações e implantações de aplicativos de Como configurar a integração APM e certificados de autoridade de certificação. N/A N/A
Integração com os agentes Dynatrace e New Relic APM. Consulte Como configurar a integração APM e certificados de CA. N/A N/A
Habilite a configuração de rótulos na imagem criada. Configura rótulos especificados pela OCI com nomes curtos de variáveis de ambiente e rótulos arbitrários usando uma sintaxe delimitada por espaço em uma única variável de ambiente. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Veja mais variáveis de ambiente aqui.
--build-env BP_OCI_AUTHORS=<value>

Implantar aplicativos Python

O buildpack para implantar aplicativos Python é tanzu-buildpacks/python.

A tabela a seguir lista os recursos suportados no Azure Spring Apps:

Descrição das funcionalidades Comentário Variável de ambiente Utilização
Especifique uma versão do Python. Suporta 3.8.*, 3.9.*, 3.10.*, 3.11.*, 3.12.*. O valor padrão é 3.10.*
Você pode especificar a versão por meio da variável de ambiente durante a BP_CPYTHON_VERSION compilação.
BP_CPYTHON_VERSION --build-env BP_CPYTHON_VERSION=3.8.*
Adicione certificados de autoridade de certificação ao armazenamento confiável do sistema na compilação e no tempo de execução. Consulte a seção Configurar certificados de autoridade de certificação para compilações e implantações de aplicativos de Como configurar a integração APM e certificados de autoridade de certificação. N/A N/A
Habilite a configuração de rótulos na imagem criada. Configura rótulos especificados pela OCI com nomes curtos de variáveis de ambiente e rótulos arbitrários usando uma sintaxe delimitada por espaço em uma única variável de ambiente. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Veja mais variáveis de ambiente aqui.
--build-env BP_OCI_AUTHORS=<value>

Implantar aplicativos Go

O buildpack para implantar aplicativos Go é tanzu-buildpacks/go.

A tabela a seguir lista os recursos suportados no Azure Spring Apps:

Descrição das funcionalidades Comentário Variável de ambiente Utilização
Especifique uma versão Go. Suporta 1.20.*, 1.21.*. O valor padrão é 1.20.*.
A versão Go é detetada automaticamente a partir do ficheiro go.mod da aplicação. Você pode substituir essa versão definindo a variável de ambiente em tempo de BP_GO_VERSION compilação.
BP_GO_VERSION --build-env BP_GO_VERSION=1.20.*
Configure vários destinos. Especifica vários destinos para uma compilação Go. BP_GO_TARGETS --build-env BP_GO_TARGETS=./some-target:./other-target
Adicione certificados de autoridade de certificação ao armazenamento confiável do sistema na compilação e no tempo de execução. Consulte a seção Configurar certificados de autoridade de certificação para compilações e implantações de aplicativos de Como configurar a integração APM e certificados de autoridade de certificação. N/A N/A
Integre com o agente Dynatrace APM. Consulte Como configurar a integração APM e certificados de CA. N/A N/A
Habilite a configuração de rótulos na imagem criada. Configura rótulos especificados pela OCI com nomes curtos de variáveis de ambiente e rótulos arbitrários usando uma sintaxe delimitada por espaço em uma única variável de ambiente. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Veja mais variáveis de ambiente aqui.
--build-env BP_OCI_AUTHORS=<value>

Implantar aplicativos Node.js

O buildpack para implantar aplicativos Node.js é tanzu-buildpacks/nodejs.

A tabela a seguir lista os recursos suportados no Azure Spring Apps:

Descrição das funcionalidades Comentário Variável de ambiente Utilização
Especifique uma versão do Nó. Suporta 16.*, 18.*, 19.*, 20.*. O valor padrão é 20.*.
Você pode especificar a versão do nó por meio de um arquivo .nvmrc ou .node-version na raiz do diretório do aplicativo. BP_NODE_VERSION substitui as configurações.
BP_NODE_VERSION --build-env BP_NODE_VERSION=19.*
Adicione certificados de autoridade de certificação ao armazenamento confiável do sistema na compilação e no tempo de execução. Consulte a seção Configurar certificados de autoridade de certificação para compilações e implantações de aplicativos de Como configurar a integração APM e certificados de autoridade de certificação. N/A N/A
Integre com o agente Dynatrace, Elastic, New Relic, App Dynamic APM. Consulte Como configurar a integração APM e certificados de CA. N/A N/A
Habilite a configuração de rótulos na imagem criada. Configura rótulos especificados pela OCI com nomes curtos de variáveis de ambiente e rótulos arbitrários usando uma sintaxe delimitada por espaço em uma única variável de ambiente. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Veja mais variáveis de ambiente aqui.
--build-env BP_OCI_AUTHORS=<value>
Implante um aplicativo Angular com o Angular Live Development Server. Especifique o host antes de executar ng serve no package.json: ng serve --host 0.0.0.0 --port 8080 --public-host <your application domain name>. O nome de domínio do aplicativo está disponível na página Visão geral do aplicativo, na seção URL. Remova o protocolo https:// antes de prosseguir. BP_NODE_RUN_SCRIPTS
NODE_ENV
--build-env BP_NODE_RUN_SCRIPTS=build NODE_ENV=development

Implantar aplicativos WebServer

O buildpack para implantar aplicativos WebServer é tanzu-buildpacks/web-servers.

Para obter mais informações, consulte Implantar arquivos estáticos da Web.

Implementar aplicações Java Native Image (pré-visualização)

O buildpack para implementar aplicações Java Native Image é tanzu-buildpacks/java-native-image.

Você pode implantar aplicativos de imagem nativos do Spring Boot usando o tanzu-buildpacks/java-native-image buildpack. O Spring Native fornece suporte para compilar aplicativos Spring Boot em executáveis nativos. O buildpack usa o Liberica Native Image Kit (NIK) para criar imagens nativas de aplicativos Spring Boot e esses aplicativos são totalmente suportados.

Ao construir uma imagem nativa Java, você deve definir o ambiente BP_NATIVE_IMAGE de compilação para e o recurso de memória de compilação não deve ser inferior a true 8Gi. O tamanho do pool do agente de serviço de compilação não deve ser inferior a 4 vCPU, 8 Gi. Para obter mais informações, consulte a seção Pool de agentes de compilação de Usar o Tanzu Build Service.

Se você quiser construir a imagem nativa em uma imagem de contêiner de tamanho menor, recomendamos usar um construtor com a pilha do Jammy Tiny sistema operacional. Para obter mais informações, consulte a seção Recomendações da pilha do sistema operacional.

A tabela a seguir lista os recursos suportados no Azure Spring Apps:

Descrição das funcionalidades Comentário Variável de ambiente Utilização
Integre com o Bellsoft OpenJDK. Configura a versão do JDK. Atualmente suportado: JDK 8, 11, 17 e 20. BP_JVM_VERSION --build-env BP_JVM_VERSION=17
Configure argumentos para o native-image comando. Argumentos a serem passados diretamente para o comando native-image. Esses argumentos devem ser válidos e corretamente formados ou o comando native-image falhará. BP_NATIVE_IMAGE_BUILD_ARGUMENTS --build-env BP_NATIVE_IMAGE_BUILD_ARGUMENTS="--no-fallback"
Adicione certificados de autoridade de certificação ao armazenamento confiável do sistema na compilação e no tempo de execução. Consulte Como configurar a integração APM e certificados de CA. Não aplicável. Não aplicável.
Ativar a configuração de etiquetas na imagem criada Configura rótulos especificados pela OCI com nomes curtos de variáveis de ambiente e rótulos arbitrários usando uma sintaxe delimitada por espaço em uma única variável de ambiente. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Veja mais variáveis de ambiente aqui.
--build-env BP_OCI_AUTHORS=<value>
Suporte à criação de aplicativos baseados em Maven a partir do código-fonte. Usado para um projeto multi-módulo. Indica o módulo no qual localizar o artefato do aplicativo. O padrão é o módulo raiz (vazio). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway

Existem algumas limitações para Java Native Image. Para obter mais informações, consulte a seção Limitações da imagem nativa do Java.

Implantar aplicativos PHP

O buildpack para implantar aplicativos PHP é tanzu-buildpacks/php.

O buildpack Tanzu PHP é compatível apenas com o Full OS Stack. Recomendamos o uso de um construtor com a pilha do Jammy Full sistema operacional. Para obter mais informações, consulte a seção Recomendações da pilha do sistema operacional.

A tabela a seguir lista os recursos suportados no Azure Spring Apps:

Descrição das funcionalidades Comentário Variável de ambiente Utilização
Especifique a versão do PHP. Configura a versão do PHP. Atualmente suportado: PHP 8.1.* e 8.2.*. O valor padrão é 8.1.* BP_PHP_VERSION --build-env BP_PHP_VERSION=8.0.*
Adicione certificados de autoridade de certificação ao armazenamento confiável do sistema na compilação e no tempo de execução. Consulte a seção Configurar certificados de autoridade de certificação para compilações e implantações de aplicativos de Como configurar a integração APM e certificados de autoridade de certificação. N/A N/A
Integre com Dynatrace, New Relic, agente App Dynamic APM. Consulte Como configurar a integração APM e certificados de CA. N/A N/A
Selecione um servidor Web. As opções de configuração são php-server, httpd e nginx. O valor padrão é php-server. BP_PHP_SERVER --build-env BP_PHP_SERVER=httpd
Configurar o Diretório Web. Quando o servidor web é HTTPD ou NGINX, o diretório web assume como padrão htdocs. Quando o servidor Web é o servidor integrado do PHP, o diretório da Web assume como padrão /workspace. BP_PHP_WEB_DIR --build-env BP_PHP_WEB_DIR=htdocs

Próximos passos