Sdílet prostřednictvím


Rychlý start: Připojení ke službě Azure Database for PostgreSQL pomocí GitHub Actions

Začínáme s GitHub Actions pomocí pracovního postupu k nasazení aktualizací databáze do Azure Database for PostgreSQL

Prerequisites

Potřebujete:

Přehled souboru pracovního postupu

Pracovní postup GitHub Actions je definovaný souborem YAML (.yml) v /.github/workflows/ cestě ve vašem úložišti. Tato definice obsahuje různé kroky a parametry, které tvoří pracovní postup.

Soubor má dvě části:

Section Tasks
Authentication 1. Vygenerujte přihlašovací údaje pro nasazení.
Deploy 1. Nasaďte databázi.

Generování přihlašovacích údajů pro nasazení

Pokud chcete použít akci přihlášení k Azure s OIDC, musíte nakonfigurovat přihlašovací údaje federované identity v aplikaci Microsoft Entra nebo spravované identitě přiřazené uživatelem.

Možnost 1: Aplikace Microsoft Entra

  • Vytvořte aplikaci Microsoft Entra s oprávněním služby pomocí Azure portálu , příkazového nástroje Azure CLI , nebo modulu Azure PowerShell .
  • Zkopírujte hodnoty ID klienta, ID předplatnéhoa ID adresáře (tenanta), abyste je mohli použít později v pracovním postupu GitHub Actions.
  • Přiřaďte k instančnímu objektu příslušnou roli pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu.
  • Nakonfigurujte federované identitní pověření v aplikaci Microsoft Entra tak, aby důvěřovalo tokenům vydaným GitHub Actions pro vaše úložiště na GitHubu.

možnost 2: Spravovaná identita přiřazená uživatelem

Zkopírujte připojovací řetězec Azure Database for PostgreSQL

Na webu Azure Portal přejděte do instance flexibilního serveru Azure Database for PostgreSQL a v nabídce prostředků v části Nastavení vyberte Připojit. Na této stránce pomocí pole se seznamem Název databáze vyberte název databáze, ke které se chcete připojit. Rozbalte část Připojení z vaší aplikace, zkopírujte připojovací řetězec ADO.NET a nahraďte zástupnou hodnotu {your_password} skutečným heslem. Připojovací řetězec vypadá podobně jako tento.

Server={servername.postgres.database.azure.com};Database={your_database};Port=5432;User Id={adminusername};Password={your_password};Ssl Mode=Require;

Připojovací řetězec použijete jako tajný klíč GitHubu.

Konfigurace tajných kódů GitHubu

Musíte zadat ID klienta vaší aplikace, ID adresáře (tenanta)a ID předplatného pro akci přihlášení. Tyto hodnoty je možné zadat buď přímo v pracovním postupu, nebo je můžete uložit v tajných kódech GitHubu a odkazovat na je ve vašem pracovním postupu. Uložením hodnot jako tajných kódů GitHubu je bezpečnější možnost.

  1. Na GitHubu přejděte do svého úložiště.

  2. Vyberte > tajných kódů zabezpečení > a proměnných.

    Snímek obrazovky s přidáním tajného kódu

  3. Vyberte Nový tajný klíč úložiště.

    Poznámka:

    Pokud chcete zvýšit zabezpečení pracovních postupů ve veřejných úložištích, použijte tajných kódů prostředí místo tajných kódů úložiště. Pokud prostředí vyžaduje schválení, úloha nemůže získat přístup k tajným kódům prostředí, dokud ho některý z požadovaných kontrolorů neschválí.

  4. Vytváření tajných kódů pro AZURE_CLIENT_ID, AZURE_TENANT_IDa AZURE_SUBSCRIPTION_ID. Zkopírujte tyto hodnoty z vaší aplikace Microsoft Entra nebo spravované identity přiřazené uživatelem pro tajné kódy GitHubu:

    Tajný kód GitHubu Aplikace Microsoft Entra nebo spravovaná identita přiřazená uživatelem
    AZURE_CLIENT_ID ID klienta
    AZURE_SUBSCRIPTION_ID Identifikátor předplatného
    AZURE_TENANT_ID ID adresáře (klienta)

    Poznámka:

    Z bezpečnostních důvodů doporučujeme místo předávání hodnot přímo pracovnímu postupu používat tajné kódy GitHubu.

Přidejte svůj pracovní postup

  1. Přejděte na Akce pro úložiště GitHub.

  2. Vyberte Nastavit pracovní postup sami.

  3. Odstraňte všechno za oddílem on: souboru pracovního postupu. Váš zbývající pracovní postup může například vypadat takto.

    name: CI
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
  4. Přejmenujte pracovní postup PostgreSQL for GitHub Actions a přidejte akce rezervace a přihlášení. Tyto akce si projděte kód webu a ověřte se v Azure pomocí tajných kódů GitHubu, které jste vytvořili dříve.

    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@v2
        with:
            client-id: ${{ secrets.AZURE_CLIENT_ID }}
            tenant-id: ${{ secrets.AZURE_TENANT_ID }}
            subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
    
  5. Pomocí akce Nasazení Azure PostgreSQL se připojte k instanci flexibilního serveru Azure Database for PostgreSQL. Nahraďte POSTGRESQL_SERVER_NAME názvem serveru. Měli byste mít datový soubor Azure Database for PostgreSQL pojmenovaný data.sql na kořenové úrovni úložiště.

     - uses: azure/postgresql@v1
       with:
        connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }}
        server-name: POSTGRESQL_SERVER_NAME
        plsql-file: './data.sql'
    
  6. Dokončete pracovní postup přidáním akce pro odhlášení z Azure. Tady je dokončený pracovní postup. Soubor se zobrazí ve .github/workflows složce úložiště.

    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@v2
        with:
            client-id: ${{ secrets.AZURE_CLIENT_ID }}
            tenant-id: ${{ secrets.AZURE_TENANT_ID }}
            subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
    
    - 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
    

Zkontrolujte své nasazení

  1. Přejděte na Akce pro úložiště GitHub.

  2. Otevřete první výsledek a prohlédněte si podrobné protokoly spuštění pracovního postupu.

    Protokol spuštění GitHub Actions

Vyčistěte zdroje

Pokud už databázi a úložiště Azure Database for PostgreSQL nepotřebujete, vyčistěte prostředky, které jste nasadili, odstraněním skupiny prostředků a úložiště GitHub.