ARM şablonlarının yapısını ve söz dizimini anlama
Bu makalede Azure Resource Manager şablonunun (ARM şablonu) yapısı açıklanır. Bir şablonun farklı bölümlerini ve bu bölümlerde kullanılabilen özellikleri sunar.
Bu makale ARM şablonları hakkında bilgi sahibi olan kullanıcılara yöneliktir. Şablonun yapısı hakkında ayrıntılı bilgi sağlar. Şablon oluşturma işleminde size yol gösteren adım adım öğretici için bkz . Öğretici: İlk ARM şablonunuzu oluşturma ve dağıtma. Destekli Learn modülleri aracılığıyla ARM şablonları hakkında bilgi edinmek için bkz. ARM şablonlarını kullanarak Azure'da kaynakları dağıtma ve yönetme.
İpucu
Bicep, ARM şablonlarıyla aynı özellikleri sunan ancak kullanımı daha kolay olan bir söz dizimine sahip yeni bir dildir. Altyapıyı kod seçenekleri olarak düşünüyorsanız Bicep'e bakmanızı öneririz.
Bicep dosyasının öğeleri hakkında bilgi edinmek için bkz. Bicep dosyalarının yapısını ve söz dizimini anlama.
Şablon biçimi
En basit yapısında, bir şablon aşağıdaki öğelere sahiptir:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"languageVersion": "",
"contentVersion": "",
"apiProfile": "",
"definitions": { },
"parameters": { },
"variables": { },
"functions": [ ],
"resources": [ ], /* or "resources": { } with languageVersion 2.0 */
"outputs": { }
}
Öğe adı | Gerekli | Açıklama |
---|---|---|
$schema | Yes | Şablon dilinin sürümünü açıklayan JavaScript Nesne Gösterimi (JSON) şema dosyasının konumu. Kullandığınız sürüm numarası, dağıtımın kapsamına ve JSON düzenleyicinize bağlıdır. Azure Resource Manager araçları uzantısıyla Visual Studio Code kullanıyorsanız kaynak grubu dağıtımları için en son sürümü kullanın: https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json# Diğer düzenleyiciler (Visual Studio dahil) bu şemayı işleyemeyebilir. Bu düzenleyiciler için şunları kullanın: https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json# Abonelik dağıtımları için şunu kullanın: https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json# Yönetim grubu dağıtımları için şunu kullanın: https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json# Kiracı dağıtımları için şunu kullanın: https://schema.management.azure.com/schemas/2019-08-01/tenantDeploymentTemplate.json# |
languageVersion | No | Şablonun dil sürümü. languageVersion 2.0'ın geliştirmelerini görüntülemek için bkz. languageVersion 2.0. |
contentVersion | Yes | Şablonun sürümü (1.0.0.0 gibi). Bu öğe için herhangi bir değer sağlayabilirsiniz. Şablonunuzdaki önemli değişiklikleri belge etmek için bu değeri kullanın. Şablonu kullanarak kaynakları dağıtırken, doğru şablonun kullanıldığından emin olmak için bu değer kullanılabilir. |
apiProfile | No | Kaynak türleri için API sürümleri koleksiyonu olarak hizmet veren bir API sürümü. Şablondaki her kaynak için API sürümlerini belirtmek zorunda kalmamak için bu değeri kullanın. BIR API profili sürümü belirttiğinizde ve kaynak türü için bir API sürümü belirtmediğinizde Resource Manager profilde tanımlanan kaynak türü için API sürümünü kullanır. API profili özelliği özellikle Azure Stack ve genel Azure gibi farklı ortamlara şablon dağıtırken yararlıdır. Şablonunuzun her iki ortamda da desteklenen sürümleri otomatik olarak kullandığından emin olmak için API profili sürümünü kullanın. Geçerli API profili sürümlerinin ve profilde tanımlanan kaynakların API sürümlerinin listesi için bkz. API Profili. Daha fazla bilgi için bkz. API profillerini kullanarak sürümleri izleme. |
Tanım | No | Dizi ve nesne değerlerini doğrulamak için kullanılan şemalar. Tanımlar yalnızca languageVersion 2.0'da desteklenir. |
parametreler | No | Kaynak dağıtımlarını özelleştirmek için dağıtım yürütürken sağlanan değerler. |
Değişken | No | Şablon dil ifadelerini basitleştirmek için şablonda JSON parçaları olarak kullanılan değerler. |
Işlev | No | Şablon içinde kullanılabilen kullanıcı tanımlı işlevler. |
Kaynak | Yes | Bir kaynak grubunda veya abonelikte dağıtılan veya güncelleştirilen kaynak türleri. |
Çıkış | No | Dağıtımdan sonra döndürülen değerler. |
Her öğenin ayarlayabileceğiniz özellikleri vardır. Bu makalede, şablonun bölümleri daha ayrıntılı olarak açıklanmaktadır.
Tanımlar
Şablonun definitions
bölümünde, dizi ve nesne değerlerini doğrulamak için kullanılan şemaları belirtin.
Definitions
yalnızca languageVersion 2.0 ile kullanılabilir.
"definitions": {
"<definition-name": {
"type": "<data-type-of-definition>",
"allowedValues": [ "<array-of-allowed-values>" ],
"minValue": <minimum-value-for-int>,
"maxValue": <maximum-value-for-int>,
"minLength": <minimum-length-for-string-or-array>,
"maxLength": <maximum-length-for-string-or-array>,
"prefixItems": <schema-for-validating-array>,
"items": <schema-for-validating-array-or-boolean>,
"properties": <schema-for-validating-object>,
"additionalProperties": <schema-for-validating-object-or-boolean>,
"discriminator": <schema-to-apply>,
"nullable": <boolean>,
"metadata": {
"description": "<description-of-the-type-definition>"
}
}
}
Öğe adı | Gerekli | Açıklama |
---|---|---|
tanım-adı | Yes | Tür tanımının adı. Geçerli bir JavaScript tanımlayıcısı olmalıdır. |
tür | Yes | Tür tanımının türü. İzin verilen türler ve değerler dize, securestring, int, bool, object, secureObject ve dizidir. Bkz. ARM şablonlarındaki veri türleri. |
Allowedvalues | No | Doğru değerin sağlandığından emin olmak için tür tanımı için izin verilen değerler dizisi. |
Minvalue | No | Int türü tanımları için en düşük değerdir; bu değer dahil edilir. |
Maxvalue | No | Int türü tanımları için en büyük değerdir; bu değer kapsayıcıdır. |
Minlength | No | Dize, güvenli dize ve dizi türü tanımları için minimum uzunluk, bu değer dahil. |
Maxlength | No | Dize, güvenli dize ve dizi türü tanımları için uzunluk üst sınırıdır; bu değer kapsayıcıdır. |
prefixItems | No | Aynı dizindeki bir dizinin öğesini doğrulama şeması. |
öğe | No | Dizini kısıtlamanın en büyük dizininden büyük olan dizinin tüm öğelerine uygulanan şema veya dizini kısıtlamanın en büyük prefixItems dizininden prefixItems büyük olan dizinin öğelerini denetlemek için boole değeri. |
properties | No | Nesneyi doğrulama şeması. |
additionalProperties | No | Kısıtlamada belirtilmeyen tüm özelliklere uygulanan şema veya kısıtlamada properties tanımlanmamış properties herhangi bir özelliği kabul etmek için boole değeri. |
Discriminator | No | Ayrımcı özelliğine göre uygulanacak şema. |
nullable | No | Değerin null veya atlanmış olabileceğini gösteren bir boole değeri. |
açıklama | No | Portal aracılığıyla kullanıcılara görüntülenen tür tanımının açıklaması. Daha fazla bilgi için bkz. Şablonlardaki açıklamalar. |
Tür tanımlarının nasıl kullanılacağına ilişkin örnekler için bkz. ARM şablonlarındaki tür tanımları.
Bicep'te bkz . Kullanıcı tanımlı veri türleri.
Parametreler
Şablonun parameters
bölümünde, kaynakları dağıtırken hangi değerleri girebileceğinizi belirtirsiniz. Şablonda 256 parametreyle sınırlısınız. Birden çok özellik içeren nesneleri kullanarak parametre sayısını azaltabilirsiniz.
Bir parametre için kullanılabilir özellikler şunlardır:
"parameters": {
"<parameter-name>" : {
"type" : "<type-of-parameter-value>",
"defaultValue": "<default-value-of-parameter>",
"allowedValues": [ "<array-of-allowed-values>" ],
"minValue": <minimum-value-for-int>,
"maxValue": <maximum-value-for-int>,
"minLength": <minimum-length-for-string-or-array>,
"maxLength": <maximum-length-for-string-or-array>,
"prefixItems": <schema-for-validating-array>,
"items": <schema-for-validating-array-or-boolean>,
"properties": <schema-for-validating-object>,
"additionalProperties": <schema-for-validating-object-or-boolean>,
"discriminator": <schema-to-apply>,
"nullable": <boolean>,
"metadata": {
"description": "<description-of-the parameter>"
}
}
}
Öğe adı | Gerekli | Açıklama |
---|---|---|
parametre-adı | Yes | Parametrenin adı. Geçerli bir JavaScript tanımlayıcısı olmalıdır. |
tür | Yes | Parametre değerinin türü. İzin verilen türler ve değerler dize, securestring, int, bool, object, secureObject ve dizidir. Bkz. ARM şablonlarındaki veri türleri. |
defaultValue | No | Parametre için değer sağlanmazsa parametresi için varsayılan değer. |
Allowedvalues | No | Doğru değerin sağlandığından emin olmak için parametresi için izin verilen değerler dizisi. |
Minvalue | No | Int türü parametreleri için en düşük değerdir; bu değer dahil edilir. |
Maxvalue | No | Int türü parametreleri için en yüksek değerdir; bu değer dahil edilir. |
Minlength | No | Dize, güvenli dize ve dizi türü parametreleri için minimum uzunluk, bu değer dahil. |
Maxlength | No | Dize, güvenli dize ve dizi türü parametreleri için uzunluk üst sınırı; bu değer kapsayıcıdır. |
prefixItems | No | Aynı dizindeki bir dizinin öğesini doğrulamak için tür tanımı.
prefixItems yalnızca languageVersion 2.0'da desteklenir. |
öğe | No | Dizini kısıtlamanın en büyük dizininden büyük olan dizinin tüm öğelerine uygulanan şema veya dizini kısıtlamanın en büyük prefixItems dizininden prefixItems büyük olan dizinin öğelerini denetlemek için boole değeri.
items yalnızca languageVersion 2.0'da desteklenir. |
properties | No | Nesneyi doğrulama şeması.
properties yalnızca languageVersion 2.0'da desteklenir. |
additionalProperties | No | Kısıtlamada belirtilmeyen tüm özelliklere uygulanan şema veya kısıtlamada properties tanımlanmamış properties herhangi bir özelliği kabul etmek için boole değeri.
additionalProperties yalnızca languageVersion 2.0'da desteklenir. |
Discriminator | No | Ayrımcı özelliğine göre uygulanacak şema.
discriminator yalnızca languageVersion 2.0'da desteklenir. |
nullable | No | Değerin null veya atlanmış olabileceğini gösteren bir boole değeri.
nullable yalnızca languageVersion 2.0'da desteklenir. |
açıklama | No | Portal aracılığıyla kullanıcılara görüntülenen parametrenin açıklaması. Daha fazla bilgi için bkz. Şablonlardaki açıklamalar. |
Parametrelerin nasıl kullanılacağına ilişkin örnekler için bkz. ARM şablonlarındaki parametreler.
Bicep'te bkz. parametreler.
Değişkenler
variables
bölümünde, şablonunuzun tamamında kullanılabilecek değerler oluşturursunuz. Değişkenleri tanımlamanız gerekmez, ancak bunlar genellikle karmaşık ifadeleri azaltarak şablonunuzu basitleştirir. Her değişkenin biçimi veri türlerinden biriyle eşleşir. Şablonda 256 değişkenle sınırlısınız.
Aşağıdaki örnekte değişken tanımlamaya yönelik kullanılabilir seçenekler gösterilmektedir:
"variables": {
"<variable-name>": "<variable-value>",
"<variable-name>": {
<variable-complex-type-value>
},
"<variable-object-name>": {
"copy": [
{
"name": "<name-of-array-property>",
"count": <number-of-iterations>,
"input": <object-or-value-to-repeat>
}
]
},
"copy": [
{
"name": "<variable-array-name>",
"count": <number-of-iterations>,
"input": <object-or-value-to-repeat>
}
]
}
Bir değişken için birkaç değer oluşturma hakkında copy
bilgi için bkz . Değişken yinelemesi.
Değişkenleri kullanma örnekleri için bkz. ARM şablonundaki değişkenler.
Bicep'te değişkenlere bakın.
İşlevler
Şablonunuzun içinde kendi işlevlerinizi oluşturabilirsiniz. Bu işlevler şablonunuzda kullanılabilir. Genellikle, şablonunuzun tamamında yinelemek istemediğiniz karmaşık ifadeler tanımlarsınız. Şablonlarda desteklenen ifadelerden ve işlevlerden kullanıcı tanımlı işlevleri oluşturursunuz.
Kullanıcı işlevi tanımlarken bazı kısıtlamalar vardır:
- İşlev değişkenlere erişemiyor.
- İşlev yalnızca işlevde tanımlanan parametreleri kullanabilir. Kullanıcı tanımlı bir işlev içinde parameters işlevini kullandığınızda, bu işlevin parametreleriyle sınırlısınız demektir.
- İşlev, kullanıcı tanımlı diğer işlevleri çağıramaz.
- İşlev başvuru işlevini kullanamaz.
- İşlev parametrelerinin varsayılan değerleri olamaz.
"functions": [
{
"namespace": "<namespace-for-functions>",
"members": {
"<function-name>": {
"parameters": [
{
"name": "<parameter-name>",
"type": "<type-of-parameter-value>"
}
],
"output": {
"type": "<type-of-output-value>",
"value": "<function-return-value>"
}
}
}
}
],
Öğe adı | Gerekli | Açıklama |
---|---|---|
ad alanı | Yes | Özel işlevler için ad alanı. Şablon işlevleriyle adlandırma çakışmalarını önlemek için kullanın. |
işlev-adı | Yes | Özel işlevin adı. İşlevi çağırırken işlev adını ad alanıyla birleştirin. Örneğin, contoso ad alanında adlı uniqueName bir işlevi çağırmak için kullanın "[contoso.uniqueName()]" . |
parametre-adı | No | Özel işlev içinde kullanılacak parametrenin adı. |
parametre-değeri | No | Parametre değerinin türü. İzin verilen türler ve değerler dize, securestring, int, bool, object, secureObject ve dizidir. |
çıkış türü | Yes | Çıkış değerinin türü. Çıkış değerleri, işlev giriş parametreleriyle aynı türleri destekler. |
output-value | Yes | İşlevden değerlendirilen ve döndürülen şablon dili ifadesi. |
Özel işlevlerin nasıl kullanılacağına ilişkin örnekler için bkz. ARM şablonunda kullanıcı tanımlı işlevler.
Bicep'te kullanıcı tanımlı işlevler desteklenmez. Bicep çeşitli işlevleri ve işleçleri destekler.
Kaynaklar
resources
bölümünde dağıtılan veya güncelleştirilen kaynakları tanımlarsınız. Şablonda 800 kaynakla sınırlısınız.
Kaynakları aşağıdaki yapıyla tanımlarsınız:
"resources": [
{
"condition": "<true-to-deploy-this-resource>",
"type": "<resource-provider-namespace/resource-type-name>",
"apiVersion": "<api-version-of-resource>",
"name": "<name-of-the-resource>",
"comments": "<your-reference-notes>",
"location": "<location-of-resource>",
"dependsOn": [
"<array-of-related-resource-names>"
],
"tags": {
"<tag-name1>": "<tag-value1>",
"<tag-name2>": "<tag-value2>"
},
"identity": {
"type": "<system-assigned-or-user-assigned-identity>",
"userAssignedIdentities": {
"<resource-id-of-identity>": {}
}
},
"sku": {
"name": "<sku-name>",
"tier": "<sku-tier>",
"size": "<sku-size>",
"family": "<sku-family>",
"capacity": <sku-capacity>
},
"kind": "<type-of-resource>",
"scope": "<target-scope-for-extension-resources>",
"copy": {
"name": "<name-of-copy-loop>",
"count": <number-of-iterations>,
"mode": "<serial-or-parallel>",
"batchSize": <number-to-deploy-serially>
},
"plan": {
"name": "<plan-name>",
"promotionCode": "<plan-promotion-code>",
"publisher": "<plan-publisher>",
"product": "<plan-product>",
"version": "<plan-version>"
},
"properties": {
"<settings-for-the-resource>",
"copy": [
{
"name": ,
"count": ,
"input": {}
}
]
},
"resources": [
"<array-of-child-resources>"
]
}
]
Öğe adı | Gerekli | Açıklama |
---|---|---|
Durum | No | Kaynağın bu dağıtım sırasında sağlanıp sağlanmadığını gösteren Boole değeri. olduğunda true , kaynak dağıtım sırasında oluşturulur. olduğunda false , bu dağıtım için kaynak atlanır.
Koşula bakın. |
tür | Yes | Kaynağın türü. Bu değer, kaynak sağlayıcısının ad alanı ile kaynak türünün (örneğin Microsoft.Storage/storageAccounts ) birleşimidir. Kullanılabilir değerleri belirlemek için bkz. şablon başvurusu. Bir alt kaynak için türün biçimi, üst kaynak içinde iç içe mi yoksa üst kaynağın dışında mı tanımlandığına bağlıdır. Bkz. Alt kaynaklar için ad ve tür ayarlama. |
apiVersion | Yes | Kaynağı oluşturmak için kullanılacak REST API sürümü. Yeni bir şablon oluştururken bu değeri dağıttığınız kaynağın en son sürümüne ayarlayın. Şablon gerektiği gibi çalıştığı sürece aynı API sürümünü kullanmaya devam edin. Aynı API sürümünü kullanmaya devam ederek, yeni bir API sürümünün şablonunuzun çalışma şeklini değiştirme riskini en aza indirirsiniz. API sürümünü yalnızca daha sonraki bir sürümde kullanıma sunulan yeni bir özelliği kullanmak istediğinizde güncelleştirebilirsiniz. Kullanılabilir değerleri belirlemek için bkz. şablon başvurusu. |
name | Yes | Kaynağın adı. Adın RFC3986 tanımlanan URI bileşeni kısıtlamalarına uyması gerekir. Kaynak adını dış taraflara sunan Azure hizmetleri, başka bir kimlik sahtekarlığına yönelik bir girişim olmadığından emin olmak için adı doğrular. Bir alt kaynak için adın biçimi, üst kaynak içinde iç içe mi yoksa üst kaynak dışında mı tanımlandığına bağlıdır. Bkz. Alt kaynaklar için ad ve tür ayarlama. |
yorumlar | No | Şablonunuzdaki kaynakları belgeleme notlarınız. Daha fazla bilgi için bkz. Şablonlardaki açıklamalar. |
location | Değişir | Sağlanan kaynağın desteklenen coğrafi konumları. Kullanılabilir konumlardan herhangi birini seçebilirsiniz, ancak genellikle kullanıcılarınıza yakın bir konum seçmek mantıklıdır. Genellikle, birbiriyle etkileşim kuran kaynakları aynı bölgeye yerleştirmek de mantıklıdır. Çoğu kaynak türü bir konum gerektirir, ancak bazı türler (rol ataması gibi) bir konum gerektirmez. Bkz. Kaynak konumunu ayarlama. |
dependsOn | No | Bu kaynak dağıtılmadan önce dağıtılması gereken kaynaklar. Resource Manager kaynaklar arasındaki bağımlılıkları değerlendirir ve doğru sırada dağıtır. Kaynaklar birbirine bağımlı olmadığında paralel olarak dağıtılır. Değer, kaynak adlarının veya kaynak benzersiz tanımlayıcılarının virgülle ayrılmış listesi olabilir. Yalnızca bu şablonda dağıtılan kaynakları listeleyin. Bu şablonda tanımlanmayan kaynakların zaten mevcut olması gerekir. Dağıtımınızı yavaşlatabilecek ve döngüsel bağımlılıklar oluşturabilecekleri için gereksiz bağımlılıklar eklemekten kaçının. Bağımlılıkları ayarlama yönergeleri için bkz. ARM şablonlarında kaynakları dağıtma sırasını tanımlama. |
etiketler | No | Kaynakla ilişkili etiketler. Aboneliğiniz genelinde kaynakları mantıksal olarak düzenlemek için etiketler uygulayın. |
identity | No | Bazı kaynaklar Azure kaynakları için yönetilen kimlikleri destekler. Bu kaynaklar, kaynak bildiriminin kök düzeyinde bir kimlik nesnesine sahiptir. Kimliğin kullanıcı tarafından mı yoksa sistem tarafından mı atandığını ayarlayabilirsiniz. Kullanıcı tarafından atanan kimlikler için kimliklerin kaynak kimliklerinin listesini sağlayın. Anahtarı kaynak kimliğine, değeri ise boş bir nesneye ayarlayın. Daha fazla bilgi için bkz . Şablonları kullanarak Azure VM'sinde Azure kaynakları için yönetilen kimlikleri yapılandırma. |
Sku | No | Bazı kaynaklar dağıtılacak SKU'yu tanımlayan değerlere izin verir. Örneğin, depolama hesabı için yedeklilik türünü belirtebilirsiniz. |
Tür | No | Bazı kaynaklar, dağıttığınız kaynak türünü tanımlayan bir değere izin verir. Örneğin, oluşturulacak Azure Cosmos DB örneğinin türünü belirtebilirsiniz. |
scope | No | Kapsam özelliği yalnızca uzantı kaynak türleri için kullanılabilir. Dağıtım kapsamından farklı bir kapsam belirtirken bunu kullanın. Bkz . ARM şablonlarında uzantı kaynakları için kapsamı ayarlama. |
kopyalama | No | Birden fazla örnek gerekiyorsa, oluşturulacak kaynak sayısı. Varsayılan mod paraleldir. Tümünün veya kaynakların aynı anda dağıtılmasını istemediğinizde seri modu belirtin. Daha fazla bilgi için bkz. Azure Resource Manager'de çeşitli kaynak örnekleri oluşturma. |
plan | No | Bazı kaynaklar, dağıtılacak planı tanımlayan değerlere izin verir. Örneğin, bir sanal makine için market görüntüsünü belirtebilirsiniz. |
properties | No | Kaynağa özgü yapılandırma ayarları. Özelliklerin değerleri, kaynağı oluşturmak için REST API işlemi (PUT yöntemi) için istek gövdesinde sağladığınız değerlerle aynıdır. Bir özelliğin birkaç örneğini oluşturmak için bir kopyalama dizisi de belirtebilirsiniz. Kullanılabilir değerleri belirlemek için bkz. şablon başvurusu. |
kaynaklar | No | Tanımlanan kaynağa bağlı alt kaynaklar. Yalnızca üst kaynağın şeması tarafından izin verilen kaynak türlerini sağlayın. Üst kaynağa bağımlılık örtülü değildir. Bu bağımlılığı açıkça tanımlamanız gerekir. Bkz. Alt kaynaklar için ad ve tür ayarlama. |
ARM JSON şablonlarında Bicep sembolik adını desteklemek için, sürümüyle 2.0
veya daha yenisiyle ekleyin languageVersion
ve bir dizideki kaynak tanımını bir nesne olarak değiştirin.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"languageVersion": "2.0",
"contentVersion": "1.0.0.0",
"resources": {
"<name-of-the-resource>": {
...
}
}
}
Daha fazla bilgi için bkz . Kaynaklar.
Bicep'te kaynaklara bakın.
Çıkışlar
outputs
bölümünde, dağıtımdan döndürülen değerleri belirtirsiniz. Genellikle, dağıtılan kaynaklardan değerler döndürürsiniz. Şablonda 64 çıkışla sınırlısınız.
Aşağıdaki örnekte çıkış tanımının yapısı gösterilmektedir:
"outputs": {
"<output-name>": {
"condition": "<boolean-value-whether-to-output-value>",
"type": "<type-of-output-value>",
"value": "<output-value-expression>",
"copy": {
"count": <number-of-iterations>,
"input": <values-for-the-variable>
}
}
}
Öğe adı | Gerekli | Açıklama |
---|---|---|
output-name | Yes | Çıkış değerinin adı. Geçerli bir JavaScript tanımlayıcısı olmalıdır. |
Durum | No | Bu çıkış değerinin döndürüldüğünü gösteren Boole değeri. olduğunda true , değeri dağıtımın çıkışına eklenir. olduğunda false , bu dağıtım için çıkış değeri atlanır. Belirtilmediğinde, varsayılan değer şeklindedir true . |
tür | Yes | Çıkış değerinin türü. Çıkış değerleri, şablon giriş parametreleriyle aynı türleri destekler. Çıkış türü için securestring belirtirseniz, değer dağıtım geçmişinde görüntülenmez ve başka bir şablondan alınamaz. Birden fazla şablonda gizli dizi değeri kullanmak için, gizli diziyi bir Key Vault depolayın ve parametre dosyasında gizli diziye başvurun. Daha fazla bilgi için bkz. Dağıtım sırasında güvenli parametre değeri geçirmek için Azure Key Vault kullanma. |
değer | No | Değerlendirilen ve çıkış değeri olarak döndürülen şablon dili ifadesi. Değer veya kopya belirtin. |
kopyalama | No | Bir çıkış için birden fazla değer döndürmek için kullanılır. Değer veya kopya belirtin. Daha fazla bilgi için bkz . ARM şablonlarında çıkış yinelemesi. |
Çıkışları kullanma örnekleri için bkz. ARM şablonundaki çıkışlar.
Bicep'te çıkışlara bakın.
Açıklamalar ve meta veriler
Şablonunuz için açıklama ve meta veri eklemek için birkaç seçeneğiniz vardır.
Yorumlar
Satır içi açıklamalar için veya /* ... */
kullanabilirsiniz//
. Visual Studio Code'da, açıklama içeren parametre dosyalarını açıklamalar (JSONC) dosya türüyle JSON olarak kaydedin, aksi takdirde "JSON'da açıklamalara izin verilmiyor" hata iletisini alırsınız.
Not
Açıklamaları olan şablonları dağıtmak için Azure CLI kullanırken 2.3.0 veya sonraki bir sürümü kullanın ve anahtarı belirtin --handle-extended-json-format
.
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2023-03-01",
"name": "[variables('vmName')]", // to customize name, change it in variables
"location": "[parameters('location')]", //defaults to resource group location
"dependsOn": [ /* storage account and network interface must be deployed first */
"[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
"[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
],
Visual Studio Code'da Azure Resource Manager Araçları uzantısı arm şablonunu otomatik olarak algılayabilir ve dil modunu değiştirebilir. Visual Studio Code sağ alt köşesinde Azure Resource Manager Şablonu görüyorsanız satır içi açıklamaları kullanabilirsiniz. Satır içi açıklamalar artık geçersiz olarak işaretlenmez.
Bicep'te yorumlara bakın.
Meta veri
Şablonunuzda neredeyse her yere nesne metadata
ekleyebilirsiniz. Resource Manager nesneyi yoksayar, ancak JSON düzenleyiciniz özelliğin geçerli olmadığı konusunda sizi uyarabilir. nesnesinde, ihtiyacınız olan özellikleri tanımlayın.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"comments": "This template was developed for demonstration purposes.",
"author": "Example Name"
},
için parameters
özelliğine sahip bir metadata
description
nesne ekleyin.
"parameters": {
"adminUsername": {
"type": "string",
"metadata": {
"description": "User name for the Virtual Machine."
}
},
Şablon portal aracılığıyla dağıtılırken, açıklamada sağladığınız metin otomatik olarak bu parametre için bir ipucu olarak kullanılır.
için resources
bir comments
öğe veya metadata
nesne ekleyin. Aşağıdaki örnekte hem bir comments
öğe hem de bir nesne gösterilmektedir metadata
.
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "[format('{0}{1}', 'storage', uniqueString(resourceGroup().id))]",
"comments": "Storage account used to store VM disks",
"location": "[parameters('location')]",
"metadata": {
"comments": "These tags are needed for policy compliance."
},
"tags": {
"Dept": "[parameters('deptName')]",
"Environment": "[parameters('environment')]"
},
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {}
}
]
için outputs
çıkış değerine bir metadata
nesne ekleyin.
"outputs": {
"hostname": {
"type": "string",
"value": "[reference(variables('publicIPAddressName')).dnsSettings.fqdn]",
"metadata": {
"comments": "Return the fully qualified domain name"
}
},
Kullanıcı tanımlı işlevlere nesne metadata
ekleyemezsiniz.
Çok satırlı dizeler
Bir dizeyi birden çok satıra bölebilirsiniz. Örneğin, özelliğine location
ve aşağıdaki JSON örneğindeki açıklamalardan birine bakın.
Not
Şablonları çok satırlı dizelerle dağıtmak için Azure PowerShell veya Azure CLI kullanın. CLI için 2.3.0 veya sonraki bir sürümü kullanın ve anahtarı belirtin --handle-extended-json-format
.
Şablonu Azure portal, DevOps işlem hattı veya REST API aracılığıyla dağıttığınızda çok satırlı dizeler desteklenmez.
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2023-03-01",
"name": "[variables('vmName')]", // to customize name, change it in variables
"location": "[
parameters('location')
]", //defaults to resource group location
/*
storage account and network interface
must be deployed first
*/
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
"[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
],
Bicep'te çok satırlı dizelere bakın.
languageVersion 2.0
Not
Deneysel işlevler herhangi bir languageVersion
zamanda değiştirilebildiği için üretim ortamlarında ile bitenlerin -experimental
kullanılması önerilmez.
Not
Visual Studio Code için Azure Resource Manager Araçları uzantısının geçerli sürümü languageVersion 2.0'da yapılan iyileştirmeleri tanımıyor.
languageVersion 2.0'ı kullanmak için şablonunuza ekleyin "languageVersion": "2.0"
:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"languageVersion": "2.0",
"contentVersion": "1.0.0.0",
"resources": {
"<name-of-the-resource>": {
...
}
}
}
languageVersion 2.0 ile birlikte gelen iyileştirmeler ve değişiklikler:
- ARM JSON şablonunda sembolik ad kullanın. Daha fazla bilgi için bkz. Sembolik ad kullanma.
- Kaynak kopyalama döngülerinde sembolik ad kullanın. Bkz . Sembolik ad kullanma.
- Dizilerde
dependsOn
sembolik ad kullanın. Bkz . DependsOn ve Depend on resources in a loop. - İşlevde
reference
kaynak adı yerine sembolik ad kullanın. Başvuruya bakın. - Kaynak koleksiyonunun çalışma zamanı durumlarını temsil eden bir nesne dizisi döndüren references() işlevi. Başvurulara bakın.
- Arm'nin bir kaynağı dağıtmak yerine okuması için mevcut kaynakları bildirmek için 'mevcut' kaynak özelliğini kullanın. Bkz. Mevcut kaynakları bildirme.
- Kullanıcı tanımlı türler oluşturun. Bkz . Tür tanımı.
- Parametrelerde ve çıkışlarda kullanılacak ek toplama türü doğrulama kısıtlamaları.
- özelliği için
expressionEvaluationOptions
varsayılan değer şeklindedirinner
. Değerouter
engellenir. Bkz. İç içe şablonlardaki ifade değerlendirme kapsamı. - işlevi özelliklerin
deployment
sınırlı bir alt kümesini döndürür. Bkz. dağıtım. - Dağıtımlar kaynağı sembolik ad dağıtımında kullanılıyorsa apiVersion
2020-09-01
veya sonraki bir sürümü kullanın. - Kaynak tanımında, bir ifade içindeki çift kaçış değerleri artık gerekli değildir. Bkz . Kaçış karakterleri.
Sonraki adımlar
- Farklı türlerde çözümler için tam şablonları görüntülemek üzere bkz. Azure Hızlı Başlangıç Şablonları.
- Şablon içinden kullanabileceğiniz işlevler hakkında ayrıntılı bilgi için bkz. ARM şablonu işlevleri.
- Dağıtım sırasında birkaç şablonu birleştirmek için bkz. Azure kaynaklarını dağıtırken bağlantılı ve iç içe şablonları kullanma.
- Şablon oluşturma hakkında öneriler için bkz. ARM şablonu en iyi yöntemleri.
- Sık sorulan soruların yanıtları için bkz. ARM şablonları hakkında sık sorulan sorular.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin