Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste início rápido, você incorpora a Configuração do Aplicativo do Azure em um aplicativo Java Quarkus para centralizar o armazenamento e o gerenciamento das configurações do aplicativo separadamente do seu código.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie um gratuitamente.
- Azure CLI 2.68.0 ou superior.
- Uma loja de configuração de aplicativos. Para obter mais informações, consulte Guia de início rápido: criar uma loja de configuração de aplicativos do Azure.
- Java Development Kit (JDK) versão 17.
- Apache Maven versão 3.9.8 ou superior.
Adicionar um par chave-valor
Adicione o seguinte par chave-valor à loja de configuração de aplicativos. Para obter mais informações sobre como adicionar pares chave-valor a um repositório usando a CLI do Azure, consulte Criar um valor-chave.
| Key | Valor |
|---|---|
| /aplicativo/config.message | Hello (Olá) |
Criar um aplicativo Quarkus
Nesta seção, você cria um aplicativo Quarkus com a extensão Configuração do Aplicativo do Azure e a extensão REST. A extensão REST é usada para criar um serviço REST que retorna o valor de configuração da App Configuration store. Para obter mais informações, consulte Configuração do aplicativo Quarkus Azure.
Crie um aplicativo Quarkus usando o seguinte comando:
mvn io.quarkus.platform:quarkus-maven-plugin:create \
-DprojectGroupId=com.example \
-DprojectArtifactId=quarkus-app-configuration \
-Dextensions='io.quarkiverse.azureservices:quarkus-azure-app-configuration,rest' \
-DjavaVersion="17"
O aplicativo é criado em um novo diretório chamado quarkus-app-configuration. Aqui está a estrutura do aplicativo:
quarkus-app-configuration
├── src
│ ├── main/java/com/example
│ │ ├── GreetingResource.java
│ └── test/java/com/example
│ └── GreetingResourceTest.java
├── pom.xml
O arquivo pom.xml contém as dependências do aplicativo, incluindo a extensão Configuração do Aplicativo do Azure e a extensão REST. O XML a seguir é um exemplo típico:
<dependency>
<groupId>io.quarkiverse.azureservices</groupId>
<artifactId>quarkus-azure-app-configuration</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest</artifactId>
</dependency>
O arquivo GreetingResource.java contém o serviço REST. Você modifica esse arquivo para retornar o valor de configuração da App Configuration Store mais tarde.
O arquivo GreetingResourceTest.java contém o teste de unidade para o serviço REST. Você modifica esse arquivo para afirmar que o valor retornado do serviço REST é igual ao valor na App Configuration Store posteriormente.
Conectar-se a uma loja de configuração de aplicativos
Agora que você tem uma loja de Configuração de Aplicativo e um aplicativo Quarkus com a extensão Configuração de Aplicativo do Azure, você pode conectar o aplicativo à loja.
Codificar a aplicação
Configure o aplicativo usando as seguintes etapas:
Abra o arquivo GreetingResource.java no diretório src/main/java/com/example e substitua o conteúdo pelo seguinte código:
package com.example; import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; import org.eclipse.microprofile.config.inject.ConfigProperty; @Path("/hello") public class GreetingResource { @ConfigProperty(name = "/application/config.message") String value; @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return value; } }O código modificado usa a anotação MicroProfile Config
@ConfigPropertypara injetar o valor da chave/application/config.messageda App Configuration store novaluecampo e retorna o valor no serviço REST.Abra o teste de unidade gerado automaticamente, que está no arquivo GreetingResourceTest.java no diretório src/test/java/com/example . Substitua o conteúdo do arquivo pelo seguinte código:
package com.example; import io.quarkus.test.junit.QuarkusTest; import org.junit.jupiter.api.Test; import javax.inject.Inject; import static io.restassured.RestAssured.given; import static org.hamcrest.CoreMatchers.is; @QuarkusTest public class GreetingResourceTest { @Test public void testHelloEndpoint() { given() .when().get("/hello") .then() .statusCode(200) .body(is("Hello")); } }O código modificado afirma que o valor retornado do serviço REST é igual ao valor na App Configuration store. Esse valor é
Hellopara a chave/application/config.messageque você adicionou anteriormente.
Essas alterações de código no aplicativo são todas necessárias. Antes de executar o aplicativo, você precisa configurar a autenticação e a conexão com a App Configuration Store.
Configurar a autenticação para o repositório de configuração de aplicativos
Além da autenticação com chaves de acesso, a extensão Quarkus para Configuração de Aplicativos do Azure dá suporte à autenticação com o Microsoft Entra ID usando DefaultAzureCredential da biblioteca de cliente do Azure Identity.
Você usa o Microsoft Entra ID para autenticação neste início rápido. Para obter mais informações, consulte DefaultAzureCredential em Biblioteca de cliente do Azure Identity para Java.
Configure a autenticação para o repositório de Configuração de Aplicativo usando as seguintes etapas:
Configure as variáveis de ambiente usando os seguintes comandos, substituindo os
<...>marcadores pelos valores criados anteriormente.export RESOURCE_GROUP_NAME="<resource-group-name>" export APP_CONFIG_NAME="<app-configuration-store-name>"Use os seguintes comandos para atribuir a
App Configuration Data Readerfunção ao usuário conectado:# Retrieve the app configuration resource ID export APP_CONFIGURATION_RESOURCE_ID=$(az appconfig show \ --resource-group $RESOURCE_GROUP_NAME \ --name "${APP_CONFIG_NAME}" \ --query 'id' \ --output tsv) # Assign the "App Configuration Data Reader" role to the current signed-in identity az role assignment create \ --assignee $(az ad signed-in-user show --query 'id' --output tsv) \ --role "App Configuration Data Reader" \ --scope $APP_CONFIGURATION_RESOURCE_IDExporte o ponto de extremidade da App Configuration Store para uma variável de ambiente nomeada
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTusando o seguinte comando:export QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT=$(az appconfig show \ --resource-group "${RESOURCE_GROUP_NAME}" \ --name "${APP_CONFIG_NAME}" \ --query endpoint \ --output tsv)Observação
O valor da variável de ambiente
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTé usado na propriedade de configuraçãoquarkus.azure.app.configuration.endpointda extensão Quarkus Azure App Configuration para configurar a conexão com a loja de Configuração de Aplicativos do Azure. Como alternativa, você pode configurar essa propriedade no arquivo application.properties no diretório src/main/resources definindo-a diretamente, como no exemplo a seguir. Certifique-se de substituir<your-app-configuration-store-endpoint>pelo seu valor real.quarkus.azure.app.configuration.endpoint=<your-app-configuration-store-endpoint>
Crie e execute o aplicativo localmente
Crie e execute o aplicativo localmente usando as seguintes etapas:
Use os seguintes comandos para criar e executar o aplicativo no modo JVM:
# Build, test and package the app mvn clean package # Run the app java -jar ./target/quarkus-app/quarkus-run.jarObservação
Como alternativa, você pode executar o exemplo no modo nativo. Para usar o modo nativo, você precisa ter o GraalVM instalado ou usar uma imagem do construtor para criar o executável nativo. Para obter mais informações, consulte Criando um executável nativo. Este início rápido usa o Docker como runtime de container para compilar um executável nativo do Linux. Se você não tiver o Docker instalado, poderá baixá-lo do site do Docker.
Use os seguintes comandos para construir e executar o executável nativo em um ambiente Linux:
mvn package -Dnative -Dquarkus.native.container-build ./target/storage-blob-1.0.0-SNAPSHOT-runnerTeste seu aplicativo usando o seguinte comando:
curl localhost:8080/helloVocê deve ver
Hellona saída, porqueHelloé o/application/config.messagevalor da chave que você adicionou à App Configuration Store.Pressione Control+C para parar o aplicativo.
Limpeza de recursos
Para evitar cobranças do Azure, você deve limpar recursos desnecessários. Quando não precisar mais da App Configuration Store, use o seguinte comando para remover o grupo de recursos e todos os recursos relacionados:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Consulte também
- Configuração do Aplicativo do Azure Quarkus
- Proteja aplicativos Quarkus com o Microsoft Entra ID usando o OpenID Connect
- Implantar um aplicativo Java com o Quarkus em Aplicativos de Contêiner do Azure
- Implantar um aplicativo Java com o Quarkus em um cluster do Serviço Kubernetes do Azure
- Implantar aplicativos Java sem servidor com o Quarkus no Azure Functions