Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве описано, как включить конфигурацию приложений Azure в приложение Java Quarkus для централизованного хранения и управления параметрами приложения отдельно от кода.
Предпосылки
- Учетная запись Azure с активной подпиской. Создайте его бесплатно.
- Azure CLI 2.68.0 или более поздней версии.
- Хранилище конфигураций приложения. Дополнительные сведения см. в кратком руководстве по созданию хранилища конфигурации приложений Azure.
- Пакет средств разработки Java (JDK) версии 17.
- Apache Maven версии 3.9.8 или более поздней.
Добавление пары "ключ-значение"
Добавьте следующую пару ключ-значение в хранилище настроек приложений. Дополнительные сведения о добавлении пар "ключ-значение" в хранилище с помощью Azure CLI см. в статье "Создание значения ключа".
| Key | Ценность |
|---|---|
| /application/config.message | Привет |
Создание приложения Quarkus
В этом разделе описано, как создать приложение Quarkus с расширением конфигурации приложений Azure и расширением REST. Расширение REST используется для создания службы REST, которая возвращает значение конфигурации из хранилища конфигурации приложений. Дополнительные сведения см. в разделе "Конфигурация приложений Azure Quarkus".
Создайте приложение Quarkus с помощью следующей команды:
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"
Приложение создается в новом каталоге с именем quarkus-app-configuration. Ниже приведена структура приложения:
quarkus-app-configuration
├── src
│ ├── main/java/com/example
│ │ ├── GreetingResource.java
│ └── test/java/com/example
│ └── GreetingResourceTest.java
├── pom.xml
Файл pom.xml содержит зависимости для приложения, включая расширение конфигурации приложений Azure и расширение REST. Следующий XML-код является типичным примером:
<dependency>
<groupId>io.quarkiverse.azureservices</groupId>
<artifactId>quarkus-azure-app-configuration</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest</artifactId>
</dependency>
Файл GreetingResource.java содержит службу REST. Впоследствии вы измените этот файл, чтобы доставать значения конфигурации из хранилища конфигурирования приложения.
Файл GreetingResourceTest.java содержит модульный тест для службы REST. Вы изменяете этот файл, чтобы подтвердить, что значение, возвращаемое службой REST, равно значению в магазине конфигурации приложений.
Подключение к хранилищу конфигурации приложений
Теперь, когда у вас есть хранилище конфигурации приложений и приложение Quarkus с расширением конфигурации приложений Azure, вы можете подключить приложение к магазину.
Программирование приложения
Настройте приложение, выполнив следующие действия.
Откройте файл GreetingResource.java в каталоге src/main/java/com/example и замените содержимое следующим кодом:
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; } }Измененный код использует заметку MicroProfile Config
@ConfigPropertyдля внедрения значения ключа/application/config.messageиз хранилищаvalueконфигурации приложений в поле и возвращает значение в службе REST.Откройте автоматически созданный модульный тест, который находится в файле GreetingResourceTest.java в каталоге src/test/java/com/example . Замените содержимое файла следующим кодом:
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")); } }Измененный код утверждает, что значение, возвращаемое службой REST, равно значению в хранилище конфигурации приложений. Значение
Helloпредназначено для ключа/application/config.message, который вы добавили ранее.
Эти изменения в коде приложения необходимы. Перед запуском приложения необходимо настроить проверку подлинности и подключение к хранилищу конфигураций приложений.
Настройка проверки подлинности в хранилище конфигураций приложений
Помимо проверки подлинности с помощью ключей доступа, расширение Конфигурации приложений Azure Quarkus поддерживает проверку подлинности с помощью идентификатора Microsoft Entra, используемого DefaultAzureCredential из клиентской библиотеки удостоверений Azure.
Вы используете Microsoft Entra ID для аутентификации в этом кратком руководстве. Дополнительные сведения см. в клиентской библиотеке DefaultAzureCredentialудостоверений Azure для Java.
Настройте проверку подлинности в магазине конфигурации приложений, выполнив следующие действия.
Задайте переменные среды с помощью следующих команд, заменив
<...>заполнители значениями, созданными ранее:export RESOURCE_GROUP_NAME="<resource-group-name>" export APP_CONFIG_NAME="<app-configuration-store-name>"Используйте следующие команды, чтобы назначить
App Configuration Data Readerроль пользователю, вошедшего в систему:# 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_IDЭкспорт конечной точки хранилища конфигурации приложений в переменную среды с именем
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTс помощью следующей команды:export QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT=$(az appconfig show \ --resource-group "${RESOURCE_GROUP_NAME}" \ --name "${APP_CONFIG_NAME}" \ --query endpoint \ --output tsv)Замечание
Значение переменной
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTсреды используется в свойствеquarkus.azure.app.configuration.endpointконфигурации расширения Конфигурации приложений Azure Quarkus для настройки подключения к хранилищу конфигурации приложений Azure. Кроме того, это свойство можно настроить в файле application.properties в каталоге src/main/resources , установив его напрямую, как показано в следующем примере. Не забудьте заменить<your-app-configuration-store-endpoint>вашим фактическим значением.quarkus.azure.app.configuration.endpoint=<your-app-configuration-store-endpoint>
Постройте и запустите приложение локально
Выполните сборку и запуск приложения локально, выполнив следующие действия.
Используйте следующие команды для сборки и запуска приложения в режиме JVM:
# Build, test and package the app mvn clean package # Run the app java -jar ./target/quarkus-app/quarkus-run.jarЗамечание
В качестве альтернативы можно запустить пример в родном режиме. Чтобы использовать режим собственного выполнения, необходимо установить GraalVM или использовать образ сборщика для создания исполняемого файла в режиме собственного выполнения. Дополнительные сведения см. в разделе "Создание собственного исполняемого файла". В этом кратком руководстве используется Docker в качестве среды выполнения контейнера для создания нативного исполняемого файла Linux. Если у вас нет Docker, его можно скачать на веб-сайте Docker.
Используйте следующие команды для сборки и выполнения собственного исполняемого файла в среде Linux:
mvn package -Dnative -Dquarkus.native.container-build ./target/storage-blob-1.0.0-SNAPSHOT-runnerПротестируйте приложение с помощью следующей команды:
curl localhost:8080/helloВ результатах должно отображаться
Hello, так какHelloявляется значением ключа/application/config.message, который вы добавили в хранилище конфигурации приложений.Нажмите клавиши Control+C, чтобы остановить приложение.
Очистите ресурсы
Чтобы избежать расходов за использование Azure, необходимо удалить ненужные ресурсы. Если хранилище конфигурации приложений больше не требуется, используйте следующую команду, чтобы удалить группу ресурсов и все связанные ресурсы:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
См. также
- Конфигурация приложений Quarkus Azure
- Обеспечение безопасности приложений Quarkus с помощью Microsoft Entra ID и OpenID Connect
- Развертывание приложения Java с помощью Quarkus в приложениях контейнеров Azure
- Развертывание приложения Java с помощью Quarkus в кластере Служба Azure Kubernetes
- Разверните бессерверные приложения Java с помощью Quarkus в Azure Functions