ARM şablonları nelerdir?
Buluta geçişle birlikte birçok ekip çevik geliştirme yöntemlerini benimsemiştir. Bu ekipler, süreçleri hızla yinelemektedir. Ekiplerin çözümlerini tekrar tekrar buluta dağıtmaları ve altyapılarının güvenilir bir durumda olduğundan emin olmaları şarttır. Altyapı yinelemeli sürecin bir parçası haline geldikçe, operasyonlar ve geliştirme arasındaki bölme ortadan kalkmıştır. Ekiplerin birleşik bir süreç aracılığıyla altyapı ve uygulama kodunu yönetmesi gerekir.
Bu zorlukların üstesinden gelmek için dağıtımları otomatikleştirebilir ve kod olarak altyapı yöntemini kullanabilirsiniz. Kodda dağıtılması gereken altyapıyı tanımlarsınız. Altyapı kodu projenizin bir parçası olur. Uygulama kodunda olduğu gibi altyapı kodunu da bir kaynak depoda depolar ve sürümüne eklersiniz. Ekibinizdeki herkes kodu çalıştırabilir ve benzer ortamlar dağıtabilir.
Azure çözümlerinize kod olarak altyapı uygulamak için Azure Resource Manager şablonlarını (ARM şablonları) kullanın. Şablon, projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Şablon, dağıtmak istediğiniz öğeyi oluşturmaya yönelik programlama komutları dizisini yazmak zorunda kalmadan bu öğeyi belirtmenize imkan tanıyan bildirim temelli söz dizimini kullanır. Şablonda, dağıtılacak kaynakları ve bu kaynakların özelliklerini belirtirsiniz. Ayrıca bu kaynakların hangi kaynak grubunda dağıtılacağını da belirtebilirsiniz.
İpucu
ARM şablonlarıyla aynı özellikleri sunan ancak kullanımı daha kolay olan bir söz dizimi ile Bicep adlı yeni bir dil ekledik. Her Bicep dosyası dağıtım sırasında otomatik olarak bir ARM şablonuna dönüştürülür. Kod seçenekleri olarak altyapıyı düşünüyorsanız Bicep'e bakmanızı öneririz. Daha fazla bilgi için bkz . Bicep nedir?.
ARM şablonlarını kullanmaya nasıl başlayabileceğiniz hakkında bilgi edinmek için aşağıdaki videoya bakın.
ARM şablonlarını neden seçmelisiniz?
ARM şablonlarını ve kod hizmeti olarak diğer altyapılardan birini kullanmaya karar vermeye çalışıyorsanız şablonları kullanmanın aşağıdaki avantajlarını göz önünde bulundurun:
Bildirim temelli söz dizimi: ARM şablonları, azure altyapısının tamamını bildirimli olarak oluşturmanıza ve dağıtmanıza olanak sağlar. Örneğin, yalnızca sanal makineleri değil, ağ altyapısını, depolama sistemlerini ve ihtiyacınız olabilecek diğer kaynakları da dağıtabilirsiniz.
Yinelenebilir sonuçlar: Altyapınızı geliştirme yaşam döngüsü boyunca tekrar tekrar dağıtın ve kaynaklarınızın tutarlı bir şekilde dağıtıldığından eminim. Şablonlar bir kez etkili olur; bu da aynı şablonu birçok kez dağıtabileceğiniz ve aynı durumdaki aynı kaynak türlerini alabileceğiniz anlamına gelir. Güncelleştirmeleri temsil eden çok sayıda ayrı şablon geliştirmek yerine istenen durumu temsil eden bir şablon geliştirebilirsiniz. Örneğin, aşağıdaki dosya bir depolama hesabı oluşturur. Bu şablonu dağıtırsanız ve belirtilen özelliklere sahip depolama hesabı zaten varsa, hiçbir değişiklik yapılmaz.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": {
"mystore": {
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2023-04-01",
"name": "mystorageaccount",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
}
}
}
Düzenleme: İşlemleri sıralamanın karmaşıklıkları konusunda endişelenmeniz gerekmez. Resource Manager, birbirine bağlı kaynakların doğru sırada oluşturulması için dağıtımını düzenler. Mümkün olduğunda Resource Manager, dağıtımlarınızın seri dağıtımlardan daha hızlı bitmesi için kaynakları paralel olarak dağıtır. Şablonu birden çok kesinlik temelli komut yerine tek bir komutla dağıtırsınız.
Modüler dosyalar: Şablonlarınızı daha küçük, yeniden kullanılabilir bileşenlere bölebilir ve dağıtım zamanında birbirine bağlayabilirsiniz. Bir şablonu başka bir şablonun içine de iç içe yerleştirebilirsiniz.
Herhangi bir Azure kaynağı oluşturma: Şablonlardaki yeni Azure hizmetlerini ve özelliklerini hemen kullanabilirsiniz. Bir kaynak sağlayıcısı yeni kaynaklar tanıttığı anda, bu kaynakları şablonlar aracılığıyla dağıtabilirsiniz. Yeni hizmetleri kullanmadan önce araçların veya modüllerin güncelleştirilmesini beklemeniz gerekmez.
Genişletilebilirlik: Dağıtım betikleriyle şablonlarınıza PowerShell veya Bash betikleri ekleyebilirsiniz. Dağıtım betikleri, dağıtım sırasında kaynak ayarlama yeteneğinizi genişletir. Betik şablona dahil edilebilir veya bir dış kaynakta depolanabilir ve şablona başvurabilir. Dağıtım betikleri, uçtan uca ortam kurulumunuzu tek bir ARM şablonunda tamamlamanızı sağlar.
Test: Şablonunuzu ARM şablon araç seti (arm-ttk) ile test ederek önerilen yönergelere uyduğundan emin olabilirsiniz. Bu test seti, GitHub'dan indirebileceğiniz bir PowerShell betiğidir. Araç seti, şablon dilini kullanarak uzmanlık geliştirmenizi kolaylaştırır.
Değişiklikleri önizleme: Şablonu dağıtmadan önce değişikliklerin önizlemesini almak için durum işlemini kullanabilirsiniz. Durum ile, hangi kaynakların oluşturulacağını, güncelleştirileceğini veya silineceğini ve değiştirilecek kaynak özelliklerini görürsünüz. What-if işlemi ortamınızın geçerli durumunu denetler ve durumu yönetme gereksinimini ortadan kaldırır.
Yerleşik doğrulama: Şablonunuz yalnızca doğrulama geçirildikten sonra dağıtılır. Resource Manager, dağıtımı başlatmadan önce şablonu denetler ve dağıtımın başarılı olduğundan emin olur. Dağıtımınızın yarı mamul durumda durma olasılığı daha düşüktür.
İzlenen dağıtımlar: Azure portalında dağıtım geçmişini gözden geçirebilir ve şablon dağıtımı hakkında bilgi alabilirsiniz. Dağıtılan şablonu, geçirilen parametre değerlerini ve çıkış değerlerini görebilirsiniz. Kod hizmetleri olarak diğer altyapı portal üzerinden izlenmez.
Kod olarak ilke: Azure İlkesi, idareyi otomatikleştirmek için kod çerçevesi olarak bir ilkedir. Azure ilkelerini kullanıyorsanız, ilke düzeltmesi şablonlar aracılığıyla dağıtıldığında uyumlu olmayan kaynaklarda yapılır.
Dağıtım Şemaları: Mevzuat ve uyumluluk standartlarını karşılamak için Microsoft tarafından sağlanan Şemalardan yararlanabilirsiniz. Bu şemalar, çeşitli mimariler için önceden oluşturulmuş şablonlar içerir.
CI/CD tümleştirmesi: Şablonları, hızlı ve güvenilir uygulama ve altyapı güncelleştirmeleri için yayın işlem hatlarınızı otomatikleştirebilen sürekli tümleştirme ve sürekli dağıtım (CI/CD) araçlarınızla tümleştirebilirsiniz. Azure DevOps ve Resource Manager şablon görevini kullanarak, ARM şablon projelerini sürekli olarak derlemek ve dağıtmak için Azure Pipelines'ı kullanabilirsiniz. Daha fazla bilgi edinmek için bkz . İşlem hatları ile VS projesi ve Öğretici: Azure Resource Manager şablonlarının Azure Pipelines ile sürekli tümleştirilmesi.
Dışarı aktarılabilir kod: Kaynak grubunun geçerli durumunu dışarı aktararak veya belirli bir dağıtım için kullanılan şablonu görüntüleyerek mevcut bir kaynak grubu için şablon alabilirsiniz. Dışarı aktarılan şablonu görüntülemek şablon söz dizimi hakkında bilgi edinmek için yararlı bir yoldur.
Yazma araçları: Visual Studio Code ve şablon aracı uzantısıyla şablonlar yazabilirsiniz. IntelliSense, söz dizimi vurgulama, satır içi yardım ve diğer birçok dil işlevine sahip olursunuz. Visual Studio Code'a ek olarak, Visual Studio'yu da kullanabilirsiniz.
Şablon dosyası
Şablonunuzun içinde JSON'un özelliklerini genişleten şablon ifadeleri yazabilirsiniz. Bu ifadeler Resource Manager tarafından sağlanan işlevleri kullanır.
Şablon aşağıdaki bölümlere sahiptir:
Parametreler - Dağıtım sırasında aynı şablonun farklı ortamlarla kullanılmasına izin veren değerler sağlayın.
Değişkenler - Şablonlarınızda yeniden kullanılan değerleri tanımlayın. Bunlar parametre değerlerinden oluşturulabilir.
Kullanıcı tanımlı işlevler - Şablonunuzu basitleştiren özelleştirilmiş işlevler oluşturun.
Kaynaklar - Dağıtılacak kaynakları belirtin.
Çıkışlar - Dağıtılan kaynaklardan değerleri döndürür.
Şablon dağıtım işlemi
Bir şablon dağıttığınızda, Resource Manager şablonu REST API işlemlerine dönüştürür. Örneğin, Resource Manager aşağıdaki kaynak tanımına sahip bir şablonu aldığında:
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "mystorageaccount",
"location": "centralus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
},
]
Tanımı aşağıdaki REST API işlemine dönüştürerek Microsoft.Storage kaynak sağlayıcısına gönderir:
PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/mystorageaccount?api-version=2022-09-01
REQUEST BODY
{
"location": "centralus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {}
}
Kaynak için şablonda ayarladığınız apiVersion öğesinin REST işlemi için API sürümü olarak kullanıldığına dikkat edin. Şablonu tekrar tekrar dağıtabilir ve çalışmaya devam edeceğine güvenebilirsiniz. Aynı API sürümünü kullanarak, sonraki sürümlerde kullanıma sunulacak hataya neden olan değişiklikler konusunda endişelenmeniz gerekmez.
Şablon dağıtmak için aşağıdaki seçeneklerden birini kullanın:
Şablon tasarımı
Şablonları ve kaynak gruplarını tanımlama şekli tamamen size ve çözümünüzü yönetme biçiminize bağlıdır. Örneğin, üç katmanlı uygulamanızı tek bir şablondan tek bir kaynak grubuna dağıtabilirsiniz.
Ancak, bütün altyapınızı tek bir şablonda tanımlamak zorunda değilsiniz. Genellikle, en uygun seçenek dağıtım gereksinimlerinizi hedeflenen, amaca yönelik bir dizi şablona bölüştürmektir. Bu şablonları farklı çözümler için kolayca yeniden kullanabilirsiniz. Belirli bir çözümü dağıtmak için tüm gerekli şablonları bağlayan bir ana şablon oluşturursunuz. Aşağıdaki görüntüde üç katmanlı çözümün iç içe üç şablon içeren ana şablon aracılığıyla nasıl dağıtıldığı gösterilmektedir.
Katmanlarınızın farklı yaşam döngülerine sahip olacağını düşünüyorsanız, üç katmanı farklı kaynak gruplarına dağıtabilirsiniz. Kaynaklar diğer kaynak gruplarındaki kaynaklara bağlanmaya devam edebilir.
İç içe geçmiş şablonlar hakkında daha fazla bilgi için bkz. Azure Resource Manager ile bağlı şablonları kullanma.
Şablonları paylaşma
Şablonunuzu oluşturduktan sonra kuruluşunuzdaki diğer kullanıcılarla paylaşmak isteyebilirsiniz. Şablon özellikleri , bir şablonu kaynak türü olarak depolamanıza olanak tanır. Şablon belirtimine erişimi yönetmek için rol tabanlı erişim denetimi kullanırsınız. Şablon belirtimine okuma erişimi olan kullanıcılar şablonu dağıtabilir, ancak şablonu değiştiremez.
Bu yaklaşım, kuruluşunuzun standartlarına uyan şablonları güvenli bir şekilde paylaşabileceğiniz anlamına gelir.
Destek alın
Azure Resource Manager (ARM) şablonuyla ilgili sorunlar için destek bileti açma adımları şunlardır:
Azure portalını açın.
Sağ üst köşedeki Destek + Sorun Giderme simgesini seçin.
Sorunu kısaca açıklayın bölümüne ARM şablonu yazın ve Git'i seçin.
Hangi hizmetle sorun yaşıyorsunuz? bölümünde İzleme ve Yönetim'in altında Portal'ı ve ardından İleri'yi seçin.
Bir abonelik seçin ve ardından İleri'yi seçin.
ARM şablonlarıyla ilgili sorun'a ve ardından İleri'ye tıklayın.
Sonraki adımlar
- Şablon oluşturma işleminde size yol gösteren adım adım bir öğretici için bkz . Öğretici: İlk ARM şablonunuzu oluşturma ve dağıtma.
- Kılavuzlu Learn modülleriyle ARM şablonları hakkında bilgi edinmek için bkz . ARM şablonlarını kullanarak Azure'da kaynakları dağıtma ve yönetme.
- Şablon dosyalarındaki özellikler hakkında bilgi için bkz . ARM şablonlarının yapısını ve söz dizimini anlama.
- Şablonları dışarı aktarma hakkında bilgi edinmek için bkz . Hızlı Başlangıç: Azure portalını kullanarak ARM şablonları oluşturma ve dağıtma.
- Sık sorulan soruların yanıtları için bkz . ARM şablonları hakkında sık sorulan sorular.