Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 Twoim kodem.
- Aktualizowanie konfiguracji bez ponownego wdrażania całej aplikacji.
- Integracja z usługami, takimi jak Azure App Service i Azure Functions.
Przepływ pracy GitHub Actions definiuje zautomatyzowany proces w repozytorium GitHub. Aby zaimportować plik konfiguracji z repozytorium GitHub do magazynu usługi Azure App Configuration, użyj akcji GitHub Azure CLI, która zapewnia pełną funkcjonalność importowania plików do magazynu usługi App Configuration.
Uwierzytelnianie
Aby zaimportować konfiguracje do magazynu usługi Azure App Configuration, możesz uwierzytelnić się za pomocą 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.
Azure Login umożliwia uwierzytelnianie przy użyciu nazw głównych usług za pomocą kluczy tajnych lub protokołu OpenID Connect przy użyciu poświadczenia tożsamości federacyjnej. W tym przykładzie użyjesz narzędzia OpenID Connect, aby zalogować się do sklepu App Configuration.
Użyj logowania Azure przy użyciu OpenID Connect
Aby użyć usługi Azure Login z usługą OpenID Connect, musisz wykonać następujące kroki:
- Skonfiguruj aplikację Microsoft Entra przy użyciu jednostki usługi.
- Przypisz aplikacji Microsoft Entra rolę App Configuration Data Owner, aby umożliwić akcji GitHub odczyt i zapis danych w magazynie 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 ustawiono 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". Gdy ją znajdziesz, kliknij tę 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żyj parametrów połączenia
Alternatywnie możesz uwierzytelnić się, przekazując ciąg połączenia bezpośrednio do polecenia interfejsu wiersza poleceń 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 ten ciąg połączenia jako zmienną tajną w swoim 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 ciągu 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
Używasz akcji GitHub Azure CLI do zaimportowania pliku konfiguracji do magazynu 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 serwisie Marketplace „Azure CLI Action”. Gdy ją znajdziesz, kliknij tę akcję i skopiuj podany fragment kodu do pliku przepływu pracy.
W poniższym przykładzie użyjesz akcji Azure CLI, aby zaimportować pliki konfiguracji do magazynu Azure App Configuration, gdy zmiana zostanie wypchnięta do gałęzi appsettings.json. Gdy deweloper wypchnie zmianę do appsettings.json, skrypt przekazany do akcji Azure CLI zaktualizuje magazyn App Configuration o nowe wartości.
Sekcja w tym przepływie pracy określa, że akcja jest wyzwalana nawypchnięciu zawierającym appsettings.json do gałęzi głównej. Sekcja zadań wyświetla zadania uruchamiane 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 <AppConfigurationEndpoint> --auth-mode login -s file --path appsettings.json --format json --yes
Aby uzyskać więcej informacji na temat poleceń importu interfejsu wiersza polecenia Azure App Configuration, zobacz dokumentację interfejsu wiersza polecenia Azure App 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 jednoznaczne zidentyfikowanie każdego importu do magazynu usługi App Configuration, co ułatwia mapowanie zmian w kodzie na aktualizacje konfiguracji.
Przykład użycia etykiety dynamicznej podczas importowania
W poniższym przykładzie wszystkie zaimportowane pary klucz-wartość będą miały unikalną etykietę opartą na hashu commita.
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 <AppConfigurationEndpoint> --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ń importu w interfejsie wiersza polecenia platformy Azure, zapoznaj się z naszym szczegółowym przewodnikiem Polecenia importu Azure CLI.
Aby dowiedzieć się więcej o różnych profilach zawartości plików, zobacz obsługę plików konfiguracji w usłudze Azure App Configuration.