Snabbstart: Använda GitHub Actions för att ansluta till Azure Database for PostgreSQL – flexibel server
GÄLLER FÖR: Azure Database for PostgreSQL – flexibel server
Kom igång med GitHub Actions med hjälp av ett arbetsflöde för att distribuera databasuppdateringar till en flexibel Azure Database for PostgreSQL-server.
Förutsättningar
Du måste:
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- En GitHub-lagringsplats med exempeldata (
data.sql
). Om du inte har ett GitHub-konto registrerar du dig kostnadsfritt. - En flexibel Azure Database for PostgreSQL-serverinstans.
Översikt över arbetsflödesfil
Ett GitHub Actions-arbetsflöde definieras av en YAML-fil (.yml) i /.github/workflows/
sökvägen på lagringsplatsen. Den här definitionen innehåller de olika steg och parametrar som utgör arbetsflödet.
Filen har två avsnitt:
Avsnitt | Uppgifter |
---|---|
Autentisering | 1. Generera autentiseringsuppgifter för distribution. |
Distribuera | 1. Distribuera databasen. |
Generera autentiseringsuppgifter för distribution
Skapa ett huvudnamn för tjänsten med kommandot az ad sp create-for-rbac i Azure CLI. Kör det här kommandot med Azure Cloud Shell i Azure-portalen eller genom att välja knappen Prova .
az ad sp create-for-rbac --name "myML" --role contributor \
--scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
--json-auth
Parametern --json-auth
är tillgänglig i Azure CLI-versioner >= 2.51.0. Versioner före den här användningen --sdk-auth
med en utfasningsvarning.
I exemplet ovan ersätter du platshållarna med ditt prenumerations-ID, resursgruppsnamn och appnamn. Utdata är ett JSON-objekt med autentiseringsuppgifterna för rolltilldelning som ger åtkomst till din App Service-app på liknande sätt som nedan. Kopiera det här JSON-objektet för senare.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Kopiera azure database for PostgreSQL– flexibel server niska veze
I Azure-portalen går du till din flexibla serverinstans i Azure Database for PostgreSQL och på resursmenyn går du till Inställningar och väljer Anslut. På den sidan använder du kombinationsrutan Databasnamn för att välja namnet på den databas som du vill ansluta till. Expandera avsnittet Anslut från din app och kopiera ADO.NET niska veze och ersätt platshållarvärdet {your_password}
med ditt faktiska lösenord. Niska veze ser ut ungefär så här.
Server={servername.postgres.database.azure.com};Database={your_database};Port=5432;User Id={adminusername};Password={your_password};Ssl Mode=Require;
Du använder niska veze som en GitHub-hemlighet.
Konfigurera GitHub-hemligheterna
Gå till din lagringsplats i GitHub.
Gå till Inställningar i navigeringsmenyn.
Välj Säkerhetshemligheter > och variabler > Åtgärder.
Välj Ny lagringsplatshemlighet.
Klistra in hela JSON-utdata från Azure CLI-kommandot i hemlighetens värdefält. Ge hemligheten namnet
AZURE_CREDENTIALS
.Välj Add secret (Lägg till hemlighet).
Lägg till arbetsflödet
Gå till Åtgärder för din GitHub-lagringsplats.
Välj Konfigurera arbetsflödet själv.
Ta bort allt efter avsnittet i
on:
arbetsflödesfilen. Ditt återstående arbetsflöde kan till exempel se ut så här.name: CI on: push: branches: [ main ] pull_request: branches: [ main ]
Byt namn på arbetsflödet
PostgreSQL for GitHub Actions
och lägg till utchecknings- och inloggningsåtgärderna. Dessa åtgärder checkar ut din webbplatskod och autentiserar med Azure med hjälp av GitHub-hemligheterna som du skapade tidigare.name: PostgreSQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }}
Använd åtgärden Azure PostgreSQL Deploy för att ansluta till din flexibla Azure Database for PostgreSQL-serverinstans. Ersätt
POSTGRESQL_SERVER_NAME
med namnet på servern. Du bör ha en flexibel serverdatafil för Azure Database for PostgreSQL med namnetdata.sql
på rotnivån för lagringsplatsen.- uses: azure/postgresql@v1 with: connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }} server-name: POSTGRESQL_SERVER_NAME plsql-file: './data.sql'
Slutför arbetsflödet genom att lägga till en åtgärd för att logga ut från Azure. Här är det slutförda arbetsflödet. Filen visas i mappen på
.github/workflows
lagringsplatsen.name: PostgreSQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v1 with: client-id: ${{ secrets.AZURE_CREDENTIALS }} - uses: azure/postgresql@v1 with: server-name: POSTGRESQL_SERVER_NAME connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }} plsql-file: './data.sql' # Azure logout - name: logout run: | az logout
Granska distributionen
Gå till Åtgärder för din GitHub-lagringsplats.
Öppna det första resultatet om du vill se detaljerade loggar för arbetsflödets körning.
Rensa resurser
När azure database for PostgreSQL– flexibel serverdatabas och lagringsplats inte längre behövs rensar du de resurser som du har distribuerat genom att ta bort resursgruppen och din GitHub-lagringsplats.