Rychlý Start: definování a přiřazení Azure Blueprint pomocí Azure CLI
Učení vytváření a přiřazování podrobných plánů umožňuje definování běžných vzorů pro vývoj opakovaně použitelných a rychlých nasazení konfigurací na základě Azure Resource Manager šablon (šablon ARM), zásad, zabezpečení a dalších. V tomto kurzu se naučíte používat podrobné plány Azure Blueprint k provádění nejčastějších úloh spojených s vytvářením, publikováním a přiřazením podrobného plánu v organizaci, jako je například:
Požadavky
- Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
- Pokud jste Azure modrotisky nepoužívali dřív, zaregistrujte poskytovatele prostředků prostřednictvím Azure CLI pomocí
az provider register --namespace Microsoft.Blueprint.
Použití služby Azure Cloud Shell
Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Můžete použít předinstalované příkazy služby Cloud Shell ke spuštění kódu uvedeného v tomto článku, aniž byste museli instalovat cokoli do svého místního prostředí.
Spuštění služby Azure Cloud Shell:
| Možnost | Příklad nebo odkaz |
|---|---|
| Zvolte Vyzkoušet v pravém horním rohu bloku kódu. Výběr Vyzkoušet automaticky nekopíruje kód do služby Cloud Shell. | ![]() |
| Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. | ![]() |
| Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. | ![]() |
Pokud chcete spustit kód uvedený v tomto článku ve službě Azure Cloud Shell, postupujte takto:
Spusťte Cloud Shell.
Vyberte tlačítko Kopírovat na bloku kódu a kód zkopírujte.
Vložte kód do relace Cloud Shell pomocí kláves Ctrl+Shift+V ve Windows a Linuxu nebo pomocí kláves Cmd+Shift+V v systému macOS.
Spusťte kód stisknutím klávesy Enter.
Přidat rozšíření podrobného plánu
Aby bylo možné povolit Azure CLI ke správě definic a přiřazení podrobného plánu, je nutné rozšíření přidat. Toto rozšíření funguje bez ohledu na to rozhraní příkazového řádku Azure je možné, včetně bash ve Windows 10, Cloud Shell (samostatné a uvnitř portálu), image Dockeru rozhraní příkazového řádku Azure, nebo lokálně nainstalované.
Ověřte, že je nainstalované nejnovější rozhraní příkazového řádku Azure (aspoň 2.0.76). Pokud ještě není nainstalovaný, postupujte podle těchto pokynů.
V prostředí Azure CLI podle vašeho výběru ho importujete pomocí následujícího příkazu:
# Add the Blueprint extension to the Azure CLI environment az extension add --name blueprintOvěřte, že rozšíření je nainstalované a má očekávanou verzi (minimálně 0.1.0):
# Check the extension list (note that you may have other extensions installed) az extension list # Run help for extension options az blueprint -h
Vytvoření podrobného plánu
Jako první krok při definování standardního vzoru pro dodržování předpisů je sestavení podrobného plánu z dostupných prostředků. Vytvoříme podrobný plán MyBlueprint, který pro předplatné nakonfiguruje přiřazení rolí a zásad. Potom do skupiny prostředků přidáme skupinu prostředků, šablonu ARM a přiřazení role.
Poznámka
Při použití rozhraní příkazového řádku Azure je nejprve vytvořen objekt podrobného plánu. Pro každý přidávaný artefakt, který má parametry, je potřeba předem definovat parametry v počátečním podrobném plánu.
Vytvořte počáteční objekt blueprint. Parametr Parameters přebírá soubor JSON, který obsahuje všechny parametry úrovně podrobného plánu. Tyto parametry se nastaví při přiřazení a používají je artefakty přidané v dalších krocích.
Soubor JSON – blueprintparms.jsna
{ "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" } } }Příkaz Azure CLI
# 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.jsonPoznámka
Při importu definic podrobných plánů použijte název souboru blueprint.js . Tento název souboru se používá při volání metody AZ detail import.
Ve výchozím nastavení je ve výchozím předplatném vytvořen objekt podrobného plánu. Chcete-li určit skupinu pro správu, použijte skupinu pro správu parametrů. K zadání předplatného použijte parametr Subscription.
Přidejte do definice skupinu prostředků pro artefakty úložiště.
az blueprint resource-group add \ --blueprint-name 'MyBlueprint' \ --artifact-name 'storageRG' \ --description 'Contains the resource template deployment and a role assignment.'Přidejte do předplatného přiřazení role. V následujícím příkladu jsou hlavní identity udělené zadané roli nakonfigurovány na parametr, který je nastaven během přiřazení podrobného plánu. V tomto příkladu se používá předdefinovaná role Přispěvatel s identifikátorem GUID
b24988ac-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')]"Přidejte do předplatného přiřazení zásad. V tomto příkladu se používá značka Apply a její výchozí hodnota pro předdefinované zásady skupin prostředků s identifikátorem GUID
49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.Soubor JSON – artifacts\policyTags.jsna
{ "tagName": { "value": "[parameters('tagName')]" }, "tagValue": { "value": "[parameters('tagValue')]" } }Příkaz Azure CLI
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.jsonPoznámka
Při použití
az blueprintv Macu nahraďte hodnotou\/parametru, která zahrnuje cestu. V tomto případě se hodnota pro parametry přestanouartifacts/policyTags.json.
Přidejte do předplatného další přiřazenou zásadu pro značku úložiště (znovu použijte parametr storageAccountType). Tento další artefakt přiřazené zásady ukazuje, že parametr definovaný v podrobném plánu může používat více artefaktů. V tomto příklad se parametr storageAccountType používá k nastavení značky u skupiny prostředků. Tato hodnota poskytuje informace o účtu úložiště, který se vytvoří v dalším kroku. V tomto příkladu se používá značka Apply a její výchozí hodnota pro předdefinované zásady skupin prostředků s identifikátorem GUID
49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.Soubor JSON – artifacts\policyStorageTags.jsna
{ "tagName": { "value": "StorageType" }, "tagValue": { "value": "[parameters('storageAccountType')]" } }Příkaz Azure CLI
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.jsonPoznámka
Při použití
az blueprintv Macu nahraďte hodnotou\/parametru, která zahrnuje cestu. V tomto případě se hodnota pro parametry přestanouartifacts/policyStorageTags.json.
Přidejte pod skupinu prostředků šablonu. Parametr šablony pro šablonu ARM obsahuje normální komponenty JSON šablony. Šablona také znovu používá parametry podrobného plánu storageAccountType, tagName a tagValue, které se šabloně předávají. Parametry podrobného plánu jsou k dispozici pro šablonu pomocí parametrů parametrů a uvnitř šablony JSON, kterou používá pár klíč-hodnota k vložení hodnoty. Název parametru podrobného plánu a šablony může být stejný.
Soubor šablony ARM formátu JSON – artifacts\templateStorage.jsna
{ "$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')]" } } }Soubor parametrů šablony ARM formátu JSON – artifacts\templateStorageParams.js
{ "storageAccountTypeFromBP": { "value": "[parameters('storageAccountType')]" }, "tagNameFromBP": { "value": "[parameters('tagName')]" }, "tagValueFromBP": { "value": "[parameters('tagValue')]" } }Příkaz Azure CLI
az blueprint artifact template create \ --blueprint-name 'MyBlueprint' \ --artifact-name 'templateStorage' \ --template artifacts\templateStorage.json \ --parameters artifacts\templateStorageParams.json \ --resource-group-art 'storageRG'Poznámka
Při použití
az blueprintv Macu nahraďte hodnotou\/parametru, která zahrnuje cestu. V tomto případě se hodnota pro šablonu přestanouartifacts/templateStorage.jsona parametry se budou nacházetartifacts/templateStorageParams.json.
Přidejte pod skupinu prostředků přiřazení role. Jde o podobné přiřazení jako při předchozím přiřazení role. V následujícím příkladu se identifikátor definice použije pro roli Owner (Vlastník), který jí z podrobného plánu nabídne jiný parametr. V tomto příkladu se používá předdefinovaná role Owner s identifikátorem GUID
8e3af657-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'
Publikování podrobného plánu
Po přidání artefaktů do podrobného plánu ho můžeme publikovat. Publikováním se zpřístupní, aby bylo možné ho přiřadit k předplatnému.
az blueprint publish --blueprint-name 'MyBlueprint' --version '{BlueprintVersion}'
Hodnota {BlueprintVersion} představuje řetězec složený z písmen, číslic a spojovníků (bez mezer a speciálních znaků) o maximální délce 20 znaků. Použijte něco jedinečného a informativní, jako je například v20200605-135541.
Přiřazení podrobného plánu
Po publikování podrobného plánu pomocí Azure CLI ho můžete přiřadit k předplatnému. Přiřaďte vytvořený podrobný plán některému z předplatných v hierarchii skupiny pro správu. Pokud je podrobný plán uložen v předplatném, může být přiřazen pouze k tomuto předplatnému. Parametr Details-Name určuje plán, který se má přiřadit. Pokud chcete zadat parametry názvu, umístění, identity, zámku a podrobného plánu, použijte v příkazu párové parametry rozhraní příkazového řádku Azure CLI az blueprint assignment create nebo je poskytněte v souboru JSON parametrů .
Spusťte nasazení podrobného plánu tím, že ho přiřadíte k předplatnému. jelikož parametry přispěvatelé a vlastníci vyžadují, aby bylo přiřazení role uděleno pole objectid objektů zabezpečení, použijte Azure Active Directory Graph API pro shromáždění identifikátorů objectid pro použití v parametrech pro vlastní uživatele, skupiny nebo instanční objekty.
Soubor JSON – blueprintAssignment.jsna
{ "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" ] } }Příkaz Azure CLI
az blueprint assignment create \ --name 'assignMyBlueprint' \ --location 'westus' \ --resource-group-value artifact_name=storageRG name=StorageAccount location=eastus \ --parameters blueprintAssignment.jsonSpravovaná identita přiřazená uživatelem
Přiřazení podrobného plánu může také používat uživatelsky přiřazenou spravovanou identitu. V tomto případě je parametr typu identity nastavený na UserAssigned a parametr User-Assigned-identity Určuje identitu. Nahraďte
{userIdentity}názvem vaší uživatelsky přiřazené spravované identity.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.jsonSpravovaná identita přiřazená uživatelem může být v jakémkoli předplatném a skupině prostředků, ke které má uživatel přihlášený podrobný plán oprávnění.
Důležité
Azure modrotisky nespravuje spravovanou identitu přiřazenou uživatelem. Uživatelé zodpovídají za přiřazení dostatečných rolí a oprávnění nebo přiřazení podrobného plánu se nezdaří.
Vyčištění prostředků
Zrušení přiřazení plánu
Podrobný plán můžete odebrat z předplatného. Odebrání se často provádí v případě, že už nepotřebujete prostředky artefaktů. Po odebrání podrobného plánu zůstanou přiřazené artefakty, které byly jeho součástí. Chcete-li odebrat přiřazení podrobného plánu, použijte az blueprint assignment delete příkaz:
az blueprint assignment delete --name 'assignMyBlueprint'
Další kroky
V tomto rychlém startu jste vytvořili, přiřadili a odebrali podrobný plán pomocí Azure CLI. Další informace o plánech Azure najdete v článku o životním cyklu podrobného plánu.


