Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste início rápido, você incorporará a Configuração de Aplicativos do Azure em um aplicativo Java Quarkus para centralizar o armazenamento e o gerenciamento de configurações de aplicativo separadas do código.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie um gratuitamente.
- CLI do Azure 2.68.0 ou superior.
- Um repositório de Configuração de Aplicativos. Para obter mais informações, consulte Início Rápido: Criar um repositório de Configuração de Aplicativos do Azure.
- JDK (Java Development Kit) versão 17.
- Apache Maven versão 3.9.8 ou superior.
Adicionar um par chave-valor
Adicione o seguinte par chave-valor ao repositório 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 | Value |
|---|---|
| /application/config.message | Olá |
Criar um aplicativo do Quarkus
Nesta seção, você criará um aplicativo Quarkus com a extensão configuração de 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 do repositório de Configuração de Aplicativos. Para obter mais informações, consulte a Configuração de Aplicativos do 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 de 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. Modifique esse arquivo para retornar o valor de configuração do repositório de Configuração de Aplicativos mais tarde.
O arquivo GreetingResourceTest.java contém o teste de unidade para o serviço REST. Modifique esse arquivo para afirmar que o valor retornado do serviço REST é igual ao valor no repositório de Configuração de Aplicativos posteriormente.
Conectar um repositório de Configuração de Aplicativos
Agora que você tem um repositório de Configuração de Aplicativos e um aplicativo Quarkus com a extensão de Configuração de Aplicativos do Azure, você pode conectar o aplicativo à loja.
Codificar o aplicativo
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 de Configuração do MicroProfile
@ConfigPropertypara injetar o valor da chave/application/config.messagedo repositório de Configuração de Aplicativos 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 no repositório de Configuração de Aplicativos. 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 o repositório de Configuração de Aplicativos.
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 de Configuração de Aplicativo do Quarkus para Azure oferece suporte à autenticação com Microsoft Entra ID usando DefaultAzureCredential da biblioteca de clientes de Identidade do Azure.
Use a ID do Microsoft Entra para autenticação neste início rápido. Para obter mais informações, consulte DefaultAzureCredential na biblioteca de cliente do Azure Identity para Java.
Configure a autenticação para o repositório de Configuração de Aplicativos usando as seguintes etapas:
Defina variáveis de ambiente usando os seguintes comandos, substituindo os
<...>placeholders pelos valores que você criou 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 do repositório de Configuração de Aplicativos 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
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTde ambiente é usado na propriedadequarkus.azure.app.configuration.endpointde configuração da extensão configuração de aplicativo do Quarkus Azure para configurar a conexão com o repositório 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 valor real.quarkus.azure.app.configuration.endpoint=<your-app-configuration-store-endpoint>
Compilar e executar 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 a GraalVM instalada ou usar uma imagem do construtor para criar o executável nativo. Para obter mais informações, consulte Como criar um executável nativo. Este início rápido usa o Docker como runtime de contêiner para criar um executável nativo do Linux. Se você não tiver o Docker instalado, poderá baixá-lo no site do Docker.
Use os seguintes comandos para criar e executar o executável nativo em um ambiente do 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 valor da/application/config.messagechave que você adicionou ao repositório de Configuração de Aplicativos.Pressione o Controle+C para interromper o aplicativo.
Limpar os recursos
Para evitar cobranças do Azure, limpe recursos desnecessários. Quando você não precisar mais do repositório de Configuração de Aplicativos, 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 de Aplicativos do Azure do Quarkus
- Proteger aplicativos Quarkus com Microsoft Entra ID usando OpenID Connect
- Implantar um aplicativo Java com o Quarkus nos Aplicativos de Contêiner do Azure
- Implantar um aplicativo Java com o Quarkus em um cluster do Serviço de Kubernetes do Azure
- Implantar aplicativos Java sem servidor com o Quarkus no Azure Functions