Импорт файлов конфигурации из репозитория GitHub в хранилище Конфигурация приложений
Если вы приняли конфигурацию в качестве кода и управляете конфигурациями в GitHub, вы можете использовать GitHub Actions для автоматического импорта файлов конфигурации из репозитория GitHub в хранилище Конфигурация приложений. Это позволяет вносить изменения в файлы конфигурации, как правило, при получении Конфигурация приложений преимуществ хранения, таких как:
- Централизованная конфигурация за пределами кода.
- Обновление конфигурации без повторного развертывания всего приложения.
- Интеграция со службами, такими как приложение Azure служба и функции.
Рабочий процесс GitHub Action определяет автоматизированный процесс в репозитории GitHub. Чтобы импортировать файл конфигурации из репозитория GitHub в хранилище Конфигурация приложений Azure, используйте действие Azure CLI GitHub, которое предоставляет полные возможности для импорта файлов в хранилище Конфигурация приложений.
Проверка подлинности
Чтобы импортировать конфигурации в хранилище Конфигурация приложений Azure, можно выполнить проверку подлинности с помощью одного из следующих методов:
Использование идентификатора Microsoft Entra
Рекомендуемый способ проверки подлинности — использовать идентификатор Microsoft Entra, который позволяет безопасно подключаться к ресурсам Azure. Процесс проверки подлинности можно автоматизировать с помощью действия GitHub для входа Azure.
Имя входа Azure позволяет выполнять проверку подлинности с помощью субъектов-служб с секретами или OpenID Connect с помощью учетных данных федеративного удостоверения. В этом примере вы будете использовать OpenID Connect для входа в хранилище Конфигурация приложений.
Использование имени входа Azure с OpenID Connect
Чтобы использовать azure Login с OpenID Connect, вам потребуется:
- Настройте приложение Microsoft Entra с помощью субъекта-службы.
- Назначьте приложению Microsoft Entra роль владельца данных Конфигурация приложений, чтобы разрешить действие GitHub читать и записывать в хранилище Конфигурация приложений.
- Укажите идентификатор клиента приложения Microsoft Entra, идентификатор клиента и идентификатор подписки для действия входа. Эти значения можно предоставить непосредственно в рабочем процессе или хранить как секреты GitHub для повышения безопасности. В приведенном ниже примере эти значения задаются как секреты. Дополнительные сведения об использовании секретов в GitHub см. в разделе "Использование секретов" в GitHub Actions.
Чтобы приступить к работе с этим действием GitHub, перейдите в репозиторий и выберите вкладку Actions (Действия). Щелкните New workflow (Создать рабочий процесс), затем выберите Set up a workflow yourself (Настроить рабочий процесс самостоятельно). Наконец, выполните поиск в Marketplace по запросу "Имя входа Azure". Найдя его, щелкните действие и скопируйте предоставленный фрагмент кода в файл рабочего процесса.
Пример использования идентификатора Microsoft Entra
# Set permissions for the workflow. Specify 'id-token: write' to allow OIDC token generation at the workflow level.
permissions:
id-token: write
contents: read
jobs:
syncconfig:
runs-on: ubuntu-latest
steps:
- name: Azure login
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
использование строки подключения;
Кроме того, можно пройти проверку подлинности, передав строка подключения непосредственно в команду Azure CLI. Этот метод включает получение строка подключения из портал Azure и его использование в командах или сценариях.
Чтобы приступить к работе, можно найти строка подключения в разделе "Параметры доступа" хранилища Конфигурация приложений в портал Azure.
Затем задайте этот строка подключения в качестве секретной переменной в репозитории GitHub. Дополнительные сведения об использовании секретов в GitHub см. в разделе "Использование секретов" в GitHub Actions..
Пример использования строка подключения
on:
push:
branches:
- 'main'
paths:
- 'appsettings.json'
jobs:
syncconfig:
runs-on: ubuntu-latest
# pass the secret variable as an environment variable to access it in your CLI action.
env:
CONNECTION_STRING: ${{ secrets.<ConnectionString> }}
Импорт файла конфигурации
Вы используете действие Azure CLI GitHub для импорта файла конфигурации в хранилище Конфигурация приложений. Чтобы приступить к работе с этим действием GitHub, перейдите в репозиторий и выберите вкладку Actions (Действия). Щелкните New workflow (Создать рабочий процесс), затем выберите Set up a workflow yourself (Настроить рабочий процесс самостоятельно). Наконец, выполните поиск в Marketplace по запросу "Действие Azure CLI". Найдя его, щелкните действие и скопируйте предоставленный фрагмент кода в файл рабочего процесса.
В следующем примере используется действие Azure CLI для импорта файлов конфигурации в хранилище Конфигурация приложений Azure при отправке appsettings.json
изменений. Когда разработчик отправляет измененияappsettings.json
, скрипт, переданный в действие Azure CLI, обновляет хранилище Конфигурация приложений новыми значениями.
В разделе этого рабочего процесса указывается, что действие активируется при отправке, содержащей appsettings.json
основную ветвь. В разделе заданий перечислены задания , выполняемые после активации действия. Действие проверяет соответствующие файлы и обновляет хранилище Конфигурация приложений.
on:
push:
branches:
- 'main'
paths:
- 'appsettings.json'
# Set permissions for the workflow. Specify 'id-token: write' to allow OIDC token generation at the workflow level.
permissions:
id-token: write
contents: read
jobs:
syncconfig:
runs-on: ubuntu-latest
steps:
- name: Azure login
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
# checkout done so that files in the repo can be read by the sync
- uses: actions/checkout@v1
- uses: azure/cli@v2
with:
azcliversion: latest
inlineScript: |
az appconfig kv import --endpoint <your-app-configuration-store-endpoint> --auth-mode login -s file --path appsettings.json --format json --yes
Дополнительные сведения о командах импорта Конфигурация приложений Azure CLI см. в документации приложение Azure Confifguration CLI.
Использование динамической метки для импорта
Использование динамической метки для каждого импорта — это хороший способ обеспечения четкого и точного управления версиями конфигураций. Он позволяет каждому импорту в хранилище Конфигурация приложений быть уникальным образом идентифицированным, что упрощает сопоставление изменений кода с обновлениями конфигурации.
Пример использования динамической метки при импорте
В следующем примере все импортированные значения ключей будут иметь уникальную метку на основе хэша фиксации.
jobs:
syncconfig:
runs-on: ubuntu-latest
steps:
# Creates a label based on the branch name and the first 8 characters
# of the commit hash
- id: determine_label
run: echo ::set-output name=LABEL::"${GITHUB_REF#refs/*/}/${GITHUB_SHA:0:8}"
# checkout done so that files in the repo can be read by the sync
- uses: actions/checkout@v1
- uses: azure/cli@v2
with:
azcliversion: latest
inlineScript: |
az appconfig kv import --endpoint <your-app-configuration-store-endpoint> --auth-mode login -s file --path appsettings.json --format json --label ${{ steps.determine_label.outputs.LABEL }} --yes
Следующие шаги
Чтобы узнать, как использовать команды импорта CLI, ознакомьтесь с нашим исчерпывающим руководством по командам импорта Azure CLI.
Дополнительные сведения о различных профилях содержимого файлов см. в Конфигурация приложений Azure поддержке файлов конфигурации.