Como implantar aplicativos poliglotas no plano do Azure Spring Apps Enterprise
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 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
- Uma instância de plano do Azure Spring Apps Enterprise já provisionada. Para obter mais informações, consulte Guia de início rápido: criar e implantar aplicativos no Azure Spring Apps usando o plano Enterprise.
- Azure CLI versão 2.45.0 ou superior. Use o seguinte comando para instalar a extensão Azure Spring Apps:
az extension add --name spring
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:
- Java Azure Buildpack para VMware Tanzu
- .NET Core Buildpack para VMware Tanzu
- Go Buildpack para VMware Tanzu
- Servidores Web Buildpack para VMware Tanzu
- Node.js Buildpack para VMware Tanzu
- Python Buildpack para VMware Tanzu
- Java Native Image Buildpack para VMware Tanzu
- PHP Buildpack para VMware Tanzu
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:
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 Stack
o .
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.
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:
- Salve a configuração como um novo construtor.
- Implante aplicativos com o novo construtor. As implantações estão ligadas ao novo construtor.
- Migre as implantações no construtor anterior para o novo construtor.
- 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:
Abra o portal do Azure.
Selecione Registro de contêiner no painel de navegação.
Selecione Adicionar para criar um registro de contêiner.
Para um registo de contentor, selecione o botão de reticências (...) e, em seguida, selecione Editar para visualizar a configuração do registo.
Revise os valores na página Editar registro de contêiner.
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.
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:
Abra o portal do Azure.
Selecione Criar serviço no painel de navegação.
Selecione Registro de contêiner referenciado para atualizar o registro de contêiner para o serviço de compilação.
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
, , 1Gi
2Gi
, 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
, , 1
2
, 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 | Nó | .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 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.21.*, 1.22.*. O valor padrão é 1.21.*. 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.22.* |
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=20.* |
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 21. | 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.*, 8.2.* e 8.3.*. O valor padrão é 8.1.* | BP_PHP_VERSION |
--build-env BP_PHP_VERSION=8.1.* |
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 |