ARMテンプレート用のPowerShellスクリプトを使用して、いくつかのリソースをAzure、特にASE v2にデプロイしました。ARMテンプレートのif/else powershellを作成しようとしています
マイARMテンプレートを述べ、その中に条件があります。
"sv-ase-version": "v2",
"sv-asp-template-filenameHash": {
"v1": "[concat(variables('sv-baseURI'),concat('/azuredeploy-asp.v1.json',parameters('_artifactsLocationSasToken')))]",
"v2": "[concat(variables('sv-baseURI'),concat('/azuredeploy-asp.json',parameters('_artifactsLocationSasToken')))]"
},
を私はPowerShellで今持っているもの:私はPowerShellで追加したい何
Param(
[string] $TemplateFile = 'azuredeploy-dev.json',
[string] $TemplateParametersFile = 'azuredeploy-dev.parameters.json',
)
$TemplateFile = [System.IO.Path]::GetFullPath([System.IO.Path]::Combine($PSScriptRoot, $TemplateFile))
$TemplateParametersFile = [System.IO.Path]::GetFullPath([System.IO.Path]::Combine($PSScriptRoot, $TemplateParametersFile))
は次のとおりです。
Param(
[string] $TemplateFile = 'azuredeploy-dev.json',
[string] $TemplateParametersFile = 'azuredeploy-dev.parameters.json',
[string] $TemplateFilev2 = 'azuredeploy.json',
[string] $TemplateParametersFilev2 = 'azuredeploy.parameters.json',
)
#Checking if this is the correct way to do it
if ("sv-ase-version" -eq "v1") {
$TemplateFile = [System.IO.Path]::GetFullPath([System.IO.Path]::Combine($PSScriptRoot, $TemplateFile))
$TemplateParametersFile = [System.IO.Path]::GetFullPath([System.IO.Path]::Combine($PSScriptRoot, $TemplateParametersFile))
}
else {
$TemplateFilev2 = [System.IO.Path]::GetFullPath([System.IO.Path]::Combine($PSScriptRoot, $TemplateFilev2))
$TemplateParametersFilev2 = [System.IO.Path]::GetFullPath([System.IO.Path]::Combine($PSScriptRoot, $TemplateParametersFilev2))
}
私の意図:PowerShellで変更を加えることなく、JSONファイルにスイッチを入れてください。
これは機能しますか?どのようにこれに違ってアプローチしますか?
ありがとうございました。
'if(" sv-ase-version "-eq" v1 ")'これは意味がありません。これは常に偽です。あなたは何を達成しようとしていますか? – 4c74356b41
sv-ase-versionの値がv1の場合、powershellに2つの変数を使用させようとしています。それがv2の場合、他の2つの変数を使用する必要があります。 –
その値はどこから来ますか?現在ハードコードされている – 4c74356b41