Automatisera kontinuerlig integrering med Azure Pipelines-versioner
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Följande är en guide för att konfigurera en Azure Pipelines-version som automatiserar distributionen av en datafabrik till flera miljöer.
Krav
En Azure-prenumeration som är länkad till Azure DevOps Server (tidigare Visual Studio Team Foundation Server) eller Azure Repos som använder Azure Resource Manager-tjänstslutpunkten.
En datafabrik som konfigurerats med Azure Repos Git-integrering.
Ett Azure-nyckelvalv som innehåller hemligheterna för varje miljö.
Konfigurera en Azure Pipelines-version
I Azure DevOps öppnar du projektet som har konfigurerats med din datafabrik.
Till vänster på sidan väljer du Pipelines och sedan Versioner.
Välj Ny pipeline, eller om du har befintliga pipelines väljer du Ny och sedan Ny versionspipeline.
Välj mallen Tomt jobb .
I rutan Fasnamn anger du namnet på din miljö.
Välj Lägg till artefakt och välj sedan git-lagringsplatsen som konfigurerats med din utvecklingsdatafabrik. Välj publiceringsgrenen för lagringsplatsen för standardgrenen. Som standard är
adf_publish
den här publiceringsgrenen . Som Standardversion väljer du Senaste från standardgrenen.Lägg till en Azure Resource Manager-distributionsuppgift:
I fasvyn väljer du Visa stegaktiviteter.
Skapa en ny uppgift. Sök efter ARM-malldistribution och välj sedan Lägg till.
I distributionsaktiviteten väljer du prenumerationen, resursgruppen och platsen för måldatafabriken. Ange autentiseringsuppgifter om det behövs.
I listan Åtgärd väljer du Skapa eller uppdatera resursgrupp.
Välj ellipsknappen (...) bredvid rutan Mall . Bläddra efter Azure Resource Manager-mallen som genereras i publiceringsgrenen för den konfigurerade git-lagringsplatsen. Leta efter filen
ARMTemplateForFactory.json
i <mappen FactoryName> för grenen adf_publish. Mer information om hur du använder länkade ARM-mallar finns i Distribuera länkade ARM-mallar med VSTS och Använda länkade mallar.Välj ... bredvid rutan Mallparametrar för att välja parameterfilen. Leta efter filen
ARMTemplateParametersForFactory.json
i >mappen FactoryName< för grenen adf_publish.Välj ... bredvid rutan Åsidosätt mallparametrar och ange önskade parametervärden för måldatafabriken. För autentiseringsuppgifter som kommer från Azure Key Vault anger du hemlighetens namn mellan dubbla citattecken. Om till exempel hemlighetens namn är cred1 anger du "$(cred1)" för det här värdet.
Välj Inkrementell för distributionsläget.
Varning
I fullständigt distributionsläge tas resurser som finns i resursgruppen men som inte anges i den nya Resource Manager-mallen bort. Mer information finns i Distributionslägen för Azure Resource Manager
Spara versionspipelinen.
Om du vill utlösa en version väljer du Skapa version. Information om hur du automatiserar skapandet av versioner finns i Azure DevOps-versionsutlösare
Viktigt!
I CI/CD-scenarier måste integreringskörningstypen (IR) i olika miljöer vara densamma. Om du till exempel har en lokalt installerad IR i utvecklingsmiljön måste samma IR också vara av typen self-hosted i andra miljöer, till exempel test och produktion. Om du delar integreringskörningar i flera steg måste du på samma sätt konfigurera integreringskörningarna som länkade lokalt i alla miljöer, till exempel utveckling, test och produktion.
Hämta hemligheter från Azure Key Vault
Om du har hemligheter att skicka in en Azure Resource Manager-mall rekommenderar vi att du använder Azure Key Vault med Azure Pipelines-versionen.
Det finns två sätt att hantera hemligheter:
Lägg till hemligheterna i parameterfilen. Mer information finns i Använda Azure Key Vault för att skicka säkert parametervärde under distributionen.
Skapa en kopia av parameterfilen som laddas upp till publiceringsgrenen. Ange värdena för de parametrar som du vill hämta från Key Vault med det här formatet:
{ "parameters": { "azureSqlReportingDbPassword": { "reference": { "keyVault": { "id": "/subscriptions/<subId>/resourceGroups/<resourcegroupId> /providers/Microsoft.KeyVault/vaults/<vault-name> " }, "secretName": " < secret - name > " } } } }
När du använder den här metoden hämtas hemligheten automatiskt från nyckelvalvet.
Parameterfilen måste också finnas i publiceringsgrenen.
Lägg till en Azure Key Vault-uppgift före Azure Resource Manager-distributionsaktiviteten som beskrivs i föregående avsnitt:
Skapa en ny aktivitet på fliken Uppgifter . Sök efter Azure Key Vault och lägg till det.
I Key Vault-aktiviteten väljer du den prenumeration där du skapade nyckelvalvet. Ange autentiseringsuppgifter om det behövs och välj sedan nyckelvalvet.
Bevilja behörigheter till Azure Pipelines-agenten
Azure Key Vault-uppgiften kan misslyckas med ett felmeddelande om nekad åtkomst om rätt behörigheter inte har angetts. Ladda ned loggarna för versionen och leta upp ps1-filen som innehåller kommandot för att ge behörighet till Azure Pipelines-agenten. Du kan köra kommandot direkt. Eller så kan du kopiera huvudnamns-ID:t från filen och lägga till åtkomstprincipen manuellt i Azure-portalen. Get
och List
är de minsta behörigheter som krävs.
Uppdatera aktiva utlösare
Installera de senaste Azure PowerShell-modulerna enligt instruktionerna i Installera och konfigurera Azure PowerShell.
Varning
Om du inte använder de senaste versionerna av PowerShell- och Data Factory-modulen kan du stöta på deserialiseringsfel när du kör kommandona.
Distributionen kan misslyckas om du försöker uppdatera aktiva utlösare. Om du vill uppdatera aktiva utlösare måste du stoppa dem manuellt och sedan starta om dem efter distributionen. Du kan göra detta med hjälp av en Azure PowerShell-uppgift:
På fliken Uppgifter i versionen lägger du till en Azure PowerShell-uppgift . Välj uppgiftsversion den senaste Azure PowerShell-versionen.
Välj den prenumeration som din fabrik är i.
Välj Skriptfilsökväg som skripttyp. Detta kräver att du sparar PowerShell-skriptet på lagringsplatsen. Följande PowerShell-skript kan användas för att stoppa utlösare:
$triggersADF = Get-AzDataFactoryV2Trigger -DataFactoryName $DataFactoryName -ResourceGroupName $ResourceGroupName $triggersADF | ForEach-Object { Stop-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.name -Force }
Du kan utföra liknande steg (med Start-AzDataFactoryV2Trigger
funktionen) för att starta om utlösarna efter distributionen.
Datafabriksteamet har tillhandahållit ett exempel på skript före och efter distributionen.
Kommentar
Använd PrePostDeploymentScript.Ver2.ps1 om du bara vill inaktivera/aktivera utlösare som har ändrats i stället för att aktivera alla utlösare/ under CI/CD.
Varning
Se till att använda PowerShell Core i ADO-uppgiften för att köra skriptet