[解決済み] ARMのテンプレートです。パラメータで名前を設定したリソースを参照する方法
2022-03-14 16:26:44
質問
Azure Resource Manager のテンプレートで、ストレージアカウントをスピンアップしているのですが、その名前が以下のようにパラメータで設定されています。
"resources": [
{
"name": "[parameters('storageAccountName')]",
"type": "Microsoft.Storage/storageAccounts",
リソースの詳細を出力したいのですが、私が見つけたほとんどの例がリソースを名前で参照しているため、ストレージアカウントを参照する方法が見当たりません。
こんなことをやってみました。
"outputs": {
"storageKey": {
"type": "string",
"value": "[reference([parameters('storageAccountName')])]"
}
}
しかし、エラーメッセージが表示されます。
行 '49' と列 '23' のテンプレート出力 'storageKey' は有効ではありません。 Unable to parse language expression 'reference([parameters('storageAccountName')])': expected token 'Identifier' and actual 'LeftSquareBracket'.
では、parameters.json ファイルを使ってリソースの名前を設定した場合、どのように参照すればよいのでしょうか。
どのように解決するのですか?
既存の答えに追加するだけです(それはそれでいいのですが、不完全です)。
resourceId()
関数を使用します。
reference(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), 'api-version-goes-here')
その理由はいくつかあります。
- これはリソースを参照する普遍的な方法です。この方法を使って、別のリソースグループや別のサブスクリプションのリソースを参照できます(同じデプロイメント内のリソースだけではありません)。
- 異なるタイプで同じ名前のリソースが2つ以上ある場合(例えばストレージアカウントと仮想マシン)、どのリソースをターゲットにしているのか判断できないため、既存の回答は失敗します。
ps.
dependsOn
を使用する方がより信頼性が高いと思います。
resourceId()
特に複雑なテンプレートではね。
関連
-
[解決済み] Azure Kubernetes "az aks get-credentials "コマンドの実行時のエラーについて
-
[解決済み] Set-AzStorageBlobContentを使用して、プロンプトなしで新しいコンテンツのみをアップロードする。
-
[解決済み] "'New-AzureStorageContext' is not recognized," Yet the Module is Installed (モジュールはインストールされている)
-
[解決済み] レガシーAzure MFAをPhoneFactorで使用すると、エラー149が発生します。
-
[解決済み] Connect-AzAccount - azureのデバイス認証を回避する方法は?
-
[解決済み] Azure Resource Groupの名前を変更するにはどうすればよいですか?
-
[解決済み] Azure Service Principalとは何ですか?
-
[解決済み] Terraformのdepends_onとモジュール
-
[解決済み] Azure Blob StorageとFile Serviceの比較【終了しました】。
-
[解決済み] Azureです。Azureにデプロイされたファイルを表示する方法はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] "'New-AzureStorageContext' is not recognized," Yet the Module is Installed (モジュールはインストールされている)
-
[解決済み] コンテナにアンレディステータスがある」と表示される。Kubernetesで「[]」というエラーが発生する
-
[解決済み] カンマ区切りの文字列を分割する
-
[解決済み] バックエンドの初期化が必要なため、"terraform init" を実行してください。
-
[解決済み] レガシーAzure MFAをPhoneFactorで使用すると、エラー149が発生します。
-
[解決済み] Azure Application InsightsでBeginScopeを使うには(https://portal.azure.com)?
-
[解決済み] Azure Resource Groupの名前を変更するにはどうすればよいですか?
-
[解決済み] Azure Service Principalとは何ですか?
-
[解決済み】Azure Web SiteとAzure Web Roleの違いは何ですか?
-
[解決済み] Azureです。Azureにデプロイされたファイルを表示する方法はありますか?