Použití GitHub Actions k připojení ke službě Azure SQL Database
Platí pro: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:
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Úložiště GitHub s balíčkem dacpac (
Database.dacpac
). Pokud nemáte účet GitHubu, zaregistrujte se zdarma. - An Azure SQL Database. Rychlý start: Vytvoření izolované databáze Azure SQL Database
- Soubor .dacpac, který chcete importovat do databáze.
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:
Sekce | Ú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í
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 instančnímu objektu příslušnou roli portálu Azure , Azure CLInebo Azure PowerShell.
- 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
- Vytvořte uživatelsky přiřazenou spravovanou identitu.
- 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řadit odpovídající roli spravované identitě přiřazené uživatelem.
- Nakonfigurujte pověření federované identity pro spravovanou identitu přiřazenou uživatelem, aby důvěřovala tokenům vydaným GitHub Actions ve vašem úložišti GitHub.
Kopírování připojovací řetězec SQL
Na webu Azure Portal přejděte do služby Azure SQL Database a otevřete připojovací řetězce nastavení>. Zkopírujte připojovací řetězec pro ADO.NET. Nahraďte zástupné hodnoty pro your_database
a your_password
.
Připojovací řetězec nastavíte jako tajný kód AZURE_SQL_CONNECTION_STRING
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.
Na GitHubu přejděte do svého úložiště.
Vyberte > tajných kódů zabezpečení > a proměnných.
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í.
Vytváření tajných kódů pro
AZURE_CLIENT_ID
,AZURE_TENANT_ID
aAZURE_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 Subscription ID 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řidání tajného kódu SQL připojovací řetězec
Na GitHubu přejděte do svého úložiště.
V navigační nabídce přejděte na Nastavení .
Vyberte > tajných kódů zabezpečení > a proměnných.
Vyberte Nový tajný klíč úložiště.
Vložte připojovací řetězec SQL. Dejte tajnému názvu
AZURE_SQL_CONNECTION_STRING
.Vyberte Add secret (Přidat tajný kód).
Přidání pracovního postupu
Přejděte na Akce pro úložiště GitHub.
Vyberte Nastavit pracovní postup sami.
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 ]
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 GitHubuAZURE_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 }}
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íč GitHubuAZURE_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'
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í
Přejděte na Akce pro úložiště GitHub.
Otevřete první výsledek a prohlédněte si podrobné protokoly spuštění pracovního postupu.
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.