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 |
Ağ | 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"
}
}
]