📝
[Azure] 101-cosmosdb-webapp テンプレート読み解き
はじめに
Azure QuickStart Templates を読み込んで勉強しよう! ということで、アウトプットもしてみます。
今回の読み解き対象
Create an Azure Cosmos DB account and Web App and deploy web app from GitHub
テンプレートの概要
こちらのテンプレートをデプロイすると、Cosmos DB および GitHub から clone してきた .NET Core の Web アプリケーションが Web Apps 上にデプロイされます。
読み解く
前半の "parameters":
から始まる部分では、テンプレート内で使われるパラメータ (変数) の設定です。テンプレートのデプロイ時に選択肢として表示させたりすることができます。Tier の選択肢などもありますね。
azuredeploy.json
"appServicePlanTier": {
"type": "string",
"defaultValue": "F1",
"allowedValues": [
"F1",
"D1",
"B1",
"B2",
"B3",
"S1",
"S2",
"S3",
"P1",
"P2",
"P3",
"P4"
],
"metadata": {
"description": "App Service Plan's pricing tier. Details at https://azure.microsoft.com/en-us/pricing/details/app-service/"
}
},
デプロイするアプリケーションの GitHub アドレスは下記の箇所で設定
azuredeploy.json
"repositoryURL": {
"type": "string",
"defaultValue": "https://github.com/Azure-Samples/cosmos-dotnet-core-todo-app.git",
"metadata": {
"description": "The URL for the GitHub repository that contains the project to deploy."
}
},
その後、"resources":
から始まるセクションで、Web Apps の作成および Cosmos DB の作成のための記述があります。
ここで面白いなと思ったのは、下記の個所です。
azuredeploy.json
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]",
"siteConfig": {
"appSettings": [
{
"name": "CosmosDb:Account",
"value": "[reference(resourceId('Microsoft.DocumentDb/databaseAccounts/', variables('cosmosAccountName'))).documentEndpoint]"
},
{
"name": "CosmosDb:Key",
"value": "[listKeys(resourceId('Microsoft.DocumentDb/databaseAccounts', variables('cosmosAccountName')), '2020-04-01').primaryMasterKey]"
},
{
"name": "CosmosDb:DatabaseName",
"value": "[parameters('DatabaseName')]"
},
{
"name": "CosmosDb:ContainerName",
"value": "[parameters('ContainerName')]"
}
]
}
ここでは、作成した Cosmos DB のアカウント情報を取得してきて、デプロイした Web Apps の Application Settings に入れています。
こうすることで、アプリ側の appsettings.json を変えなくても良いようになっているのですね。
リファレンスとしては、下記のドキュメントが参考になると思います。
- ポータルでアプリを構成する - Azure App Service | Microsoft Docs
- Microsoft.Web/sites/config appsettings 2019-08-01 - ARM template reference | Microsoft Docs
- Database Accounts - List Keys (Azure Cosmos DB Resource Provider) | Microsoft Docs
最後に
Azure QuickStart Templates は、Azure を勉強するにあたっては結構宝の山だとも思うので、今後も面白そうなものを読み解いてはアウトプットしていきたいな、と思います。
Discussion