Použití GitHub Actions k připojení ke službě Azure SQL Database

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

Požadavky

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:

Oddíl Úlohy
Authentication 1.1. Vygenerujte přihlašovací údaje pro nasazení.
Nasazení 1. Nasaďte databázi.

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

Pomocí příkazu az ad sp create-for-rbac v Azure CLI vytvořte instanční objekt. Spusťte tento příkaz pomocí Azure Cloud Shellu na webu Azure Portal nebo výběrem tlačítka Vyzkoušet .

az ad sp create-for-rbac --name "myML" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
                            --json-auth

--json-auth Parametr je k dispozici ve verzích >Azure CLI = 2.51.0. Verze před tímto použitím --sdk-auth s upozorněním na vyřazení.

V předchozím příkladu nahraďte zástupné symboly ID vašeho předplatného, názvem skupiny prostředků a názvem aplikace. Výstupem je objekt JSON s přihlašovacími údaji pro přiřazení role, které poskytují přístup k vaší aplikaci App Service podobně jako v následujícím příkladu. Zkopírujte tento objekt JSON pro pozdější použití.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
  }

Kopírování připojovací řetězec SQL

Na webu Azure Portal přejděte do služby Azure SQL Database a otevřete Nastavení> Připojení ionové řetězce. Zkopírujte připojovací řetězec pro ADO.NET. Nahraďte zástupné hodnoty pro your_database a your_password. Připojovací řetězec vypadá podobně jako tento výstup.

Server=tcp:my-sql-server.database.windows.net,1433;Initial Catalog={your-database};Persist Security Info=False;User ID={admin-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

Připojovací řetězec nastavíte jako tajný kód AZURE_SQL_CONNECTION_STRINGGitHubu.

Konfigurace tajných kódů GitHubu

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

  2. V navigační nabídce přejděte na Nastavení.

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

    Screenshot of adding a secret

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

  5. Celý výstup JSON z příkazu Azure CLI vložte do pole hodnoty tajného kódu. Dejte tajnému názvu AZURE_CREDENTIALS.

  6. Vyberte Add secret (Přidat tajný kód).

Přidání tajného kódu SQL připojovací řetězec

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

  2. V navigační nabídce přejděte na Nastavení.

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

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

  5. Vložte připojovací řetězec SQL. Dejte tajnému názvu AZURE_SQL_CONNECTION_STRING.

  6. Vyberte Add secret (Přidat tajný kód).

Přidání pracovního postupu

  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: SQL for GitHub Actions
    
    on:
        push:
            branches: [ main ]
        pull_request:
            branches: [ main ]
    
  4. Přejmenujte pracovní postup SQL 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ého kódu GitHubu AZURE_CREDENTIALS , který jste vytvořili dříve.

    name: SQL for GitHub Actions
    
    on:
        push:
            branches: [ main ]
        pull_request:
            branches: [ main ]
    
    jobs:
        build:
            runs-on: windows-latest
            steps:
             - uses: actions/checkout@v1
             - uses: azure/login@v1
               with:
                creds: ${{ secrets.AZURE_CREDENTIALS }}
    

  1. Pomocí akce Nasazení Azure SQL se připojte k vaší instanci SQL. Na kořenové úrovni úložiště byste měli mít balíček dacpac (Database.dacpac). Použijte tajný klíč GitHubu AZURE_SQL_CONNECTION_STRING , který jste vytvořili dříve.

    - uses: azure/sql-action@v2
      with:
        connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
        path: './Database.dacpac'
        action: 'Publish'
    
  2. 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: SQL for GitHub Actions
    
    on:
        push:
            branches: [ main ]
        pull_request:
            branches: [ main ]
    
    jobs:
        build:
            runs-on: windows-latest
            steps:
             - uses: actions/checkout@v1
             - uses: azure/login@v1
               with:
                creds: ${{ secrets.AZURE_CREDENTIALS }}
             - uses: azure/sql-action@v2
               with:
                connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
                path: './Database.dacpac'
                action: 'Publish'
    
                # Azure logout 
             - name: logout
               run: |
                  az logout
    

Kontrola 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.

    Log of GitHub actions run

Vyčištění prostředků

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

Další kroky