Quickstart: GitHub Actions gebruiken om verbinding te maken met Azure Database for PostgreSQL - Flexible Server
VAN TOEPASSING OP: Azure Database for PostgreSQL - Flexibele server
Ga aan de slag met GitHub Actions met behulp van een werkstroom voor het implementeren van database-updates op flexibele Azure Database for PostgreSQL-server.
Vereisten
U hebt het volgende nodig:
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een GitHub-opslagplaats met voorbeeldgegevens (
data.sql
). Als u geen GitHub-account hebt, kunt u zich gratis registreren. - Een exemplaar van een flexibele Azure Database for PostgreSQL-server.
Overzicht van werkstroom bestand
Een GitHub Actions-werkstroom wordt gedefinieerd door een YAML-bestand (.yml) in het pad /.github/workflows/
in uw opslagplaats. Deze definitie bevat de verschillende stappen en parameters die deel uitmaken van de werkstroom.
Het bestand heeft twee secties:
Sectie | Opdrachten |
---|---|
Verificatie | 1. Implementatiereferenties genereren. |
Implementatie | 1. Implementeer de database. |
Genereer implementatiereferenties
Maak een service-principal met de opdracht az ad sp create-for-rbac in de Azure CLI. Voer deze opdracht uit met Azure Cloud Shell in de Azure Portal of door de knop Uitproberen te selecteren.
az ad sp create-for-rbac --name "myML" --role contributor \
--scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
--json-auth
De parameter --json-auth
is beschikbaar in Azure CLI-versies >= 2.51.0. Versies vóór dit gebruik --sdk-auth
met een afschaffingswaarschuwing.
Vervang in het bovenstaande voorbeeld de tijdelijke aanduidingen door uw abonnements-id, resourcegroepnaam en app-naam. De uitvoer is een JSON-object met de roltoewijzingsreferenties die toegang bieden tot uw App Service-app, vergelijkbaar met hieronder. Kopieer dit JSON-object voor later gebruik.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
De flexibele Azure Database for PostgreSQL-server kopiëren verbindingsreeks
Ga in Azure Portal naar uw exemplaar van flexibele Azure Database for PostgreSQL-servers en selecteer verbinding maken in het resourcemenu onder Instellingen. Gebruik op die pagina de keuzelijst met databasenamen om de naam te selecteren van de database waarmee u verbinding wilt maken. Vouw de sectie Verbinding maken vanuit uw app uit en kopieer ADO.NET verbindingsreeks en vervang de waarde {your_password}
van de tijdelijke aanduiding door uw werkelijke wachtwoord. De verbindingsreeks ziet er ongeveer als volgt uit.
Server={servername.postgres.database.azure.com};Database={your_database};Port=5432;User Id={adminusername};Password={your_password};Ssl Mode=Require;
U gebruikt de verbindingsreeks als gitHub-geheim.
De GitHub-geheimen configureren
Ga in GitHub naar uw opslagplaats.
Ga naar Instellingen in het navigatiemenu.
Selecteer Acties voor beveiligingsgeheimen > en variabelen>.
Selecteer Nieuw opslagplaatsgeheim.
Plak de volledige JSON-uitvoer van de Azure CLI-opdracht in het waardeveld van het geheim. Geef het geheim de naam
AZURE_CREDENTIALS
.Selecteer Geheim toevoegen.
Voeg uw werkstroom toe
Ga naar Acties voor uw GitHub-opslagplaats.
Selecteer Uw werkstroom zelf instellen.
Verwijder alles na de sectie
on:
van uw werkstroombestand. Uw resterende werkstroom kan er bijvoorbeeld als volgt uitzien.name: CI on: push: branches: [ main ] pull_request: branches: [ main ]
Wijzig de naam van uw werkstroom
PostgreSQL for GitHub Actions
en voeg de acties voor uitchecken en aanmelden toe. Met deze acties controleert u uw sitecode en verifieert u met Azure met behulp van de GitHub-geheimen die u eerder hebt gemaakt.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 }}
Gebruik de azure PostgreSQL-implementatieactie om verbinding te maken met uw flexibele Azure Database for PostgreSQL-serverexemplaren. Vervang
POSTGRESQL_SERVER_NAME
door de naam van uw server. U moet beschikken over een azure Database for PostgreSQL Flexible Server-gegevensbestand met de naamdata.sql
op het hoofdniveau van uw opslagplaats.- uses: azure/postgresql@v1 with: connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }} server-name: POSTGRESQL_SERVER_NAME plsql-file: './data.sql'
Voltooi uw werkstroom door een actie toe te voegen om u af te melden bij Azure. Dit is de voltooide werkstroom. Het bestand wordt weergegeven in de
.github/workflows
map van uw opslagplaats.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
Beoordeel uw implementatie
Ga naar Acties voor uw GitHub-opslagplaats.
Open het eerste resultaat om gedetailleerde logboeken van de uitvoering van de werkstroom weer te geven.
Resources opschonen
Wanneer uw flexibele Server-database en -opslagplaats van Azure Database for PostgreSQL niet meer nodig zijn, moet u de resources opschonen die u hebt geïmplementeerd door de resourcegroep en uw GitHub-opslagplaats te verwijderen.