App Service を Bicep で構成している際に、Stack settings を表示するのに色々試したので、備忘録を残します。
どういう状況なのか
下の画像のように、何も選択された状態になる
どうなったら正解なのか
次のようにしたい
早速やってみる
パターン1
次のような感じで、siteConfig/metadata
に、name : CURRENT_STACK
、value : 'dotnetcore' と入れてあげると、思った通りの挙動になった(色々ごちゃごちゃやってますが、ほとんど関係ないです)
resource app 'Microsoft.Web/sites@2022-03-01' = { name: 'app-${workload}-${tenant}-${env}-${location}' tags: tags location: location kind: kind properties: { serverFarmId: planId clientCertEnabled: false httpsOnly: true clientAffinityEnabled: false siteConfig: { ftpsState: 'Disabled' http20Enabled: true alwaysOn: true netFrameworkVersion: 'v7.0' metadata: [ { name: 'CURRENT_STACK' value: 'dotnetcore' } ] } } }
これだと実現できるのですが、siteConfig/metadata
は、未定義プロパティなので、警告が出ます。
これはちょっといただけない
パターン2
警告が出ないようにしてみます。
次のような感じで、metadata を分離します。
resource app 'Microsoft.Web/sites@2022-03-01' = { name: 'app-${workload}-${tenant}-${env}-${location}' tags: tags location: location kind: kind properties: { serverFarmId: planId clientCertEnabled: false httpsOnly: true clientAffinityEnabled: false siteConfig: { ftpsState: 'Disabled' http20Enabled: true alwaysOn: true netFrameworkVersion: 'v7.0' } } } resource symbolicname 'Microsoft.Web/sites/config@2022-03-01' = { name: 'metadata' kind: 'string' parent: app properties: { CURRENT_STACK: 'dotnetcore' } }
これだと警告が出ません。
まとめ
一件落着
別に設定されて無くてもアプリケーションは動くんですが、一応設定しておくと良いかなと思います。
設定しなかったらパフォーマンスに影響が出るとかがあったら誰か教えてください