Azure Resource Manager ile Azure Stack Hub için şablonlar geliştirme

Uygulamanızı geliştirirken Azure ile Azure Stack Hub arasında şablon taşınabilirliğine sahip olmanız önemlidir. Bu makalede Azure Resource Manager şablonları geliştirmeye yönelik önemli noktalar sağlanır. Bu şablonlarla uygulamanızın prototipini oluşturabilir ve Azure Stack Hub ortamına erişim olmadan Azure'da dağıtımı test edebilirsiniz.

Kaynak sağlayıcısı kullanılabilirliği

Dağıtmayı planladığınız şablon yalnızca Azure Stack Hub'da zaten kullanılabilir olan veya önizleme aşamasında olan Microsoft Azure hizmetlerini kullanmalıdır.

Genel ad alanları

Azure Stack Hub veri merkezinizde barındırılırken Azure genel bulutundakinden farklı hizmet uç noktası ad alanlarına sahiptir. Sonuç olarak, Azure Resource Manager şablonlarındaki sabit kodlanmış genel uç noktalar, Bunları Azure Stack Hub'a dağıtmaya çalıştığınızda başarısız olur. Dağıtım sırasında kaynak sağlayıcısından değer almak için ve concatenate işlevlerini kullanarak reference hizmet uç noktalarını dinamik olarak oluşturabilirsiniz. Örneğin, şablonunuzda sabit kodlama blob.core.windows.net yapmak yerine primaryEndpoints.blob dosyasını alıp osDisk.URI uç noktasını dinamik olarak ayarlayın:

"osDisk": {"name": "osdisk","vhd": {"uri":
"[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName')), '2015-06-15').primaryEndpoints.blob, variables('vmStorageAccountContainerName'),
 '/',variables('OSDiskName'),'.vhd')]"}}

API sürümü oluşturma

Azure hizmet sürümleri, Azure ile Azure Stack Hub arasında farklılık gösterebilir. Her kaynak, sunulan özellikleri tanımlayan apiVersion özniteliğini gerektirir. Azure Stack Hub'da API sürümü uyumluluğunu sağlamak için aşağıdaki API sürümleri her kaynak sağlayıcısı için geçerlidir:

Kaynak Sağlayıcısı apiVersion
İşlem 2015-06-15
2015-06-15, 2015-05-01-preview
Depolama 2016-01-01, 2015-06-15, 2015-05-01-preview
KeyVault 2015-06-01
App Service 2015-08-01

Şablon işlevleri

Azure Resource Manager işlevleri dinamik şablonlar oluşturmak için gereken özellikleri sağlar. Örneğin, aşağıdakiler gibi görevler için işlevleri kullanabilirsiniz:

  • Dizeleri birleştirme veya kırpma.
  • Diğer kaynaklardan değerlere başvurma.
  • Birden çok örnek dağıtmak için kaynaklarda yineleme.

Bu işlevler Azure Stack Hub'da kullanılamaz:

  • Atla
  • Take

Kaynak konumu

Azure Resource Manager şablonları, dağıtım sırasında kaynakları yerleştirmek için bir location öznitelik kullanır. Azure'da konumlar Batı ABD veya Güney Amerika gibi bir bölgeye başvurur. Azure Stack Hub veri merkezinizde olduğundan Azure Stack Hub'da konumlar farklıdır. Şablonların Azure ile Azure Stack Hub arasında aktarılabilir olduğundan emin olmak için tek tek kaynakları dağıtırken kaynak grubu konumuna başvurmanız gerekir. Bunu kullanarak [resourceGroup().Location] tüm kaynakların kaynak grubu konumunu devraldığından emin olmak için yapabilirsiniz. Aşağıdaki kod, bir depolama hesabı dağıtırken bu işlevi kullanma örneğidir:

"resources": [
{
  "name": "[variables('storageAccountName')]",
  "type": "Microsoft.Storage/storageAccounts",
  "apiVersion": "[variables('apiVersionStorage')]",
  "location": "[resourceGroup().location]",
  "comments": "This storage account is used to store the VM disks",
  "properties": {
  "accountType": "Standard_LRS"
  }
}
]

Sonraki adımlar