Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве вы узнаете, как создавать, настраивать и развертывать безопасное приложение Spring Boot в службе приложение Azure, которая подключается к базе данных MongoDB в Azure (фактически база данных Cosmos DB с API MongoDB). По завершении вы получите приложение Java SE, работающее в службе приложение Azure в Linux.
В этом руководстве описано следующее:
- Создайте безопасную архитектуру по умолчанию для службы приложение Azure и Azure Cosmos DB с помощью API MongoDB.
- Защита секретов подключения с помощью управляемого удостоверения и ссылок Key Vault.
- Разверните пример приложения Spring Boot, чтобы Служба приложений из репозитория GitHub.
- Доступ к параметрам приложения Служба приложений в коде приложения.
- Создание обновлений и повторное развертывание кода приложения.
- Потоковая передача журналов диагностики из Служба приложений.
- Управление приложением в портал Azure.
- Подготовьте ту же архитектуру и разверните с помощью Интерфейса командной строки разработчика Azure.
- Оптимизируйте рабочий процесс разработки с помощью GitHub Codespaces и GitHub Copilot.
Предварительные условия
- Учетная запись Azure с активной подпиской. Если у вас нет учетной записи Azure, ее можно создать бесплатно.
- Учетная запись GitHub. Вы также можете получить его бесплатно.
- Знание Java с помощью разработки Spring Framework.
- (Необязательно) Чтобы попробовать GitHub Copilot, нужна учётная запись GitHub Copilot. Доступна 30-дневная бесплатная пробная версия.
- Учетная запись Azure с активной подпиской. Если у вас нет учетной записи Azure, ее можно создать бесплатно.
- Установлен интерфейс командной строки разработчика Azure. Вы можете следовать шагам в Azure Cloud Shell, потому что в нем уже установлен интерфейс командной строки разработчика Azure.
- Знание Java с помощью разработки Spring Framework.
- (Необязательно) Чтобы попробовать GitHub Copilot, нужна учётная запись GitHub Copilot. Доступна 30-дневная бесплатная пробная версия.
Перейти к концу
Вы можете быстро развернуть пример приложения в этом руководстве и увидеть его выполнение в Azure. Просто выполните следующие команды в Azure Cloud Shell и следуйте инструкциям в командной строке:
mkdir msdocs-spring-boot-mongodb-sample-app
cd msdocs-spring-boot-mongodb-sample-app
azd init --template msdocs-spring-boot-mongodb-sample-app
azd up
1. Запустите пример
Сначала вы настраиваете пример приложения на основе данных в качестве отправной точки. Для удобства образец репозитория включает конфигурацию контейнера разработки. Контейнер разработки имеет все необходимое для разработки приложения, включая базу данных MongoDB, кэш и все переменные среды, необходимые образцу приложения. Контейнер разработки может выполняться в пространстве кода GitHub, что означает, что вы можете запустить пример на любом компьютере с веб-браузером.
Шаг 1. В новом окне браузера:
- Войдите в свою учетную запись GitHub.
- Перейдите к https://github.com/Azure-Samples/msdocs-spring-boot-mongodb-sample-app/fork.
- Снимите отметку Копировать только основную ветвь. Вы хотите все ветви.
- Щелкните Создать форк.
Шаг 2: В форке GitHub:
- Выберите основную>ветвь-без-инфраструктуры для начальной ветви. Эта ветвь содержит только пример проекта и не содержит файлов или конфигурации, связанных с Azure.
- Выберите пространство кода "Создать код>" на начальном экране без инфраструктуры. Настройка кодспейса занимает несколько минут.
Шаг 3. В терминале среды разработки:
- Запустите
mvn package spring-boot:run
. - Когда появится уведомление
Your application running on port 8080 is available.
, нажмите кнопку "Открыть в браузере". Пример приложения должен отображаться на новой вкладке браузера. Чтобы остановить сервер Jetty, введитеCtrl
+C
.
Подсказка
Вы можете попросить GitHub Copilot об этом репозитории. Например:
- @workspace Что делает этот проект?
- @workspace Как приложение подключается к базе данных?
- @workspace Что делает папка devcontainer?
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
2. Создание Службы приложений и Cosmos DB
Сначала вы создадите ресурсы Azure. Действия, используемые в этом руководстве, создают набор безопасных ресурсов по умолчанию, которые включают Служба приложений и Azure Cosmos DB. Для процесса создания укажите:
- Имя веб-приложения. Он используется в качестве части DNS-имени приложения.
- Регион для физического запуска приложения в мире. Он также используется в качестве части DNS-имени приложения.
- Стек среды выполнения для приложения. Здесь вы выбираете версию Java, используемую для вашего приложения.
- План размещения для приложения. Это ценовая категория, которая включает набор функций и емкость масштабирования для вашего приложения.
- Группа ресурсов для приложения. Группа ресурсов позволяет группировать (в логическом контейнере) все ресурсы Azure, необходимые для приложения.
Войдите на портал Azure и выполните следующие действия, чтобы создать ресурсы Службы приложений Azure.
Шаг 1. В портал Azure:
- Введите "веб-приложение база данных" в строке поиска в верхней части портала Azure.
- Выберите элемент с меткой Веб-приложение и база данных под заголовком Marketplace. Вы также можете перейти напрямую к мастеру создания.
Шаг 2. На странице "Создание веб-приложения + база данных " заполните форму следующим образом.
- Группа ресурсов: выберите "Создать" и используйте имя msdocs-spring-cosmosdb-tutorial.
- Регион: любой регион Azure рядом с вами.
- Имя: msdocs-spring-cosmosdb-XYZ, где XYZ является тремя случайными символами. Это имя должно быть уникальным в Azure.
- Стек среды выполнения: Java 21.
- Стек веб-серверов Java: Java SE (внедренный веб-сервер).
- Механизм: API Cosmos DB для MongoDB. Cosmos DB — это полностью управляемая база данных NoSQL, реляционная и векторная база данных как услуга в Azure.
- План размещения: базовый. Когда вы будете готовы, вы можете масштабировать до рабочей ценовой категории.
- Выберите Просмотреть и создать.
- После завершения проверки щелкните Создать.
Шаг 3. Развертывание занимает несколько минут. После завершения развертывания нажмите кнопку Перейти к ресурсу. Вы перейдете непосредственно в приложение Службы приложений, но будут созданы следующие ресурсы:
- Группа ресурсов: контейнер для всех созданных ресурсов.
- План службы приложений: Определяет вычислительные ресурсы для службы приложений. Создается план Linux на уровне Базовый.
- Служба приложений: Представляет приложение и запускается в плане службы приложений.
- Виртуальная сеть: интегрированная с приложением Служба приложений и изолирует внутренний сетевой трафик.
- Azure Cosmos DB: доступно только от частной конечной точки. База данных создается для вас в учетной записи базы данных.
- Частные точки: доступ к конечным точкам в виртуальной сети для сервера базы данных и кэша Redis.
- Частные зоны DNS: обеспечивают разрешение DNS для сервера базы данных и кэша Redis в виртуальной сети.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
3. Безопасные секреты подключения
Мастер настройки уже создал строку подключения для вас в виде параметра приложения. Однако лучшая практика безопасности состоит в том, чтобы хранить секреты полностью вне Службы приложений. Вы переместите свои секреты в хранилище ключей и измените параметр приложения на ссылку на хранилище ключей с помощью соединителей служб.
Шаг 1. На странице Служба приложений:
- В меню слева выберите Параметры > переменные среды.
- Рядом с AZURE_COSMOS_CONNECTIONSTRING выберите "Показать значение". Строка подключения позволяет подключиться к базе данных Cosmos DB, находящейся за частной конечной точкой. Однако секрет сохраняется непосредственно в приложении службы приложений, что является не самым лучшим вариантом. Вы измените это.
Шаг 2. Создание хранилища ключей для безопасного управления секретами.
- В верхней строке поиска введите "хранилище ключей", а затем выберите >.
- В группе ресурсов выберите msdocs-spring-cosmosdb-tutorial.
- В имени хранилища ключей введите имя, состоящее только из букв и чисел.
- В регионе задайте для него образец расположения в качестве группы ресурсов.
Шаг 3.
- Перейдите на вкладку Сеть.
- Отмена выбора включения общедоступного доступа.
- Выберите "Создать частную конечную точку".
- В группе ресурсов выберите msdocs-spring-cosmosdb-tutorial.
- В имени хранилища ключей введите имя, состоящее только из букв и чисел.
- В регионе задайте для него образец расположения в качестве группы ресурсов.
- В диалоговом окне в разделе Расположение выберите то же расположение, что и для вашего приложения App Service.
- В группе ресурсов выберите msdocs-spring-cosmosdb-tutorial.
- В поле Name введите msdocs-spring-cosmosdb-XYZVaultEndpoint.
- В виртуальной сети выберите msdocs-spring-cosmosdb-XYZVnet.
- В подсетиmsdocs-spring-cosmosdb-XYZSubnet.
- Нажмите ОК.
- Выберите Проверить и создать, а затем выберите Создать. Дождитесь завершения развертывания хранилища ключей. Должно появиться сообщение "Развертывание завершено".
Шаг 4.
- В верхней строке поиска введите msdocs-spring-cosmosdb, а затем ресурс Служба приложений msdocs-spring-cosmosdb-XYZ.
- На странице Служба приложений в меню слева выберите "Параметры > соединителя службы". У вас уже есть соединитель, созданный мастером создания приложения.
- Установите флажок рядом с соединителем, а затем нажмите кнопку "Изменить".
- На вкладке "Основные сведения" задайте типклиента SpringBoot. Этот параметр создает для вас переменные конкретной среды Spring Boot.
- Выберите вкладку Аутентификация.
- Выберите "Сохранить секрет" в Key Vault.
- В разделе "Подключение к Key Vault" выберите "Создать". Диалоговое окно создания подключения открывается поверх диалогового окна редактирования.
Шаг 5: В диалоговом окне создания подключения Key Vault:
- В Key Vault выберите созданное ранее хранилище ключей.
- Выберите Просмотр и создание. Вы увидите, что управляемое удостоверение, назначаемое системой, имеет значение Selected.
- После завершения проверки нажмите кнопку "Создать".
Шаг 6. Вы снова в диалоговом окне редактирования для defaultConnector.
- На вкладке "Проверка подлинности" дождитесь создания соединителя для хранилища ключей. По завершении раскрывающийся список подключения Key Vault автоматически выбирает его.
- Выберите Далее: сеть.
- Выберите " Настроить правила брандмауэра", чтобы включить доступ к целевой службе. Если появится сообщение "Нет частной конечной точки в целевой службе", игнорируйте его. Мастер создания приложения уже защитил базу данных Cosmos DB с частной конечной точкой.
- Выберите Сохранить. Подождите, пока появится уведомление об успешном обновлении.
Шаг 7. Проверка изменений:
- В меню слева снова выберите переменные среды.
- Убедитесь, что параметр приложения spring.data.mongodb.uri существует. Соединитель по умолчанию создал его для вас, и приложение Spring Boot уже использует переменную.
- Рядом с параметром приложения выберите "Показать значение". Значение должно быть
@Microsoft.KeyVault(...)
. Это означает, что это ссылка на хранилище ключей, так как секрет теперь управляется в хранилище ключей.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
4. Развертывание примера кода
На этом шаге вы настроите развертывание GitHub с помощью GitHub Actions. Это всего лишь один из множества способов развертывания в Службе приложений, но это также отличный способ обеспечения непрерывной интеграции в процессе развертывания. По умолчанию каждый git push
из репозитория GitHub запускает действие сборки и развертывания.
Шаг 1. В меню слева выберите .
Шаг 2. На странице Центра развертывания:
- В поле Источник выберите GitHub. По умолчанию в качестве поставщика сборки выбрано GitHub Actions.
- Войдите в свою учетную запись GitHub и следуйте инструкциям по авторизации Azure.
- В поле Организация выберите свою учетную запись.
- В репозитории выберите msdocs-spring-boot-mongodb-sample-app.
- В Branch выберите starter-no-infra. Это та же ветвь, в которой вы работали с вашим тестовым приложением, без файлов или конфигурации, связанных с Azure.
- Для типа аутентификации выберите идентификацию, назначенную пользователем.
- В меню сверху выберите Сохранить. Служба приложений фиксирует файл рабочего процесса в выбранном репозитории GitHub в каталоге
.github/workflows
. По умолчанию центр развертывания создает назначаемое пользователем удостоверение для рабочего процесса для проверки подлинности с помощью Microsoft Entra (проверка подлинности OIDC). Для получения информации об альтернативах проверки подлинности см. Развертывание в App Service с помощью GitHub Actions.
Шаг 3.
- Перейдите на вкладку Журналы. Заметьте, что новое развертывание уже выполнено, но статус неудачно.
- Выберите Журналы сборки/развертывания.
В браузере откроется вкладка "Действия" вашего форкнутого репозитория на GitHub. В заметках отображается ошибка
The string 'java21' is not valid SeVer notation for a Java version
. Если вы хотите, выберите неисправный шаг сборки на странице, чтобы получить дополнительные сведения.
Шаг 4. Ошибка показывает, что что-то пошло не так во время рабочего процесса GitHub. Чтобы исправить его, сначала извлеките последние изменения в пространство кода. Вернитесь в GitHub Codespace вашего примера форка, выполните команду git pull origin starter-no-infra
.
Это извлекает только что зафиксированный файл рабочего процесса в пространство кода.
Шаг 5 (вариант 1: с GitHub Copilot):
- Запустите новый сеанс чата, выбрав представление чата, а затем выберите +.
- Спросите: "@workspace Почему я получаю ошибку в действиях GitHub: строка "java21" недопустимая нотация SemVer для версии Java". Copilot может дать вам объяснение и даже предоставить ссылку на файл рабочего процесса, который необходимо исправить.
- Откройте .github/workflows/starter-no-infra_msdocs-spring-cosmosdb-123.yaml в обозревателе и внесите предлагаемое исправление. GitHub Copilot не дает вам одинаковый ответ каждый раз, вам может потребоваться задать дополнительные вопросы, чтобы точно настроить его ответ. Советы см. в статье "Что можно сделать с помощью GitHub Copilot в моем пространстве кода?".
Шаг 5 (вариант 2: без GitHub Copilot):
- Откройте .github/workflows/starter-no-infra_msdocs-spring-cosmosdb-123.yaml в обозревателе и найдите
setup-java@v4
действие. - Измените значение атрибута
java-version
на'21'
.
Шаг 6.
- Выберите расширение Контроль версий.
- В текстовом поле введите сообщение коммита, например
Fix error in java-version
. Или выберитеи позвольте GitHub Copilot создать сообщение для коммита.
- Нажмите кнопку "Зафиксировать", а затем подтвердите значение "Да".
- Нажмите кнопку "Синхронизировать изменения 1", а затем нажмите кнопку "ОК".
Шаг 7. Назад на странице Центра развертывания в портал Azure:
- На вкладке Журналы выберите Обновить. Новый запуск развертывания уже запущен из зафиксированных изменений.
- В элементе журнала для запуска развертывания выберите запись «Журналы сборки/развертывания» с последней меткой времени.
Шаг 8. Вы перейдете в репозиторий GitHub и увидите, что действие GitHub выполняется. Файл рабочего процесса определяет два отдельных этапа: сборку и развертывание. Дождитесь, пока выполнение на GitHub не покажет статус Завершено.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
5. Перейдите к приложению
Шаг 1. На странице Служба приложений:
- В меню слева выберите Обзор.
- Выберите URL-адрес своего приложения.
Шаг 2. Добавление нескольких задач в список. Поздравляем, вы запускаете веб-приложение в службе приложение Azure с безопасным подключением к Azure Cosmos DB.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
Трансляция диагностических журналов
Служба приложений Azure захватывает все сообщения, выводимые на консоль, чтобы помочь в диагностике проблем с приложением. Пример приложения включает стандартные инструкции ведения журнала Log4j для демонстрации этой возможности, как показано в следующем фрагменте кода:
private static Logger logger = LoggerFactory.getLogger(TodoListController.class);
@Autowired
private TodoItemRepository todoItemRepository;
public TodoListController() {
}
/**
* HTTP GET
*/
@GetMapping(path = "/api/todolist/{index}", produces = {MediaType.APPLICATION_JSON_VALUE})
public TodoItem getTodoItem(@PathVariable("index") String index) {
logger.info("GET request access '/api/todolist/{}' path.", index);
return todoItemRepository.findById(index).get();
}
Шаг 1. На странице Служба приложений:
- В меню слева выберите Журналы службы приложений.
- Под элементом Ведение журнала приложения выберите Файловая система.
- В меню сверху выберите Сохранить.
Шаг 2. В меню слева выберите поток журналов. Вы видите журналы для своего приложения, включая журналы платформы и журналы изнутри контейнера.
Узнайте подробнее о логировании в приложениях Java в серии статей о включении Azure Monitor OpenTelemetry для приложений .NET, Node.js, Python и Java.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
7. Очистка ресурсов
По завершении работы можно удалить все ресурсы из вашей подписки Azure, удалив соответствующую группу ресурсов.
Шаг 1: В строке поиска в верхней части портала Azure.
- Введите имя группы ресурсов.
- Выберите группу ресурсов.
Шаг 2. На странице группы ресурсов выберите "Удалить группу ресурсов".
Шаг 3.
- Подтвердите удаление, введя имя группы ресурсов.
- Выберите команду Удалить.
- Подтвердите удаление еще раз.
2. Создание ресурсов Azure и развертывание примера приложения
На этом шаге вы создадите ресурсы Azure и развернете пример приложения в Службе приложений на Linux. Действия, используемые в этом руководстве, создают набор безопасных ресурсов по умолчанию, которые включают Служба приложений и Azure Cosmos DB.
Контейнер разработки уже имеет интерфейс командной строки разработчика Azure (AZD).
Выполните команду
azd init
из корневого каталога репозитория.azd init --template javase-app-service-cosmos-redis-infra
При появлении запроса укажите следующие ответы:
Вопрос Ответ Текущий каталог не пуст. Вы хотите инициализировать проект здесь, в '<вашем каталоге>'? Y Что вы хотите сделать с этими файлами? Сохранение существующих файлов без изменений Введите новое имя среды Введите уникальное имя. Шаблон AZD использует это имя как часть DNS-имени веб-приложения в Azure ( <app-name>-<hash>.azurewebsites.net
). Разрешены буквенно-цифровые символы и дефисы.Войдите в Azure, выполнив команду
azd auth login
и следуя инструкциям подсказки.azd auth login
Создайте необходимые ресурсы Azure, а затем разверните код приложения с помощью команды
azd up
. Следуйте запросу, чтобы выбрать нужную подписку и расположение для ресурсов Azure.azd up
Выполнение
azd up
команды занимает около 15 минут (кэш Redis занимает больше всего времени). Она также компилирует и развертывает ваш код приложения, но позже вы измените его, чтобы работать с службой приложений Azure. Во время выполнения команда предоставляет сообщения о процессе подготовки и развертывания, включая ссылку на развертывание в Azure. По завершении команда также отображает ссылку на приложение развертывания.Этот шаблон AZD содержит файлы (azure.yaml и каталог infra), создающие безопасную архитектуру по умолчанию со следующими ресурсами Azure:
- Группа ресурсов: контейнер для всех созданных ресурсов.
- План службы приложений: Определяет вычислительные ресурсы для службы приложений. Создается план Linux в уровне B1.
- Служба приложений: Представляет приложение и запускается в плане службы приложений.
- Виртуальная сеть: интегрированная с приложением Служба приложений и изолирует внутренний сетевой трафик.
- Учетная запись Azure Cosmos DB с API MongoDB: доступна только через частную конечную точку. База данных создается для вас на сервере.
- Кэш Azure для Redis. Доступно только из виртуальной сети.
- Хранилище ключей: доступно только через свою закрытую конечную точку. Используется для управления секретами для приложения Служба приложений.
- Частные конечные точки: доступ к конечным точкам для хранилища ключей, сервера базы данных и кэша Redis в виртуальной сети.
- Частная DNS зона: включение разрешения DNS в базе данных Cosmos DB, для кэша Redis и хранилища ключей в виртуальную сеть.
- Рабочая область Log Analytics: служит целевым контейнером для вашего приложения для отправки журналов и выполнения запросов к ним.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
3. Проверьте строки подключения
Шаблон AZD, который вы используете, уже создал переменные подключения для вас как параметры приложения и выводит их в терминал для вашего удобства. Параметры приложения — это один из способов удерживать секреты подключения вне вашего репозитория кода.
В выходных данных AZD найдите параметр приложения
spring.data.mongodb.uri
. Отображаются только имена параметров. Они выглядят следующим образом в выходных данных AZD:App Service app has the following app settings: - spring.data.mongodb.uri - spring.data.mongodb.database - spring.redis.host - spring.redis.port - spring.redis.password - spring.redis.database - spring.redis.ssl - spring.cloud.azure.keyvault.secret.credential.managed_identity_enabled - spring.cloud.azure.keyvault.secret.endpoint - azure.keyvault.uri - azure.keyvault.scope
spring.data.mongodb.uri
содержит URI подключения к базе данных Cosmos DB в Azure. Это стандартная переменная Spring Data, которую приложение уже использует в файле src/main/resources/application.properties .В обозревателе перейдите к src/main/resources/application.properties и убедитесь, что приложение Spring Boot уже использует
spring.data.mongodb.uri
переменную для доступа к данным.Для удобства выходные данные шаблона AZD отображают прямую ссылку на страницу параметров приложения. Найдите ссылку и откройте ее на новой вкладке браузера.
Если вы посмотрите на значение
spring.data.mongodb.uri
, оно должно быть@Microsoft.KeyVault(...)
, что означает, что это ссылка на хранилище ключей, поскольку секрет управляется в хранилище ключей.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
4. Переход в приложение
В выходных данных AZD найдите URL-адрес приложения и перейдите к нему в браузере. URL-адрес выглядит следующим образом в выходных данных AZD:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <URL>
Добавьте несколько задач в список.
Поздравляем, вы запускаете веб-приложение в службе приложение Azure с безопасным подключением к Azure Cosmos DB.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
5. Потоковая передача журналов диагностики
служба приложение Azure может записывать журналы консоли для диагностики проблем с приложением. Для удобства шаблон AZD уже включил ведение журнала в локальную файловую систему и отправляет журналы в рабочую область Log Analytics.
Пример приложения включает стандартные инструкции ведения журнала Log4j для демонстрации этой возможности, как показано в следующем фрагменте кода:
private static Logger logger = LoggerFactory.getLogger(TodoListController.class);
@Autowired
private TodoItemRepository todoItemRepository;
public TodoListController() {
}
/**
* HTTP GET
*/
@GetMapping(path = "/api/todolist/{index}", produces = {MediaType.APPLICATION_JSON_VALUE})
public TodoItem getTodoItem(@PathVariable("index") String index) {
logger.info("GET request access '/api/todolist/{}' path.", index);
return todoItemRepository.findById(index).get();
}
В выходных данных AZD найдите ссылку для потоковой передачи журналов, связанных с App Service, и перейдите по ней в браузере. Ссылка выглядит следующим образом в выходных данных AZD:
Stream App Service logs at: <URL>
Узнайте подробнее о логировании в приложениях Java в серии статей о включении Azure Monitor OpenTelemetry для приложений .NET, Node.js, Python и Java.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
6. Очистка ресурсов
Чтобы удалить все ресурсы Azure в текущей среде развертывания, выполните azd down
и следуйте инструкциям.
azd down
Устранение неполадок
- В представлении развертывания портала для Azure Cosmos DB отображается состояние конфликта
- Развернутый образец приложения не показывает приложение со списком задач
В представлении развертывания портала для Azure Cosmos DB отображается состояние конфликта
В зависимости от вашей подписки и выбранного региона может появиться состояние развертывания Azure Cosmos DB Conflict
со следующим сообщением в разделе "Детали операции".
Sorry, we are currently experiencing high demand in <region> region, and cannot fulfill your request at this time.
Эта ошибка, скорее всего, вызвана ограничением подписки для выбранного региона. Попробуйте выбрать другой регион для развертывания.
Развернутое пробное приложение не отображает приложение "Список задач".
Если вы видите Hey, Java developers!
страницу вместо приложения списка задач, Служба приложений, скорее всего, по-прежнему загружает обновленный контейнер из последнего развертывания кода. Подождите несколько минут и обновите страницу.
Часто задаваемые вопросы
- Сколько стоит такая конфигурация?
- Как выполнить миграцию базы данных с использованием базы данных Cosmos DB, находящейся за виртуальной сетью?
- Как осуществляется разработка локальных приложений с использованием GitHub Actions?
- У меня нет разрешений на создание удостоверения пользователя
Сколько стоит такая конфигурация?
Цены на созданные ресурсы приведены следующим образом:
- План службы приложений создается на уровне Базовый, и его можно масштабировать вверх или вниз. См. цены на Службу приложений.
- Учетная запись Azure Cosmos DB создается на бессерверном уровне, а с этим уровнем связана небольшая стоимость. См. страницу цен на Azure Cosmos DB.
- Кэш Azure для Redis создается на уровне "Базовый" с минимальным размером кэша. Существует небольшая стоимость, связанная с этим уровнем. Его можно масштабировать до более высоких уровней производительности для повышения доступности, кластеризации и других функций. См. Кэш Azure для Redis цены.
- Плата за виртуальную сеть не взимается, если только вы не настроите дополнительные функциональные возможности, такие как пиринг. См. цены на виртуальные сети Azure.
- За частную зону DNS взимается небольшая плата. См. цены на Azure DNS.
Как запустить миграцию базы данных для базы данных Cosmos DB в виртуальной сети?
Контейнер Java SE в Azure App Service уже имеет сетевое подключение к Cosmos DB, но не содержит инструментов миграции или средств MongoDB. Доступно несколько вариантов:
- Автоматическая миграция базы данных выполняется при запуске приложения, например с Hibernate и Flyway.
- В сеансе SSH приложения установите средство миграции, например Flyway, а затем запустите скрипт миграции. Помните, что установленное средство не будет сохраняться после перезапуска приложения, если он не находится в каталоге /home .
- Интегрируйте облачную оболочку Azure с виртуальной сетью и запустите миграцию базы данных.
Как осуществляется разработка локальных приложений с использованием GitHub Actions?
В качестве примера использования файла рабочего процесса, автоматически созданного со службой приложений, каждое git push
запускает новое выполнение сборки и развертывания. Из локального клона репозитория GitHub необходимо внести необходимые обновления и отправить их в GitHub. Например:
git add .
git commit -m "<some-message>"
git push origin main
У меня нет полномочий на создание идентификатора, назначаемого пользователем
См. Настройка развертывания GitHub Actions из Центра развертывания.
Что можно сделать с помощью GitHub Copilot в моем пространстве кода?
Вы можете заметить, что представление чата GitHub Copilot уже было там, когда вы создали кодовое пространство. Для удобства мы включаем расширение чата GitHub Copilot в определение контейнера (см. .devcontainer/devcontainer.json). Однако вам нужна учетная запись GitHub Copilot (доступна бесплатная пробная версия 30 дней).
Несколько советов для вас при разговоре с GitHub Copilot:
- В одном сеансе чата вопросы и ответы основываются друг на друге, и вы можете корректировать свои вопросы, чтобы уточнить ответ, который вы получаете.
- По умолчанию GitHub Copilot не имеет доступа к файлу в репозитории. Чтобы задать вопросы о файле, сначала откройте файл в редакторе.
- Чтобы разрешить GitHub Copilot получить доступ ко всем файлам в репозитории при подготовке его ответов, начните с вашего вопроса
@workspace
. Дополнительные сведения см. в разделе Use the @workspace agent. - В сеансе чата GitHub Copilot может предложить изменения и (с
@workspace
) даже указать, где внести изменения, но не имеет права делать их за вас. Вам решать, добавить предлагаемые изменения и протестировать их.
Следующие шаги
- Azure для разработчиков Java
- Spring Boot
- Spring Data для Azure Cosmos DB
- Azure Cosmos DB и -Служба приложений Linux
Дополнительные сведения о запуске приложений Java на Служба приложений см. в руководстве разработчика.
Узнайте, как защитить приложение с помощью личного домена и сертификата.