2015-10-19 13 views
15

私はAzureストレージアカウントとWeb Appを持つAzure Appサービスを含む複数のリソースをインスタンス化するAzure Resource Managerテンプレートを作成しています。ARM - テンプレートの後半でAppSettingsで使用するストレージアカウントからアクセスキーを取得するにはどうすればよいですか?

私は、新しく作成されたストレージアカウントからプライマリアクセスキー(または完全な接続文字列、いずれかの方法で問題ありません)をキャプチャして、それをAppSettingsの1つの値として使用したいと考えていますWebアプリケーション。

これは可能ですか?

答えて

16

"appSettings": [ 
    { 
     "name": "STORAGE_KEY", 
     "value": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value]" 
    } 
] 

このクイックスタートでは、類似した何かを。あなたは今、ヒットするエラーが'Template language expression property 'key1' doesn't exist, available properties are 'keys'

キーは現在のキーの配列として表現されており、構文は以下のようになります。

"StorageAccount": "[Concat('DefaultEndpointsProtocol=https;AccountName=',variables('StorageAccountName'),';AccountKey=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('StorageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value)]", 

参照:私はこの問題に2回に直面しhttp://samcogan.com/retrieve-azure-storage-key-in-arm-script/

+0

投稿していただきありがとうございます、私は私の答えを更新しました。 – BenV

1

。WebAppに接続文字列を追加する必要があります.-展開時に、生成されたリソースからARMテンプレートから自動的に文字列を追加したいと考えています。後で手動でこの値を追加しないと助けになります。私は、関数listKeysの古いバージョン(旧バージョンに戻りますが、オブジェクトとしてではなく値として結果ではないように見える)を使用

初回:

"AzureWebJobsStorage": { 
         "type": "Custom", 
         "value": "[concat(variables('storageConnectionString'), listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2015-05-01-preview').key1)]" 
        }, 

今日の作業テンプレートの最後のバージョンは次のとおりです。

"resources": [ 
    { 
     "apiVersion": "2015-08-01", 
     "type": "config", 
     "name": "connectionstrings", 
     "dependsOn": [ 
     "[resourceId('Microsoft.Web/Sites/', parameters('webSiteName'))]" 
     ], 
     "properties": { 
     "DefaultConnection": { 
      "value": "[concat('Data Source=tcp:', reference(resourceId('Microsoft.Sql/servers/', parameters('sqlserverName'))).fullyQualifiedDomainName, ',1433;Initial Catalog=', parameters('databaseName'), ';User Id=', parameters('administratorLogin'), '@', parameters('sqlserverName'), ';Password=', parameters('administratorLoginPassword'), ';')]", 
      "type": "SQLServer" 
     }, 
     "AzureWebJobsStorage": { 
      "type": "Custom", 
      "value": "[concat(variables('storageConnectionString'), listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageName')), '2016-01-01').keys[0].value)]" 
     }, 
     "AzureWebJobsDashboard": { 
      "type": "Custom", 
      "value": "[concat(variables('storageConnectionString'), listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageName')), '2016-01-01').keys[0].value)]" 
     } 
     } 
    }, 

ありがとうございました。

+0

機能の詳細を記載したドキュメントへのリンクです:https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-functions-resource#listkeys – Digiman