Sestavování a nasazování databázových projektů v GitHub Actions a Azure DevOps
Vzhledem k tomu, že databáze jsou integrálními součástmi větších řešení, musí vývojáři najít efektivní způsoby správy vývoje databází podobně jako způsob zpracování kódu aplikace. Tato úloha je obzvláště náročná, protože vývoj databází je úzce propojený s daty uloženými v databázi a přidává vrstvy složitosti.
Nástroje, jako jsou GitHub Actions a Azure DevOps Services , naštěstí nabízejí robustní řešení pro správu těchto složitostí. Obě platformy podporují nasazení DACPAC, což zjednodušuje proces nasazování změn databáze tím, že je zabalí do balíčku DAC (Data Tier Application Component). Tento přístup nejen zajišťuje konzistenci a spolehlivost v nasazeních databází, ale také bezproblémově integruje s kanály kontinuální integrace a průběžného nasazování (CI/CD), což vývojářům usnadňuje údržbu a aktualizaci databází spolu s kódem aplikace.
Příklady v této lekci předpokládají, že už máte:
- Předplatné Azure s oprávněními k vytváření a správě prostředků.
- Visual Studio Code nainstalovaný s následujícími rozšířeními:
- Účet GitHubu s privátním úložištěm GitHubu vytvořeným jako vlastník.
- Služba Azure SQL Database nakonfigurovaná s povoleným povolením přístupu ke službám Azure Rychlý start: Vytvoření izolované databáze Azure SQL Database
Použití GitHub Actions k připojení ke službě Azure SQL Database
Pomocí GitHub Actions se můžete připojit ke službě Azure SQL Database a publikovat projekty SQL pomocí souborů DACPAC.
Použití akcí GitHubu pro připojení ke službě Azure SQL Database má tři hlavní kroky.
- Naklonujte úložiště GitHub v editoru Visual Studio Code.
- Vytvořte databázový projekt v editoru Visual Studio Code.
- Nastavení kontinuální integrace (CI) pomocí GitHub Actions
Klonování úložiště GitHub
Úložiště GitHub, které jste vytvořili, můžete naklonovat pomocí následujícího postupu.
- V aplikaci Visual Studio Code vyberte Zobrazení>Paleta příkazů.
- Na paletě příkazů zadejte Git: Clone a pak ho vyberte.
- Zadejte adresu URL úložiště a vyberte Clone (Klonovat).
- Vyberte nebo vytvořte složku pro ukládání souborů úložiště.
Vytvoření databázového projektu v editoru Visual Studio Code
V editoru Visual Studio Code nastavte nový databázový projekt a uložte projekt do stejné složky, do které jste naklonovali úložiště GitHub.
Další informace o vytvoření databázového projektu v editoru Visual Studio Code najdete v tématu Vývoj sql Serveru pomocí editoru Visual Studio Code.
Po vytvoření databázového projektu přidejte kód pro úpravu služby Azure SQL Database. Pak je potvrďte zpět do úložiště GitHub, abyste měli jistotu, že jsou sledované a integrované do vašeho systému správy verzí.
Nastavení kontinuální integrace pomocí GitHub Actions
Pokud chcete nastavit kontinuální integraci (CI) pomocí GitHub Actions, vytvořte .yml v cestě v úložišti soubor /.github/workflows/ . Soubor .yml má dvě části.
- Nastavení ověřování
- Vytvoření pracovního postupu GitHubu
Nastavení ověřování konfiguruje tajné kódy GitHubu a druhá část vytvoří pracovní postup GitHub Actions.
Ověřování
Nejprve musíte vytvořit instanční objekt pomocí az ad sp create-for-rbac příkazu v Azure CLI. Ke spuštění následujícího kódu Azure CLI použijte Azure Cloud Shell na webu Azure Portal. Zástupné symboly nahraďte ID předplatného, názvem skupiny prostředků a názvem aplikace.
az ad sp create-for-rbac --name "myML" --role contributor --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> --json-auth
Výstupem je objekt JSON s přihlašovacími údaji pro přiřazení role. Uložte soubor, který uloží jako tajný kód GitHubu.
Za druhé vytvořte připojovací řetězec SQL. Můžete ho zkopírovat z webu Azure Portal. Ve službě Azure SQL Database otevřete připojovací řetězce nastavení>.
Zkopírujte ADO.NET připojovací řetězec a nahraďte zástupné hodnoty pro vaši databázi a heslo. Připojovací řetězec vypadá nějak takto:
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;
Tento připojovací řetězec se uloží také jako tajný kód GitHubu.
V úložišti GitHub přidáte tajné kódy do nastavení>Security ->Secrets and variables>Actions. Vytvořte nové tajné kódy s názvem AZURE_CREDENTIALS pro uložení textu JSON a AZURE_SQL_CONNECTION_STRING uložení připojovací řetězec.
Teď jste připraveni vytvořit pracovní postup.
Poznámka:
V produkčním prostředí zvažte použití spravovaných identit pro vaši akci GitHubu pro přístup k databázi místo ověřování SQL. Další informace najdete v tématu Spravované identity v Microsoft Entra pro Azure SQL.
Vytvoření pracovního postupu GitHubu
V úložišti GitHub vyberte Akce a nastavte pracovní postup sami. Otevře se prázdný soubor main.yml .
Teď můžete vytvořit soubor YAML. Podrobné informace o syntaxi a pokynech najdete v pracovním postupu pro GitHub Actions. Například název: značka určuje název pracovního postupu, zatímco hodnota on určuje události, které aktivují spuštění pracovního postupu.
Tip
Rychlý start pro GitHub Actions vám pomůže začít pracovat s dalšími funkcemi GitHub Actions.
Nasazení azure SQL Database s využitím Azure DevOps Services
Aktualizace můžete také nasadit do služby Azure SQL Database pomocí Azure DevOps Services. Abyste mohli začít, budete potřebovat účet Azure DevOps Services, systém správy verzí (například Azure Repos nebo GitHub) a Visual Studio Code s nainstalovaným rozšířením SLUŽBY SQL Database.
Azure DevOps Services zahrnuje Azure Pipelines, které automaticky sestavují, testují a nasazují kód. Pomocí Služby Azure Pipelines můžete podporovat kontinuální integraci a průběžné nasazování (CI/CD) úprav azure SQL Database v rámci projektu. Tato integrace zajišťuje, že se změny databáze konzistentně a spolehlivě použijí.
Azure Pipelines se bezproblémově integrují s různými systémy správy verzí, včetně GitHubu a Azure Repos. Azure Pipelines umožňuje spouštět skripty SQL jako součást kanálu pomocí skriptů Azure PowerShellu k vytváření a odebírání pravidel brány firewall v Azure, což zajišťuje bezpečnou a efektivní správu databází.
Další informace o možnostech nasazení služby Azure SQL Database najdete v tématu Nasazení databáze Azure SQL v dokumentaci ke službě Azure DevOps Services.