Importowanie plików konfiguracji z repozytorium GitHub do magazynu App Configuration
Jeśli konfiguracja została przyjęta jako kod i zarządzasz konfiguracjami w usłudze GitHub, możesz użyć funkcji GitHub Actions, aby automatycznie zaimportować pliki konfiguracji z repozytorium GitHub do magazynu usługi App Configuration. Dzięki temu można wprowadzać zmiany w plikach konfiguracji w zwykły sposób, jednocześnie uzyskując korzyści ze sklepu App Configuration, takie jak:
- Scentralizowana konfiguracja poza kodem.
- Aktualizowanie konfiguracji bez ponownego wdrażania całej aplikacji.
- Integracja z usługami, takimi jak usługa aplikacja systemu Azure i funkcje.
Przepływ pracy akcji usługi GitHub definiuje zautomatyzowany proces w repozytorium GitHub. Aby zaimportować plik konfiguracji z repozytorium GitHub do magazynu konfiguracji aplikacja systemu Azure, użyj akcji GitHub interfejsu wiersza polecenia platformy Azure, która zapewnia pełne możliwości importowania plików do magazynu usługi App Configuration.
Uwierzytelnianie
Aby zaimportować konfiguracje do magazynu konfiguracji aplikacja systemu Azure, możesz uwierzytelnić się przy użyciu jednej z następujących metod:
Korzystanie z identyfikatora Entra firmy Microsoft
Zalecanym sposobem uwierzytelniania jest użycie identyfikatora Entra firmy Microsoft, który umożliwia bezpieczne łączenie się z zasobami platformy Azure. Proces uwierzytelniania można zautomatyzować przy użyciu akcji Azure Login GitHub.
Logowanie do platformy Azure umożliwia uwierzytelnianie przy użyciu jednostek usługi za pomocą wpisów tajnych lub openID Connect przy użyciu poświadczeń tożsamości federacyjnej. W tym przykładzie użyjesz narzędzia OpenID Connect, aby zalogować się do sklepu App Configuration.
Używanie identyfikatora logowania platformy Azure z programem OpenID Connect
Aby użyć usługi Azure Login z usługą OpenID Connect, musisz wykonać następujące kroki:
- Skonfiguruj aplikację Firmy Microsoft Entra przy użyciu jednostki usługi.
- Przypisz aplikację Firmy Microsoft Entra rolę Właściciel danych konfiguracji aplikacji, aby umożliwić usłudze GitHub odczytywanie i zapisywanie w magazynie usługi App Configuration.
- Podaj identyfikator klienta aplikacji Microsoft Entra, identyfikator dzierżawy i identyfikator subskrypcji do akcji logowania. Te wartości można podać bezpośrednio w przepływie pracy lub przechowywać jako wpisy tajne usługi GitHub w celu uzyskania lepszych zabezpieczeń. W poniższym przykładzie te wartości są ustawiane jako wpisy tajne. Aby uzyskać więcej informacji na temat używania wpisów tajnych w usłudze GitHub, zobacz Używanie wpisów tajnych w funkcji GitHub Actions.
Aby rozpocząć korzystanie z tej akcji usługi GitHub, przejdź do repozytorium i wybierz kartę Akcje . Wybierz pozycję Nowy przepływ pracy, a następnie skonfiguruj przepływ pracy samodzielnie. Na koniec wyszukaj w witrynie Marketplace frazę "Azure Login". Po znalezieniu tej akcji kliknij akcję i skopiuj podany fragment kodu do pliku przepływu pracy.
Przykład użycia identyfikatora Entra firmy Microsoft
# 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 }}
Używanie parametrów połączenia
Alternatywnie możesz uwierzytelnić się, przekazując parametry połączenia bezpośrednio do polecenia interfejsu wiersza polecenia platformy Azure. Ta metoda obejmuje pobranie parametry połączenia z witryny Azure Portal i użycie jej w poleceniach lub skryptach.
Aby rozpocząć, możesz znaleźć parametry połączenia w obszarze Ustawienia dostępu sklepu App Configuration w witrynie Azure Portal.
Następnie ustaw tę parametry połączenia jako zmienną wpisu tajnego w repozytorium GitHub. Aby uzyskać więcej informacji na temat używania wpisów tajnych w usłudze GitHub, zobacz Używanie wpisów tajnych w funkcji GitHub Actions.
Przykład użycia parametry połączenia
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> }}
Importowanie pliku konfiguracji
Akcja usługi GitHub interfejsu wiersza polecenia platformy Azure służy do importowania pliku konfiguracji do magazynu usługi App Configuration. Aby rozpocząć korzystanie z tej akcji usługi GitHub, przejdź do repozytorium i wybierz kartę Akcje . Wybierz pozycję Nowy przepływ pracy, a następnie skonfiguruj przepływ pracy samodzielnie. Na koniec wyszukaj w witrynie Marketplace frazę "Akcja interfejsu wiersza polecenia platformy Azure". Po znalezieniu tej akcji kliknij akcję i skopiuj podany fragment kodu do pliku przepływu pracy.
W poniższym przykładzie użyjesz akcji interfejsu wiersza polecenia platformy Azure, aby zaimportować pliki konfiguracji do magazynu konfiguracji aplikacja systemu Azure, gdy zmiana zostanie wypchnięta do appsettings.json
. Gdy deweloper wypchnie zmianę appsettings.json
do , skrypt przekazany do akcji interfejsu wiersza polecenia platformy Azure aktualizuje magazyn App Configuration przy użyciu nowych wartości.
Sekcja w tym przepływie pracy określa, że akcja jest wyzwalana na wypchnięciu zawierającym appsettings.json
do gałęzi głównej. Sekcja zadań zawiera listę zadań uruchamianych po wyzwoleniu akcji. Akcja sprawdza odpowiednie pliki i aktualizuje magazyn App Configuration.
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
Aby uzyskać więcej informacji na temat poleceń importowania interfejsu wiersza polecenia konfiguracji aplikacja systemu Azure, zobacz dokumentację interfejsu wiersza polecenia aplikacja systemu Azure Configuration.
Używanie etykiety dynamicznej podczas importowania
Użycie etykiety dynamicznej w każdym importowaniu jest dobrym sposobem na zachowanie jasnej i precyzyjnej kontroli wersji konfiguracji. Umożliwia ona unikatowe zidentyfikowanie każdego importu do magazynu usługi App Configuration, co ułatwia mapowania zmian kodu na aktualizacje konfiguracji.
Przykład użycia etykiety dynamicznej podczas importowania
W poniższym przykładzie wszystkie zaimportowane wartości kluczy będą miały unikatową etykietę na podstawie skrótu zatwierdzenia.
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
Następne kroki
Aby dowiedzieć się, jak używać poleceń importowania interfejsu wiersza polecenia, zapoznaj się z naszym kompleksowym przewodnikiem dotyczącym poleceń importowania interfejsu wiersza polecenia platformy Azure.
Aby dowiedzieć się więcej na temat różnych profilów zawartości plików, zobacz aplikacja systemu Azure Obsługa konfiguracji plików konfiguracji.