Hızlı Başlangıç: REST API ile Azure şeması tanımlama ve atama
Önemli
11 Temmuz 2026'da Blueprints (Önizleme) kullanım dışı bırakılacaktır. Mevcut şema tanımlarınızı ve atamalarınızı Şablon Özellikleri ve Dağıtım Yığınları'na geçirin. Şema yapıtları ARM JSON şablonlarına veya dağıtım yığınlarını tanımlamak için kullanılan Bicep dosyalarına dönüştürülecek. 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.Blueprint
kaydedin. Yönergeler için, bkz. Azure 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'yi seçerek veya macOS üzerinde Cmd+Shift++V'yi seçerek 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ıçta, Azure Blueprints ile çalışmaya yönelik yönergeler sağlamak için bu kavramlar kullanılır ve bunlar hakkında çalışan bir bilgi olduğu varsayılır. 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 ile kimlik doğrulaması için örnek bir üst bilgi 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 Body
ile 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şkende değerini değiştirin{subscriptionId}
. $response
değişkeni, ConvertFrom-Json gibi cmdlet'lerle ayrıştırabileceğiniz cmdlet'in sonucunu Invoke-RestMethod
tutar. REST API hizmet uç noktası bir Request Body
bekliyorsa parametresine -Body
Invoke-RestMethod
JSON biçimli 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}
- değerini yönetim grubunuzun kimliğiyle değiştirin.{subscriptionId}
- değerini abonelik kimliğiniz ile değiştirin.
Not
Ayrıca abonelik düzeyinde şemalar da oluşturabilirsiniz. Daha fazla bilgi için bkz . Abonelik örneğinde şema oluşturma.
İlk şema nesnesini oluşturun. şema
Request Body
hakkı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 Body
tü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, guidb24988ac-6180-42a0-ab88-20f7382dd24c
değeriyle yerleşik rolü kullanırContributor
.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 Body
tü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, guid49c88fc8-6fd1-46fd-a676-f12d1d3a4c71
değeriyle birlikte yerleşik ilke kullanılırApply tag and its default value to resource groups
.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')]" } } } }
Abonelikte depolama etiketi (yeniden kullanarak
storageAccountType_ parameter
) için 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 grubunda bir etiket ayarlamak için öğesini kullanırsınızstorageAccountType
. Bu değer, sonraki adımda oluşturduğunuz depolama hesabı hakkında bilgi sağlar. Bu örnekte, guid49c88fc8-6fd1-46fd-a676-f12d1d3a4c71
değeriyle birlikte yerleşik ilke kullanılırApply tag and its default value to resource groups
.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 Body
ARM şablonu için, şablonun normal JSON bileşenini içerir ve ileproperties.resourceGroup
hedef kaynak grubunu tanımlar. Şablon ayrıca ,tagName
vetagValue
şema parametrelerini şablona geçirerek yeniden kullanırstorageAccountType
. Ş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ı
Owner
kullanır ve şemadan farklı bir parametre sağlar. Bu örnek, guid8e3af657-a8ff-443c-a75c-2fe8c4bcb635
değeriyle yerleşik rolü kullanırOwner
.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 yapıtları şemaya eklediğinize göre yayımlamanın 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-135541
benzersiz ve bilgilendiren bir şey kullanın.
Şema atama
REST API kullanarak bir şema yayımladıktan sonra 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}
- değerini kiracı kimliğiniz ile değiştirin.{YourMG}
- değerini yönetim grubunuzun kimliğiyle değiştirin.{subscriptionId}
- değerini abonelik kimliğiniz ile değiştirin.
Azure Blueprints hizmet sorumlusuna
Owner
hedef abonelikte rolü sağlayın.AppId
statiktir ()f71766dc-90d9-4b7d-bd9d-4499c4331c3f
ancak 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.
contributors
veowners
parametreleri rol atamasının verilmesi için bir diziobjectIds
sorumlu gerektirdiğinden, kendi kullanıcılarınız, gruplarınız veya hizmet sorumlularınız için içinde kullanmak üzere öğesini toplamakobjectIds
için Azure Active Directory Graph API'siniRequest Body
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,
identity
istek gövdesinin bölümü aşağıdaki gibi değişir. ve{userIdentity}
öğesini kaynak grubu adınızla ve sırasıyla kullanıcı tarafından atanan yönetilen kimliğinizin adıyla değiştirin{yourRG}
."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.