Konfigurace úložiště a databází

Dokončeno

Část procesu nasazení často vyžaduje připojení k databázím nebo službám úložiště. Toto připojení může být nezbytné k použití schématu databáze, přidání některých referenčních dat do databázové tabulky nebo k nahrání některých objektů blob. V této lekci se dozvíte, jak můžete rozšířit potrubí, aby mohlo pracovat s daty a úložnými službami.

Nakonfigurujte své databáze z pipeline.

Mnoho databází má schémat, které představují strukturu dat obsažených v databázi. Často je vhodné použít schéma pro vaši databázi z kanálu nasazení. Tento postup pomáhá zajistit, aby bylo vše, co vaše řešení potřebuje, nasazeno společně. Také zajišťuje, že pokud dojde k problému při použití schématu, váš pracovní postup zobrazí chybu. Tato chyba vám umožní problém opravit a znovu nasadit.

Při práci s Azure SQL je potřeba použít schémata databáze připojením k databázovému serveru a spouštěním příkazů pomocí skriptů SQL. Tyto příkazy jsou operace roviny dat. Vaše potrubí se musí autentizovat na databázovém serveru a následně spustit skripty. Azure Pipelines poskytuje SqlAzureDacpacDeployment úlohu, která se může připojit k databázovému serveru Azure SQL a spouštět příkazy.

Některé další služby pro data a úložiště nemusí být nakonfigurované pomocí rozhraní API roviny dat. Například při práci se službou Azure Cosmos DB ukládáte data do kontejneru . Kontejnery můžete nakonfigurovat pomocí řídicí roviny přímo ze souboru Bicep. Podobně můžete nasadit a spravovat většinu aspektů kontejnerů objektů blob služby Azure Storage v rámci Bicep. V dalším úkolu uvidíte příklad vytvoření blob kontejneru z Bicep.

Přidání dat

Řada řešení vyžaduje přidání referenčních dat do databází nebo účtů úložiště, než budou fungovat. Kanály můžou být vhodným místem pro přidání těchto dat. Po spuštění pipeliny je vaše prostředí plně nakonfigurované a připravené k použití.

Je také užitečné mít v databázích ukázková data, zejména pro neprodukční prostředí. Ukázková data pomáhají testerům a dalším lidem, kteří tato prostředí používají, aby mohli vaše řešení okamžitě otestovat. Tato data můžou zahrnovat ukázkové produkty nebo věci, jako jsou falešné uživatelské účty. Obecně platí, že tato data nechcete do produkčního prostředí přidávat.

Přístup, který použijete k přidání dat, závisí na používané službě. Například:

  • Pokud chcete přidat data do databáze Azure SQL, musíte spustit skript, podobně jako nakonfigurovat schéma.
  • Pokud chcete vložit data do služby Azure Cosmos DB, potřebujete získat přístup k rozhraní API roviny dat, které může vyžadovat, abyste napsali kód vlastního skriptu.
  • K nahrání blobů do kontejneru služby Azure Storage můžete použít různé nástroje ze skriptů, včetně aplikace příkazového řádku AzCopy, Azure PowerShell, nebo Azure CLI. Každý z těchto nástrojů umí se ověřit ve službě Azure Storage vaším jménem a také jak se připojit k rozhraní API pro přístup k datům k nahrání objektů blob.

Idempotence (v informatice, vlastnost operace, kdy opakované provedení nezmění výsledek).

Jednou z charakteristik kanálů nasazení a infrastruktury jako kódu je, že byste měli být schopni opakované nasazení bez nežádoucích vedlejších účinků. Když například znovu nasadíte dříve nasazený soubor Bicep, Azure Resource Manager porovná soubor, který jste odeslali, se stávajícím stavem vašich prostředků Azure. Pokud nedojde k žádným změnám, Resource Manager nic nedělá. Možnost opakovaného spuštění operace se nazývá idempotence. Je dobrým zvykem zajistit, aby vaše skripty a další kroky procesu byly idempotentní.

