Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Azure Blueprints (förhandsversion) kommer att dras tillbaka den 31 januari 2027, med en stegvis pensionering från och med 31 juli 2026. Migrera dina befintliga skissdefinitioner och tilldelningar till distributionsstackar (rekommenderas) och mallspecifikationer. Skissartefakter konverteras till ARM JSON-mallar eller Bicep filer som används för att definiera distributionsstackar. Den fullständiga stegvisa tidslinjen, påverkan och vanliga frågor och svar finns i Azure Blueprints pensionering eller https://aka.ms/AzureBlueprintsRetirement. Information om hur du skapar en artefakt som en ARM-resurs finns i:
I den här självstudien lär du dig att använda Azure Blueprints för att utföra några vanliga uppgifter som rör att skapa, publicera och tilldela en skiss i din organisation. Den här färdigheten hjälper dig att definiera vanliga mönster för att utveckla återanvändbara och snabbt distribuerade konfigurationer, baserat på Azure Resource Manager-mallar (ARM), principer och säkerhet.
Förutsättningar
- Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
- Om du inte har använt Azure Blueprints tidigare registrerar du resursprovidern via Azure CLI med
az provider register --namespace Microsoft.Blueprint.
Azure Cloud Shell
Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln, utan att behöva installera något i din lokala miljö.
Så här startar du Azure Cloud Shell:
| Alternativ | Exempel/länk |
|---|---|
| Välj Prova i det övre högra hörnet av ett kod- eller kommandoblock. Om du väljer Prova kopieras inte koden eller kommandot automatiskt till Cloud Shell. |
|
| Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. |
|
| Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. |
|
Så här använder du Azure Cloud Shell:
Starta Cloud Shell.
Välj knappen Kopiera i ett kodblock (eller kommandoblock) för att kopiera koden eller kommandot.
Klistra in koden eller kommandot i Cloud Shell-sessionen genom att välja Ctrl+Skift+V i Windows och Linux, eller genom att välja Cmd+Shift+V på macOS.
Välj Retur för att köra koden eller kommandot.
Lägg till skisstillägget
Om du vill göra det möjligt för Azure CLI att hantera skissdefinitioner och tilldelningar måste du lägga till tillägget. Det här tillägget fungerar oavsett var du kan använda Azure CLI. Detta inkluderar bash på Windows 10, Cloud Shell (både den fristående versionen och den i portalen), Azure CLI Docker-avbildningen eller ett tillägg som är lokalt installerat.
Kontrollera att det senaste Azure CLI är installerat (minst 2.0.76). Om den ännu inte är installerad följer du de här instruktionerna.
I valfri Azure CLI-miljö importerar du tillägget med följande kommando:
# Add the Blueprint extension to the Azure CLI environment az extension add --name blueprintKontrollera att tillägget har installerats och är den förväntade versionen (minst 0.1.0):
# Check the extension list (note that you might have other extensions installed) az extension list # Run help for extension options az blueprint -h
Skapa en skiss
Det första steget när du definierar ett standardmönster för efterlevnad är att skapa en skiss från de tillgängliga resurserna. Nu ska vi skapa en skiss med namnet MyBlueprint för att konfigurera roll- och principtilldelningar för prenumerationen. Sedan lägger du till en resursgrupp, en ARM-mall och en rolltilldelning i resursgruppen.
Kommentar
När du använder Azure CLI skapas skissobjektet först. För varje artefakt som ska läggas till som har parametrar definierar du parametrarna i förväg på den första skissen.
Skapa det första skissobjektet. Parametern
parameterstar en JSON-fil som innehåller alla parametrar på skissnivå. Du anger parametrarna under tilldelningen och de används av artefakterna som du lägger till i senare steg.JSON-fil – blueprintparms.json
{ "storageAccountType": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_ZRS", "Premium_LRS" ], "metadata": { "displayName": "storage account type.", "description": null } }, "tagName": { "type": "string", "metadata": { "displayName": "The name of the tag to provide the policy assignment.", "description": null } }, "tagValue": { "type": "string", "metadata": { "displayName": "The value of the tag to provide the policy assignment.", "description": null } }, "contributors": { "type": "array", "metadata": { "description": "List of AAD object IDs that is assigned Contributor role at the subscription", "strongType": "PrincipalId" } }, "owners": { "type": "array", "metadata": { "description": "List of AAD object IDs that is assigned Owner role at the resource group", "strongType": "PrincipalId" } } }Azure CLI-kommando
# Login first with az login if not using Cloud Shell # Create the blueprint object az blueprint create \ --name 'MyBlueprint' \ --description 'This blueprint sets tag policy and role assignment on the subscription, creates a ResourceGroup, and deploys a resource template and role assignment to that ResourceGroup.' \ --parameters blueprintparms.jsonKommentar
Använd filnamnet blueprint.json när du importerar skissdefinitionerna. Det här filnamnet används när du anropar az blueprint import.
Skissobjektet skapas som standard i standardprenumerationen. Om du vill ange hanteringsgruppen använder du parametern
managementgroup. Om du vill ange prenumerationen använder du parameternsubscription.
Lägg till resursgruppen för lagringsartefakterna i definitionen.
az blueprint resource-group add \ --blueprint-name 'MyBlueprint' \ --artifact-name 'storageRG' \ --description 'Contains the resource template deployment and a role assignment.'Lägg till en rolltilldelning i prenumerationen. I följande exempel konfigureras de huvudidentiteter som beviljats den angivna rollen till en parameter som anges under skisstilldelningen. I det här exemplet används den inbyggda rollen
Contributor, med GUID:tb24988ac-6180-42a0-ab88-20f7382dd24c.az blueprint artifact role create \ --blueprint-name 'MyBlueprint' \ --artifact-name 'roleContributor' \ --role-definition-id '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' \ --principal-ids "[parameters('contributors')]"Lägg till en principtilldelning på prenumerationen. I det här exemplet används den inbyggda principen
Apply tag and its default value to resource groups, som har GUID49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.JSON-fil – artefakter\policyTags.json
{ "tagName": { "value": "[parameters('tagName')]" }, "tagValue": { "value": "[parameters('tagValue')]" } }Azure CLI-kommando
az blueprint artifact policy create \ --blueprint-name 'MyBlueprint' \ --artifact-name 'policyTags' \ --policy-definition-id '/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71' \ --display-name 'Apply tag and its default value to resource groups' \ --description 'Apply tag and its default value to resource groups' \ --parameters artifacts\policyTags.jsonKommentar
När du använder
az blueprintpå en Mac ersätter\du med/för parametervärden som innehåller sökvägen. I det här fallet blir värdet förparametersartifacts/policyTags.json.
Lägg till ytterligare en principtilldelning för lagringstaggen (genom att återanvända
storageAccountType_ parameter) på prenumerationsnivå. Den här ytterligare principtilldelningsartefakten visar att en parameter som definierats för skissen kan användas av mer än en artefakt. I exemplet använderstorageAccountTypedu för att ange en tagg i resursgruppen. Det här värdet innehåller information om det lagringskonto som du skapar i nästa steg. I det här exemplet används den inbyggda principenApply tag and its default value to resource groups, som har GUID49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.JSON-fil – artefakter\policyStorageTags.json
{ "tagName": { "value": "StorageType" }, "tagValue": { "value": "[parameters('storageAccountType')]" } }Azure CLI-kommando
az blueprint artifact policy create \ --blueprint-name 'MyBlueprint' \ --artifact-name 'policyStorageTags' \ --policy-definition-id '/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71' \ --display-name 'Apply storage tag to resource group' \ --description 'Apply storage tag and the parameter also used by the template to resource groups' \ --parameters artifacts\policyStorageTags.jsonKommentar
När du använder
az blueprintpå en Mac ersätter\du med/för parametervärden som innehåller sökvägen. I det här fallet blir värdet förparametersartifacts/policyStorageTags.json.
Lägg till en mall under resursgrupp. Parametern
templateför en ARM-mall innehåller de normala JSON-komponenterna i mallen. Mallen återanvänder också ritningsparametrarnastorageAccountType,tagNameochtagValuegenom att skicka var och en av dem till mallen. Skissparametrarna är tillgängliga för mallen med hjälp av parameternparameters, och i mallen JSON används nyckel/värde-paret för att mata in värdet. Skiss- och mallparameternamnen kan vara desamma.JSON ARM-mallfil – artefakter\templateStorage.json
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storageAccountTypeFromBP": { "type": "string", "metadata": { "description": "Storage Account type" } }, "tagNameFromBP": { "type": "string", "defaultValue": "NotSet", "metadata": { "description": "Tag name from blueprint" } }, "tagValueFromBP": { "type": "string", "defaultValue": "NotSet", "metadata": { "description": "Tag value from blueprint" } } }, "variables": { "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'standardsa')]" }, "resources": [{ "type": "Microsoft.Storage/storageAccounts", "name": "[variables('storageAccountName')]", "apiVersion": "2016-01-01", "tags": { "[parameters('tagNameFromBP')]": "[parameters('tagValueFromBP')]" }, "location": "[resourceGroup().location]", "sku": { "name": "[parameters('storageAccountTypeFromBP')]" }, "kind": "Storage", "properties": {} }], "outputs": { "storageAccountSku": { "type": "string", "value": "[variables('storageAccountName')]" } } }JSON-parametrarfil för ARM-mall – artifacts\templateStorageParams.json
{ "storageAccountTypeFromBP": { "value": "[parameters('storageAccountType')]" }, "tagNameFromBP": { "value": "[parameters('tagName')]" }, "tagValueFromBP": { "value": "[parameters('tagValue')]" } }Azure CLI-kommando
az blueprint artifact template create \ --blueprint-name 'MyBlueprint' \ --artifact-name 'templateStorage' \ --template artifacts\templateStorage.json \ --parameters artifacts\templateStorageParams.json \ --resource-group-art 'storageRG'Kommentar
När du använder
az blueprintpå en Mac ersätter\du med/för parametervärden som innehåller sökvägen. I det här fallet blirtemplatevärdet förartifacts/templateStorage.json, ochparametersblirartifacts/templateStorageParams.json.
Lägg till en rolltilldelning under resursgruppen. I likhet med den tidigare rolltilldelningsposten använder följande exempel definitionsidentifieraren för rollen och ger den
Owneren annan parameter än skissen. I det här exemplet används den inbyggda rollenOwner, med GUID:t8e3af657-a8ff-443c-a75c-2fe8c4bcb635.az blueprint artifact role create \ --blueprint-name 'MyBlueprint' \ --artifact-name 'roleOwner' \ --role-definition-id '/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635' \ --principal-ids "[parameters('owners')]" \ --resource-group-art 'storageRG'
Publicera en skiss
Nu när du har lagt till artefakterna i skissen är det dags att publicera den. Publicering gör skissen tillgänglig för tilldelning till en prenumeration.
az blueprint publish --blueprint-name 'MyBlueprint' --version '{BlueprintVersion}'
Värdet för {BlueprintVersion} är en sträng med bokstäver, siffror och bindestreck (utan blanksteg eller andra specialtecken). Maximal längd är 20 tecken. Använd något unikt och informativt, till exempel v20200605-135541.
Tilldela en skiss
När du har publicerat en skiss med hjälp av Azure CLI kan den tilldelas till en prenumeration. Tilldela ritningen som du har skapat till någon av prenumerationerna i din hanteringsgruppshierarki. Om skissen sparas till en prenumeration kan den endast tilldelas till den prenumerationen. Parametern blueprint-name anger skissen som ska tilldelas. Om du vill ange parametrarna name, location, identity, lockoch blueprint använder du de matchande Azure CLI-parametrarna i az blueprint assignment create kommandot eller anger dem i JSON-parameterfilen .
Kör distributionen av blueprinten genom att tilldela den en prenumeration. Eftersom parametrarna
contributorsochownerskräver en matris medobjectIdsför de säkerhetsobjekt som ska beviljas rolltilldelningen använder du Azure Active Directory Graph API för att hämtaobjectIdsför användning iparametersför dina egna användare, grupper eller tjänsthuvudnamn.JSON-fil – blueprintAssignment.json
{ "storageAccountType": { "value": "Standard_GRS" }, "tagName": { "value": "CostCenter" }, "tagValue": { "value": "ContosoIT" }, "contributors": { "value": [ "7be2f100-3af5-4c15-bcb7-27ee43784a1f", "38833b56-194d-420b-90ce-cff578296714" ] }, "owners": { "value": [ "44254d2b-a0c7-405f-959c-f829ee31c2e7", "316deb5f-7187-4512-9dd4-21e7798b0ef9" ] } }Azure CLI-kommando
az blueprint assignment create \ --name 'assignMyBlueprint' \ --location 'westus' \ --resource-group-value artifact_name=storageRG name=StorageAccount location=eastus \ --parameters blueprintAssignment.jsonAnvändartilldelad hanterad identitet
En skisstilldelning kan även använda en användartilldelad hanterad identitet. I det här fallet är parametern
identity-typeinställd påUserAssigned, och parameternuser-assigned-identitiesanger identiteten. Ersätt{userIdentity}med namnet på din användartilldelade hanterade identitet.az blueprint assignment create \ --name 'assignMyBlueprint' \ --location 'westus' \ --identity-type UserAssigned \ --user-assigned-identities {userIdentity} \ --resource-group-value artifact_name=storageRG name=StorageAccount location=eastus \ --parameters blueprintAssignment.jsonDen användartilldelade hanterade identiteten kan finnas i valfri prenumeration och resursgrupp som användaren som tilldelar skissen har behörigheter till.
Viktigt!
Azure Blueprints hanterar inte den användartilldelade hanterade identiteten. Användarna ansvarar för att tilldela tillräckligt med roller och behörigheter, annars misslyckas skisstilldelningen.
Rensa resurser
Du kan ta bort en skiss från en prenumeration. Borttagningen görs ofta när artefaktresurserna inte längre behövs. När en skiss tas bort blir artefakterna som tilldelats som en del av skissen kvar. Om du vill ta bort en skisstilldelning använder du az blueprint assignment delete kommandot:
az blueprint assignment delete --name 'assignMyBlueprint'
Nästa steg
I den här snabbstarten skapade du, tilldelade och tog bort en Blueprint med hjälp av Azure CLI. Om du vill veta mer om Azure Blueprints fortsätter du till artikeln om skissens livscykel.