App Service を Bicep で設定した際に、ポータルで Stack settings に明示的な値が出るようにしたい
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'
}
}
これだと警告が出ません。
まとめ
一件落着
別に設定されて無くてもアプリケーションは動くんですが、一応設定しておくと良いかなと思います。
設定しなかったらパフォーマンスに影響が出るとかがあったら誰か教えてください