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.
- Kaynak sağlayıcısını
Microsoft.Blueprintkaydedin. Yönergeler için bkz. Kaynak sağlayıcıları ve türleri.
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.
REST API'sini kullanmaya başlama
REST API'yi bilmiyorsanız, başta istek URI'si ve istek gövdesi hakkındaki bölümler olan Azure REST API Başvurusu'na göz atarak başlayın. Bu hızlı başlangıç, Azure Blueprints ile çalışırken yol göstermek için bu kavramlardan yararlanır ve bunlara ilişkin temel düzeyde bilgi sahibi olunduğunu varsayar. ARMClient gibi araçlar yetkilendirmeyi otomatik olarak işleyebilir ve yeni başlayanlar için önerilir.
Azure Blueprints belirtimleri için bkz . Azure Blueprints REST API.
REST API ve PowerShell
REST API çağrısı yapmak için bir aracınız yoksa bu yönergeleri PowerShell kullanarak gerçekleştirebilirsiniz. Aşağıda, Azure’da kimlik doğrulamak için örnek bir üstbilgi verilmiştir. Bazen taşıyıcı belirteci olarak da adlandırılan bir kimlik doğrulama üst bilgisi oluşturun ve herhangi bir parametre veya Request Bodyile bağlanmak için REST API URI'sini sağlayın:
# Log in first with Connect-AzAccount if not using Cloud Shell
$azContext = Get-AzContext
$azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile)
$token = $profileClient.AcquireAccessToken($azContext.Subscription.TenantId)
$authHeader = @{
'Content-Type'='application/json'
'Authorization'='Bearer ' + $token.AccessToken
}
# Invoke the REST API
$restUri = 'https://management.azure.com/subscriptions/{subscriptionId}?api-version=2020-01-01'
$response = Invoke-RestMethod -Uri $restUri -Method Get -Headers $authHeader
Aboneliğiniz hakkında bilgi almak için önceki $restUri değişkendeki {subscriptionId} ifadesini değiştirin.
$response değişkeni, Invoke-RestMethod cmdlet'inin sonucunu içerir; bu sonucu ConvertFrom-Json gibi cmdlet'lerle ayrıştırabilirsiniz. REST API hizmet uç noktası bir Request Body bekliyorsa, Invoke-RestMethod'nin -Body parametresine JSON biçiminde bir değişken sağlayın.
Ş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
REST API'yi kullanırken önce şema nesnesi oluşturulur. Parametreleri olan eklenecek her yapıt için, parametreleri ilk şemada önceden tanımlarsınız.
Her REST API URI'sinde aşağıdaki değişkenleri kendi değerlerinizle değiştirin:
-
{YourMG}- Yönetim grubunuzun kimliğiyle değiştirin. -
{subscriptionId}- Abonelik kimliğinizle değiştirin.
Not
Ayrıca abonelik düzeyinde şemalar da oluşturabilirsiniz. Daha fazla bilgi için bkz. abonelik düzeyinde şema oluşturma örneği.
İlk şema nesnesini oluşturun. şema
Request Bodyhakkındaki özellikleri, oluşturulacak kaynak gruplarını ve şema düzeyindeki parametrelerin tümünü içerir. Atama sırasında parametreleri ayarlarsınız ve bunlar sonraki adımlarda eklediğiniz yapıtlar tarafından kullanılır.REST API URI'si
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint?api-version=2018-11-01-previewİstek Gövdesi
{ "properties": { "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.", "targetScope": "subscription", "parameters": { "storageAccountType": { "type": "string", "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" } }, "owners": { "type": "array", "metadata": { "description": "List of AAD object IDs that is assigned Owner role at the resource group" } } }, "resourceGroups": { "storageRG": { "description": "Contains the resource template deployment and a role assignment." } } } }
Abonelikte bir rol ataması ekleyin. yapıt
Request Bodytürünü tanımlar, özellikler rol tanımı tanımlayıcısına hizalanır ve asıl kimlikler bir değer dizisi olarak geçirilir. 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, GUID’sib24988ac-6180-42a0-ab88-20f7382dd24colan yerleşikContributorrolünü kullanır.REST API URI'si
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/roleContributor?api-version=2018-11-01-previewİstek Gövdesi
{ "kind": "roleAssignment", "properties": { "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", "principalIds": "[parameters('contributors')]" } }
Abonelikte bir ilke ataması ekleyin. yapıt
Request Bodytürünü tanımlar, özellikler bir ilke veya girişim tanımına hizalanır ve ilke ataması şema ataması sırasında tanımlanan şema parametrelerini kullanacak şekilde yapılandırılır. Bu örnekte, GUID’si49c88fc8-6fd1-46fd-a676-f12d1d3a4c71olan yerleşikApply tag and its default value to resource groupsilkesi kullanılır.REST API URI'si
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/policyTags?api-version=2018-11-01-previewİstek Gövdesi
{ "kind": "policyAssignment", "properties": { "description": "Apply tag and its default value to resource groups", "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71", "parameters": { "tagName": { "value": "[parameters('tagName')]" }, "tagValue": { "value": "[parameters('tagValue')]" } } } }
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.REST API URI'si
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/policyStorageTags?api-version=2018-11-01-previewİstek Gövdesi
{ "kind": "policyAssignment", "properties": { "description": "Apply storage tag and the parameter also used by the template to resource groups", "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71", "parameters": { "tagName": { "value": "StorageType" }, "tagValue": { "value": "[parameters('storageAccountType')]" } } } }
Kaynak grubunun altına bir şablon ekleyin.
Request BodyARM şablonu için, şablonun normal JSON bileşenini içerir ve ileproperties.resourceGrouphedef kaynak grubunu tanımlar. Şablon ayrıcastorageAccountType,tagNamevetagValueşema parametrelerinin her birini şablona geçirerek bunları yeniden kullanır. Şema parametreleri tanımlanarakproperties.parametersşablonun kullanımına sunulur ve JSON şablonunun içinde değeri eklemek için anahtar-değer çifti kullanılır. Şema ve şablon parametre adları aynı olabilir, ancak burada her birinin şemadan şablon yapıtına nasıl geçtiğini göstermek için farklıdır.REST API URI'si
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/templateStorage?api-version=2018-11-01-previewİstek Gövdesi
{ "kind": "template", "properties": { "template": { "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storageAccountTypeFromBP": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_ZRS", "Premium_LRS" ], "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": "[resourceGroups('storageRG').location]", "sku": { "name": "[parameters('storageAccountTypeFromBP')]" }, "kind": "Storage", "properties": {} }], "outputs": { "storageAccountSku": { "type": "string", "value": "[variables('storageAccountName')]" } } }, "resourceGroup": "storageRG", "parameters": { "storageAccountTypeFromBP": { "value": "[parameters('storageAccountType')]" }, "tagNameFromBP": { "value": "[parameters('tagName')]" }, "tagValueFromBP": { "value": "[parameters('tagValue')]" } } } }
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.REST API URI'si
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/roleOwner?api-version=2018-11-01-previewİstek Gövdesi
{ "kind": "roleAssignment", "properties": { "resourceGroup": "storageRG", "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635", "principalIds": "[parameters('owners')]" } }
Ş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.
REST API URI'si
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/versions/{BlueprintVersion}?api-version=2018-11-01-preview
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 v20180622-135541benzersiz ve bilgilendiren bir şey kullanın.
Bir taslak ata
REST API'yi kullanarak bir taslak yayımladıktan sonra, bu taslak 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.
Request Body atanacak şemayı belirtir ve şema tanımındaki herhangi bir kaynak grubuna ad ve konum sağlar.
Request Body ayrıca şemada tanımlanan ve bir veya daha fazla ekli yapıt tarafından kullanılan tüm parametreleri sağlar.
Her REST API URI'sinde aşağıdaki değişkenleri kendi değerlerinizle değiştirin:
-
{tenantId}- Kiracı kimliğinizle değiştirin. -
{YourMG}- Yönetim grubunuzun kimliğiyle değiştirin. -
{subscriptionId}- Abonelik kimliğinizle değiştirin.
Azure Blueprints hizmet sorumlusuna
Ownerhedef abonelikte rolü sağlayın.AppIdstatiktir ()f71766dc-90d9-4b7d-bd9d-4499c4331c3fancak hizmet sorumlusu kimliği kiracıya göre değişir. Kiracınızın ayrıntılarını istemek için aşağıdaki REST API'yi kullanın. Farklı yetkilendirmeye sahip Azure Active Directory Graph API'sini kullanır.REST API URI'si
GET https://graph.windows.net/{tenantId}/servicePrincipals?api-version=1.6&$filter=appId eq 'f71766dc-90d9-4b7d-bd9d-4499c4331c3f'
Bir aboneliğe atayarak şema dağıtımını çalıştırın.
contributorsveownersparametreleri, rol atamasının verileceği asıllara ait birobjectIdsdizisi gerektirdiğinden, kendi kullanıcılarınız, gruplarınız veya hizmet sorumlularınız içinRequest Bodyiçinde kullanmak üzereobjectIdstoplamak amacıyla Azure Active Directory Graph API kullanın.REST API URI'si
PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Blueprint/blueprintAssignments/assignMyBlueprint?api-version=2018-11-01-previewİstek Gövdesi
{ "properties": { "blueprintId": "/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint", "resourceGroups": { "storageRG": { "name": "StorageAccount", "location": "eastus2" } }, "parameters": { "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" ] } } }, "identity": { "type": "systemAssigned" }, "location": "westus" }Kullanıcı tarafından atanan yönetilen kimlik
Şema ataması, kullanıcı tarafından atanan yönetilen kimliği de kullanabilir. Bu durumda,
identityistek gövdesinin bölümü aşağıdaki gibi değişir.{yourRG}ve{userIdentity}öğelerini sırasıyla kaynak grubu adınız ve kullanıcı tarafından atanan yönetilen kimliğinizin adı ile değiştirin."identity": { "type": "userAssigned", "tenantId": "{tenantId}", "userAssignedIdentities": { "/subscriptions/{subscriptionId}/resourceGroups/{yourRG}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userIdentity}": {} } },Kullanı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
Şemanın atamasını kaldırma
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. Bir şemanın atamasını kaldırmak için aşağıdaki REST API işlemini kullanın:
REST API URI'si
DELETE https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Blueprint/blueprintAssignments/assignMyBlueprint?api-version=2018-11-01-preview
Şemayı silme
Bir şemanın kendisini kaldırmak için aşağıdaki REST API işlemini kullanın:
REST API URI'si
DELETE https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint?api-version=2018-11-01-preview
Sonraki adımlar
Bu hızlı başlangıçta REST API 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.