問題タブ [azure-template]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
932 参照

json - テンプレートからランブックにハッシュテーブル/オブジェクトを渡す方法

テンプレートとそれに付随するランブックを作成しました。テンプレートは Runbook をトリガーします。Runbook のパラメーターの 1 つにオブジェクトを渡そうとするまで、テンプレートと Runbook は正常に動作しています。Azure エラーは次のとおりです。

エラー

が何を意味するのかわかりませんがModelStatejob.properties.parameters.MyTagsは厄介なパラメーターを指しています。

私はそれがデータ型と関係があると確信しています。パラメーターが JSON オブジェクトとして渡され、Runbook がそれを理解できないことが原因である可能性があります。私は、PowerShell からテンプレートにオブジェクトを渡すことに慣れています。

Runbook (Update-ResourceGroupTags.ps1)

テスト用の Runbook は次のようになります。

認証はまだ必要ないため、意図的に入力していませんが、書かれていない/見逃したルールがある場合に備えて、 `[parameter(Mandatory = $true)] を$MyTags試して使用しました。[object]

ゴール

簡単に言うと、テンプレートで複雑なオブジェクトを変数として作成し、それを単一のオブジェクトとして Runbook のパラメーターに渡したいと考えています。値は動的であり、展開時までわかりません。Runbook で各パラメーター (テスト 8) を指定する必要があると、この要件が破られます。

New-AzureRmResourceGroupDeploymentコマンドレットでテンプレートを開始します。

「複合オブジェクト」変数を作成します。

テンプレートは のリソースを実行し"type" : "jobs"ます。

によって実行される Runbook には、次のように渡す必要jobsがあるパラメーターがあります。MyTagsroleTagObjectjobs.properties.parameters.MyTags

これが機能していません。各キーに分解すると (テスト 8)、機能します。

私の最初の考えは、それを単一の文字列に変換し、関数を使用してランブックに渡すことjson()ですが、テンプレートでそれを行う方法がわかりません。

テンプレート (testRunRunbook.json)

この質問をこれ以上行わないように、テンプレートを GIST に入れました。 https://gist.github.com/arcotek-ltd/7c606540​​980a45a3a7915ccae2e0b140

"resources":[]テンプレートが作成されたので、セクションを別のテンプレートにコピーできます。したがって、一部の変数とパラメーターの名前が奇妙に見える場合があります。私が言ったように、この問題を除けば、テンプレートは機能します。

パワーシェル

したがって、PowerShell を使用してテンプレートを呼び出しています。


次のテストを試しました。

テスト 1

コメントを外す$TemplateParametersObject.runbookParameters.MyTags:

結果の失敗- 上記のエラーを参照してください。


テスト 2

に置き換え$MyTagsます$JsonTagsHash:

結果:合格期待どおりに動作します。パラメーターは Runbook に渡されます。


テスト 2 は機能しますが、実行時にテンプレート内で生成されるパラメーターを Runbook に渡すことができる必要があります。つまり、PowerShell を使用できません。テンプレート内job.properties.parameters(gist の 103 行目)

テスト 3

MyTagsそれが問題の原因であることを証明するには、完全に取り除きます。

結果:エラーはありませんがmyTags渡されません (明らかに)。


テスト 4

変数オブジェクトを作成し、それをパラメーターに渡します。

そして戻ってjob.properties.parameters

結果の失敗- 上記のエラーを参照してください。


テスト 5

直接試してください:

結果の失敗- 上記のエラーを参照してください。


テスト 6

json() テンプレート機能を使用します。文字列が必要なので、うまくいくとは思っていません。

結果失敗。予測どおり:


テスト 7

MS が提供するjson() テンプレート関数の例を試してみてください。

結果の失敗- 上記のエラーを参照してください。面白い!しかし、なぜ?動作中の PowerShell テストでは、JSON オブジェクトである必要があることが示唆されています。これは何をするのjson()ではないですか?


テスト 8

オブジェクトを個々のキー/値に分解:

また、Runbook のパラメーターを 1 から 3 に変更する必要があります。

結果パス- ただし、オブジェクトを渡すことができるという考え方は、キーと値のペアをいくつでも持つことができるということです。この方法では、変数とパラメーターをハードコーディングする必要があるだけでなく、Runbook もハードコーディングする必要があります。あまり柔軟ではありません。


私はアイデアがありません。何か提案はありますか?

0 投票する
1 に答える
1235 参照

azure - 入力パラメーターに基づく Azure ARM テンプレート パラメーター

template.json が与えられた場合:

virtualMachineName の入力に基づいて networkInterfaceName を設定するにはどうすればよいですか?

例えば:

VirtualMachineName の入力を求めるプロンプトが表示され、「test-vm」が入力された場合は、networkInterfaceName をデフォルトで「test-vm-nic」に設定します。

この parameters.json を追加しようとしました:

しかし、エラーを受け取ります:

0 投票する
1 に答える
476 参照

azure - docker レジストリからコンテナー イメージをプルして Azure コンテナーをデプロイする方法

私は現在、イメージをパブリック レジストリにプッシュする方法が必要な azure プロジェクトに取り組んでいます。これは、Azure ACR または docker レジストリにすることができます。

Azure は Azure ACR への匿名読み取りアクセスをサポートしていないようです。したがって、唯一の方法は、イメージを Docker レジストリにプッシュし、Azure でのコンテナーのデプロイ中にイメージを Docker レジストリからプルすることです。

出来ますか?もしそうなら、どのようにAzureテンプレートを使用してそれを達成できますか? 例を教えてください。

0 投票する
1 に答える
97 参照

azure - Azure Resource Manager テンプレートのリソース関数を使用できない

私のパラメーターファイルは次のようになります。

adminPassword値は、特定のidを持つ指定されたKeyVaultから取得されます。ただし、「id」値をハードコーディングする必要があります。このリンクに よると、次のようなものを使用して ID を指定できます。

ただし、上記の構文/リソース関数を使用すると、VSTSを使用して App Service をリリースおよびデプロイしているときにエラーが発生します( APP のデプロイにはAzure リソース グループのデプロイタスクを使用しました)。エラーは次のようなものです。

ID は次の形式にする必要があります。

何が間違っているのかわからない?