Idempotence je obzvláště důležitá při interakci s datovými službami, protože tyto služby udržují stav. Představte si, že ze svého pipeline vkládáte příkladového uživatele do databázové tabulky. Pokud nejste opatrní, při každém spuštění kanálu se vytvoří nový ukázkový uživatel. Tento výsledek pravděpodobně není to, co chcete.

Když použijete schémata pro databázi Azure SQL, můžete k nasazení schématu použít datový balíček, označovaný také jako soubor DACPAC. Kanál sestaví soubor DACPAC ze zdrojového kódu a vytvoří artefakt kanálu, podobně jako u aplikace. Poté fáze nasazení ve vašem sestavě nasazuje soubor DACPAC do databáze.

Diagram znázorňující publikování potrubí a odkazující na artefakt pojmenovaný databázi.

Když je soubor DACPAC nasazený, chová se idempotentním způsobem. Porovná cílový stav databáze se stavem definovaným v balíčku. V mnoha situacích to znamená, že nemusíte psát skripty, které se řídí principem idempotence, protože je nástroje zpracovávají za vás. Některé nástroje pro službu Azure Cosmos DB a Azure Storage se také chovají správně.

Při vytváření ukázkových dat v databázi Azure SQL nebo jiné službě úložiště, která automaticky nefunguje idempotentním způsobem. Je vhodné napsat skript tak, aby data byla vytvořena jenom v případě, že ještě neexistují.

Je také důležité zvážit, jestli budete muset vrátit zpět nasazení, například spuštěním starší verze procesu nasazení. Vrácení změn dat může být složité, proto pečlivě zvažte, jak řešení funguje, pokud potřebujete vrátit zpět.

Zabezpečení sítě

V některých případech můžete u některých prostředků Azure použít omezení sítě. Tato omezení můžou vynucovat pravidla týkající se požadavků prováděných v rovině dat prostředku, například:

  • Tento databázový server je přístupný jenom ze zadaného seznamu IP adres.
  • Tento účet úložiště je přístupný jenom z prostředků nasazených v rámci konkrétní virtuální sítě.

Omezení sítě jsou u databází běžná, protože se může zdát, že pro připojení k databázovému serveru není potřeba nic na internetu.

Síťová omezení ale mohou rovněž ztížit fungování nasazovacích potrubí s datovými rovinami zdrojů. Pokud používáte agenta kanálu hostovaného Microsoftem, jeho IP adresa nemůže být snadno známá předem a může být přiřazená z velkého fondu IP adres. Agenti kanálu hostovaní Microsoftem navíc nemůžou být připojeni k vašim vlastním virtuálním sítím.

Některé úlohy Azure Pipelines, které vám pomůžou s prováděním operací roviny dat, můžou tyto problémy obejít. Například úkol SqlAzureDacpacDeployment:

Diagram znázorňující proces aktualizace brány firewall

Když použijete úlohu SqlAzureDacpacDeployment pro práci s logickým serverem nebo databází Azure SQL, použije instanční objekt vašeho kanálu pro připojení k řídicí rovině logického serveru Azure SQL. Aktualizuje bránu firewall tak, aby agent potrubí mohl přistupovat k serveru z jeho IP adresy. Pak může úspěšně odeslat soubor nebo skript DACPAC pro spuštění . Úloha po dokončení automaticky odebere pravidlo brány firewall.

V jiných situacích není možné tyto typy výjimek vytvořit. V těchto případech zvažte použití samohostovaného agenta kanálu, který běží na virtuálním počítači nebo jiném výpočetním prostředku, který řídíte. Tento agent pak můžete nakonfigurovat podle svých potřeb. Může použít známou IP adresu nebo ji můžete připojit k vaší vlastní virtuální síti. V tomto modulu neprobíráme agenty v místním prostředí, ale na konci modulu poskytujeme odkazy na další informace na stránce Souhrn.

Vaše nasazovací pipelina

V dalším cvičení aktualizujete kanál nasazení a přidáte nové úlohy pro sestavení databázových komponent webu, nasazení databáze a přidání počátečních dat:

diagram zobrazující upravený kanál Včetně nového kroku sestavení databáze, kroku nasazení databáze a kroků počátečních dat v testovacím prostředí.