Snabbstart: Använda GitHub Actions för att ansluta till Azure Database for PostgreSQL – flexibel server
GÄLLER FÖR: Azure Database for PostgreSQL – Azure Database for PostgreSQL för enskild server – flexibel server
Viktigt!
Azure Database for PostgreSQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till Azure Database for PostgreSQL – flexibel server. Mer information om hur du migrerar till Azure Database for PostgreSQL – flexibel server finns i Vad händer med Azure Database for PostgreSQL – enskild 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 anslutningssträng
I Azure-portalen går du till din flexibla Azure Database for PostgreSQL-serverinstans och öppnar Inställningar> Anslut ionssträngar. Exempel på ADO.NET-anslutningssträng. Ersätt platshållarvärdena för your_database
och your_password
. Anslutningssträng ser ut ungefär så här.
Viktigt!
- För Azure Database for PostgreSQL– enskild server använder du
user=adminusername@servername
. Observera att krävs@servername
. - För flexibel Azure Database for PostgreSQL-server använder du
user= adminusername
utan@servername
.
psql host={servername.postgres.database.azure.com} port=5432 dbname={your_database} user={adminusername} password={your_database_password} sslmode=require
Du använder anslutningssträng 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.