2016-04-03 14 views
0

Ya bağlantı noktası şablonlarını tanımlamayı düşünüyordum, bağlı şablonların hepsinde başvurulan bazı şablonlarda yinelenmeye devam ediyorum gibi görünüyor. Bunun nasıl yapılacağını bile bırakmanın mümkün olup olmadığından emin değilim.ARM şablonları arasında değişkenleri veya sabitleri paylaşma

Örneğin

, ben

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 
    "variables": { 
    "apiVersion": { 
     "resources": { "deployments": "2015-01-01" } 
    } 
    } 
} 

gibi bir şey yapabileceğini azuredeploy-shared.json int ve ilk engel bir resources bölüm olması gerekir olduğunu azuredeploy.json yılında Sonra

resources": [ 
{ 
    "name": "someResource", 
    "type": "Microsoft.Resources/deployments", 
    "apiVersion": "[variables('apiVersion').resources.deployments]", 

gibi kullanabilirsiniz. Yanlış bir şemasına başvurduğumu veya hiç başvurulmaması gerektiğini merak ediyor. Bir kaynak yaratırsam ve bu fikir işe yaramazsa, bu dosyaya azuredeploy.json nasıl başvurmalıdır?

"[concat(parameters('_artifactsLocation'), '/ProjectName/Templates/azuredeploy-shared-json', parameters('_artifactsLocationSasToken'))]" gibi bir şey yapabilirim ancak nerede ve nasıl çalıştığını bilmiyorum. Bu nedenle, çalışma göstergeleri bu açıdan takdir edildi. How to pass variables between templates - ARM json'u gördüm, ama ne yazık ki nasıl çalıştığını ve bağlı Azure örneğini anlamadım.

+0

Sadece senaryonuzu anladığımdan emin olmak için ... aslında 2 json dosyasından parametrerleri/değişkenleri çekmeye çalışıyorsun - biri paylaşımlı değerlerle ve bir tanesi bu dağıtımla özdeş olanlarla mı? –

+0

@ bmoore-msft Diğer dosyalarda "içerebildiğim" bir dosya "sabitleri" oluşturmaya çalışıyorum ve sonra sabitleri bazı sabit değişken isimleriyle referans ediyorum. "ApiVersion" gibi bir sürü ipucum olduğunu fark ettim: "2015-01-01", bu durumda takımın şikayet etmediği bir kerede güncellemek istiyorum ki, bu durumda * "2016- 03-30" *. Korkarım basit bir şey kaçırdım. Diğer parçaları (oradaki "concat" sözcüğünü kullanarak) "dahil etmeyi" ve parametrelerini bunlardan geçirmeyi başardım, ama * onlardan değil. Belki de bir şekilde 'outputs' direktifini kullanmalıyım ..? – Veksi

cevap

2

Tamam, bunu dağıtım çıktısı kullanarak yapabileceğinizi düşünüyorum ... daha basit bir çözüm olabilir gibi görünüyor, ancak senaryoyu anladığım kadarıyla bir tane düşünemiyorum.

1) örneğin tüm sabitlerini içeren bir şablon dağıtmak ve referans işlevi, bunlara erişmek kullanmak istediğiniz şablonu dağıtım o dağıtım

2) için çıkışlar olarak bu sabitleri set

reference('/subscriptions/{GUID}/resourceGroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}','2015-01-01').outputs.{nameOfConstant}.value]" 

Sabitleri güncellemek için # 1 adımını tekrar aynı dağıtım adıyla dağıtın. İşin peşinde misin?

+0

Sanırım çıkışlar gitmek için bir yol. Şablonumu büyüttüm, bu yüzden biraz kırıp test etmeliyim. Bunu onayladığın için teşekkürler! – Veksi