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:

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-AzBlueprint fö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.
  1. 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'
    
  2. Använd Export-AzBlueprintWithArtifact cmdleten 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]
  • 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
  1. Använd Import-AzBlueprintWithArtifact cmdleten 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:

Nästa steg