Importera och exportera skissdefinitioner med PowerShell
Azure Blueprints kan hanteras helt via Azure Portal. I och med att organisationer använder Azure Blueprints bör de börja tänka på skissdefinitioner som hanterad kod. Det här begreppet kallas ofta infrastruktur som kod (IaC). Att behandla dina skissdefinitioner som kod ger ytterligare fördelar utöver vad Azure Portal erbjuder. Här är några av de här fördelarna:
- Dela skissdefinitioner
- Kopiera skissdefinitionerna
- Återanvända skissdefinitioner i olika klienter eller prenumerationer
- Placera skissdefinitionerna i källkontrollen
- Automatiserad testning av skissdefinitioner i testmiljöer
- Stöd för pipelines för kontinuerlig integrering och kontinuerlig distribution (CI/CD)
Oavsett anledning har hanteringen av skissdefinitionerna som kod fördelar. Den här artikeln visar hur du använder Import-AzBlueprintWithArtifact Export-AzBlueprintWithArtifact kommandona och i modulen Az.Blueprint.
Förutsättningar
Den här artikeln förutsätter en måttlig arbetskunskap om Azure Blueprints. Om du inte har gjort det ännu kan du gå igenom följande artiklar:
- Skapa en skiss i portalen
- Läs mer om distributionsfaser och livscykeln för skissen
- Skapa och hantera skissdefinitioner och tilldelningar med PowerShell
Om den inte redan är installerad följer du anvisningarna i Lägg till Az.Blueprint-modulen för att installera och verifiera Az.Blueprint-modulen från PowerShell-galleriet.
Mappstruktur för en skissdefinition
Innan vi tittar på export och import av skisser ska vi titta på hur de filer som utgör skissdefinitionen är strukturerade. En skissdefinition ska lagras i en egen mapp.
Viktigt
Om inget värde skickas till parametern Name för cmdleten används namnet på mappen Import-AzBlueprintWithArtifact som skissdefinitionen lagras i.
Tillsammans med skissdefinitionen, som måste ha namnet blueprint.json , är de artefakter som skissdefinitionen består av. Varje artefakt måste finnas i undermappen med namnet artifacts .
Tillsammans bör strukturen för skissdefinitionen som JSON-filer i mappar se ut så här:
.
|
|- MyBlueprint/ _______________ # Root folder name becomes default name of blueprint definition
| |- blueprint.json __________ # The blueprint definition. Fixed name.
|
| |- artifacts/ ______________ # Subfolder for all blueprint artifacts. Fixed name.
| |- artifact.json ________ # Blueprint artifact as JSON file. Artifact named from file.
| |- ...
| |- more-artifacts.json
Exportera skissdefinitionen
Stegen för att exportera skissdefinitionen är enkla. Att exportera skissdefinitionen kan vara användbart för att dela, säkerhetskopiera eller placera i källkontroll.
- Skiss [krävs]
- Anger skissdefinitionen
- Använd
Get-AzBlueprintför att hämta referensobjektet
- OutputPath [krävs]
- Anger sökvägen för att spara skissdefinitionens JSON-filer till
- Utdatafilerna finns i en undermapp med namnet på skissdefinitionen
- Version (valfritt)
- Anger vilken version som ska matas ut om skissreferensobjektet innehåller referenser till mer än en version.
Hämta en referens till skissdefinitionen för att exportera från prenumerationen som representeras som
{subId}:# Login first with Connect-AzAccount if not using Cloud Shell # Get version '1.1' of the blueprint definition in the specified subscription $bpDefinition = Get-AzBlueprint -SubscriptionId '{subId}' -Name 'MyBlueprint' -Version '1.1'Använd
Export-AzBlueprintWithArtifactcmdleten för att exportera den angivna skissdefinitionen:Export-AzBlueprintWithArtifact -Blueprint $bpDefinition -OutputPath 'C:\Blueprints'
Importera skissdefinitionen
När du antingen har en exporterad skissdefinition eller har en manuellt skapad skissdefinition i den mappstruktur som krävs kandu importera skissdefinitionen till en annan hanteringsgrupp eller prenumeration.
Exempel på inbyggda skissdefinitioner finns i Azure Blueprints GitHub lagringsplatsen.
- Namn [krävs]
- Anger namnet på den nya skissdefinitionen
- InputPath [krävs]
- Anger sökvägen för att skapa skissdefinitionen från
- Måste matcha den mappstruktur som krävs
- ManagementGroupId (valfritt)
- Hanteringsgruppens ID för att spara skissdefinitionen till om inte den aktuella kontextstandarden
- Antingen ManagementGroupId eller SubscriptionId måste anges
- SubscriptionId (valfritt)
- Prenumerations-ID:t som skissdefinitionen ska sparas till om inte den aktuella kontextens standardvärde
- Antingen ManagementGroupId eller SubscriptionId måste anges
Använd
Import-AzBlueprintWithArtifactcmdleten för att importera den angivna skissdefinitionen:# Login first with Connect-AzAccount if not using Cloud Shell Import-AzBlueprintWithArtifact -Name 'MyBlueprint' -ManagementGroupId 'DevMG' -InputPath 'C:\Blueprints\MyBlueprint'
När skissdefinitionen har importerats tilldelar du den med PowerShell.
Information om hur du skapar avancerade skissdefinitioner finns i följande artiklar:
- Använd statiska och dynamiska parametrar.
- Anpassa sekvensordningen för skissen.
- Skydda distributioner med resurslåsning för skisser.
- Hantera skisser som kod.
Nästa steg
- Mer information om livscykeln för en skiss.
- Förstå hur du använder statiska och dynamiska parametrar.
- Lär dig hur du anpassar sekvensordningen för en skiss.
- Lär dig hur du använder resurslåsning för en skiss.
- Lös problem som kan uppstå vid tilldelningen av en skiss med allmän felsökning.