Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Azure Blueprints (Önizleme) 31 Ocak 2027'de kullanımdan kaldırılacak ve 31 Temmuz 2026'da aşamalı kullanımdan kaldırılacaktır. Mevcut şema tanımlarınızı ve atamalarınızı Dağıtım Yığınlarına (önerilen) ve Şablon Belirtimlerine geçirin. Şema yapıtları, dağıtım yığınlarını tanımlamak için kullanılan ARM JSON şablonlarına veya Bicep dosyalarına dönüştürülür. Aşamalı zaman çizelgesinin tamamı, etkiler ve SSS için Azure Blueprints'in kullanımdan kaldırılması sayfasına veya https://aka.ms/AzureBlueprintsRetirement bakın. Bir yapıtı ARM kaynağı olarak yazmayı öğrenmek için bkz:
Bu öğreticide, kuruluşunuzda şema oluşturma, yayımlama ve atamayla ilgili bazı yaygın görevleri gerçekleştirmek için Azure Blueprints'i kullanmayı öğreneceksiniz. Bu beceri, Azure Resource Manager (ARM) şablonları, ilkesi ve güvenliği temelinde yeniden kullanılabilir ve hızla dağıtılabilir yapılandırmalar geliştirmek için ortak desenler tanımlamanıza yardımcı olur.
Önkoşullar
- Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Azure Blueprints'i daha önce kullanmadıysanız, ile Azure CLI
az provider register --namespace Microsoft.Blueprintaracılığıyla kaynak sağlayıcısını kaydedin.
Azure Cloud Shell
Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı olan Azure Cloud Shell'i barındırıyor. Azure hizmetleriyle çalışmak için Cloud Shell ile Bash veya PowerShell kullanabilirsiniz. Yerel ortamınıza herhangi bir şey yüklemek zorunda kalmadan bu makaledeki kodu çalıştırmak için Cloud Shell önceden yüklenmiş komutlarını kullanabilirsiniz.
Azure Cloud Shell'i başlatmak için:
| Seçenek | Örnek/Bağlantı |
|---|---|
| Kodun veya komut bloğunun sağ üst köşesindeki Deneyin'i seçin. Deneyin seçildiğinde kod veya komut otomatik olarak Cloud Shell'e kopyalanmaz. |
|
| https://shell.azure.comadresine gidin veya Cloud Shell'i tarayıcınızda açmak için Cloud Shell'i Başlat düğmesini seçin. |
|
| Azure portalının sağ üst kısmındaki menü çubuğunda Cloud Shell düğmesini seçin. |
|
Azure Cloud Shell'i kullanmak için:
Cloud Shell'i başlatın.
Kodu veya komutu kopyalamak için kod bloğundaki (veya komut bloğundaki) Kopyala düğmesini seçin.
Windows ve Linux'ta Ctrl+Shift+V, macOS'te ise Cmd+Shift+V tuşlarına basarak kodu veya komutu Cloud Shell oturumuna yapıştırın.
Kodu veya komutu çalıştırmak için Enter'ı seçin.
Şema uzantısını ekleme
Azure CLI'nın şema tanımlarını ve atamalarını yönetmesini sağlamak için uzantıyı eklemeniz gerekir. Bu uzantı, Azure CLI'yi kullanabileceğiniz her yerde çalışır. Buna Windows 10 üzerinde bash, Cloud Shell (hem tek başına sürüm hem de portalın içindeki sürüm), Azure CLI Docker görüntüsü veya yerel olarak yüklenmiş bir uzantı dahildir.
En son Azure CLI'nin yüklü olup olmadığını denetleyin (en az 2.0.76). Henüz yüklenmiş değilse, bu yönergeleri izleyin.
Tercih edilen Azure CLI ortamınızda aşağıdaki komutu kullanarak uzantıyı içeri aktarın:
# Add the Blueprint extension to the Azure CLI environment az extension add --name blueprintUzantının yüklendiğini ve beklenen sürüm (en az 0.1.0) olduğunu doğrulayın:
# Check the extension list (note that you might have other extensions installed) az extension list # Run help for extension options az blueprint -h
Şema oluşturma
Uyumluluk için standart desen tanımlamanın ilk adımı kullanılabilir durumdaki kaynaklardan bir şema oluşturmaktır. Şimdi aboneliğin rol ve ilke atamalarını yapılandırmak için MyBlueprint adlı bir şema oluşturalım. Ardından kaynak grubuna bir kaynak grubu, ARM şablonu ve rol ataması eklersiniz.
Not
Azure CLI'yı kullanırken önce şema nesnesi oluşturulur. Parametreleri olan eklenecek her yapıt için, parametreleri ilk şemada önceden tanımlarsınız.
İlk şema nesnesini oluşturun. parametresi,
parameterstüm şema düzeyi parametrelerini içeren bir JSON dosyası alır. Atama sırasında parametreleri ayarlarsınız ve bunlar sonraki adımlarda eklediğiniz yapıtlar tarafından kullanılır.JSON dosyası - 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 komutu
# 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.jsonNot
Şema tanımlarınızı içeri aktarırken dosya adı blueprint.json kullanın. Bu dosya adı, az blueprint import komutunu çağırdığınızda kullanılır.
Şema nesnesi varsayılan olarak varsayılan abonelikte oluşturulur. Yönetim grubunu belirtmek için parametresini
managementgroupkullanın. Aboneliği belirtmek için parametresinisubscriptionkullanın.
Depolama yapıları için kaynak grubunu tanıma ekleyin.
az blueprint resource-group add \ --blueprint-name 'MyBlueprint' \ --artifact-name 'storageRG' \ --description 'Contains the resource template deployment and a role assignment.'Abonelikte bir rol ataması ekleyin. Aşağıdaki örnekte, belirtilen role verilen asıl kimlikler şema ataması sırasında ayarlanan bir parametreye yapılandırılır. Bu örnek,
b24988ac-6180-42a0-ab88-20f7382dd24cGUID’sine sahipContributoryerleşik rolünü kullanır.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')]"Abonelikte bir ilke ataması ekleyin. Bu örnekte, GUID'si
49c88fc8-6fd1-46fd-a676-f12d1d3a4c71olan yerleşikApply tag and its default value to resource groupsilkesi kullanılır.JSON dosyası - artifacts\policyTags.json
{ "tagName": { "value": "[parameters('tagName')]" }, "tagValue": { "value": "[parameters('tagValue')]" } }Azure CLI komutu
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.jsonNot
Mac'te
az blueprintkullandığınızda, yolu içeren parametre değerleri için\yerine/kullanın. Bu durumda değeriparametersolurartifacts/policyTags.json.
Depolama etiketi için abonelik düzeyinde,
storageAccountType_ parameteröğesini yeniden kullanarak başka bir ilke ataması ekleyin. Bu ek ilke ataması yapıtı, şemada tanımlanan bir parametrenin birden fazla yapıt tarafından kullanılabileceğini gösterir. Örnekte, kaynak grubuna bir etiket ayarlamak içinstorageAccountTypeöğesini kullanırsınız. Bu değer, sonraki adımda oluşturduğunuz depolama hesabı hakkında bilgi sağlar. Bu örnekte, GUID'si49c88fc8-6fd1-46fd-a676-f12d1d3a4c71olan yerleşikApply tag and its default value to resource groupsilkesi kullanılır.JSON dosyası - artifacts\policyStorageTags.json
{ "tagName": { "value": "StorageType" }, "tagValue": { "value": "[parameters('storageAccountType')]" } }Azure CLI komutu
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.jsonNot
Mac'te
az blueprintkullandığınızda, yolu içeren parametre değerleri için\yerine/kullanın. Bu durumda değeriparametersolurartifacts/policyStorageTags.json.
Kaynak grubunun altına bir şablon ekleyin. ARM şablonunun
templateparametresi, şablonun normal JSON bileşenlerini içerir. Şablon ayrıcastorageAccountType,tagNamevetagValueşema parametrelerinin her birini şablona geçirerek bunları yeniden kullanır. Şema parametreleri parametresiparameterskullanılarak şablon tarafından kullanılabilir ve JSON şablonunun içinde anahtar-değer çifti değeri eklemek için kullanılır. Şema ve şablon parametre adları aynı olabilir.JSON ARM şablon dosyası - artifacts\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 ARM şablon parametre dosyası - artifacts\templateStorageParams.json
{ "storageAccountTypeFromBP": { "value": "[parameters('storageAccountType')]" }, "tagNameFromBP": { "value": "[parameters('tagName')]" }, "tagValueFromBP": { "value": "[parameters('tagValue')]" } }Azure CLI komutu
az blueprint artifact template create \ --blueprint-name 'MyBlueprint' \ --artifact-name 'templateStorage' \ --template artifacts\templateStorage.json \ --parameters artifacts\templateStorageParams.json \ --resource-group-art 'storageRG'Not
Mac'te
az blueprintkullanırken, yolu içeren parametre değerleri için\yerine/kullanın. Bu durumda,templatedeğeriartifacts/templateStorage.jsonolur veparameters,artifacts/templateStorageParams.jsonolur.
Kaynak grubunun altına bir rol ataması ekleyin. Önceki rol ataması girdisine benzer şekilde, aşağıdaki örnek rol için tanım tanımlayıcısını
Ownerkullanır ve şemadan farklı bir parametre sağlar. Bu örnek,8e3af657-a8ff-443c-a75c-2fe8c4bcb635GUID’sine sahipOwneryerleşik rolünü kullanır.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'
Şemayı yayımlama
Artık artefaktları taslağa eklediğinize göre, onu yayımlama zamanı geldi. Yayımlama, şemanın aboneliğe atanabilir olmasını sağlar.
az blueprint publish --blueprint-name 'MyBlueprint' --version '{BlueprintVersion}'
değeri {BlueprintVersion} harf, sayı ve kısa çizgilerden oluşan bir dizedir (boşluk veya başka özel karakter içermeyen). Maksimum uzunluk 20 karakterdir. gibi v20200605-135541benzersiz ve bilgilendiren bir şey kullanın.
Taslak ata
Azure CLI'yi kullanarak bir Blueprint yayımladıktan sonra, bu Blueprint bir aboneliğe atanabilir. Oluşturduğunuz şemayı yönetim grubu hiyerarşinizin altındaki aboneliklerden birine atayın. Şema bir aboneliğe kaydedildiyse, yalnızca bu aboneliğe atanabilir.
blueprint-name parametresi, atanacak şemayı belirtir.
name, location, identity, lock ve blueprint parametrelerini belirtmek için `az blueprint assignment create` komutunda karşılık gelen Azure CLI parametrelerini kullanın veya bunları parameters JSON dosyasında belirtin.
Bir aboneliğe atayarak şema dağıtımını çalıştırın.
contributorsveownersparametreleri, rol atamasının verileceği asıllarınobjectIdsdeğerlerinden oluşan bir dizi gerektirdiğinden, kendi kullanıcılarınız, gruplarınız veya hizmet sorumlularınız içinparametersiçinde kullanmak üzereobjectIdsdeğerlerini toplamak amacıyla Azure Active Directory Graph API'sini kullanın.JSON dosyası - 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 komutu
az blueprint assignment create \ --name 'assignMyBlueprint' \ --location 'westus' \ --resource-group-value artifact_name=storageRG name=StorageAccount location=eastus \ --parameters blueprintAssignment.jsonKullanıcı tarafından atanan yönetilen kimlik
Şema ataması, kullanıcı tarafından atanan yönetilen kimliği de kullanabilir. Bu durumda parametresi
identity-typeolarak ayarlanırUserAssignedveuser-assigned-identitiesparametresi kimliği belirtir.{userIdentity}öğesini kullanıcı tarafından atanmış yönetilen kimliğinizin adıyla değiştirin.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.jsonKullanıcı tarafından atanan yönetilen kimlik, şemayı atayan kullanıcının izinlere sahip olduğu herhangi bir abonelikte ve kaynak grubunda olabilir.
Önemli
Azure Blueprints, kullanıcı tarafından atanan yönetilen kimliği yönetmez. Kullanıcılar yeterli rol ve izin atamakla sorumludur, aksi takdirde şema ataması başarısız olur.
Kaynakları temizleme
Bir şemayı abonelikten kaldırabilirsiniz. Kaldırma işlemi genellikle yapıt kaynaklarına ihtiyaç duyulmadığında gerçekleştirilir. Bir şema kaldırıldığında o şemanın bir parçası olarak atanan yapıtlar geride kalır. Şema atamasını kaldırmak için komutunu az blueprint assignment delete kullanın:
az blueprint assignment delete --name 'assignMyBlueprint'
Sonraki adımlar
Bu hızlı başlangıçta, Azure CLI ile bir şema oluşturdunuz, atadı ve kaldırdınız. Azure Blueprints hakkında daha fazla bilgi edinmek için şema yaşam döngüsü makalesine geçin.