ごった煮

色々な事を書いてます

App Service を Bicep で設定した際に、ポータルで Stack settings に明示的な値が出るようにしたい

App Service を Bicep で構成している際に、Stack settings を表示するのに色々試したので、備忘録を残します。

どういう状況なのか

下の画像のように、何も選択された状態になる

どうなったら正解なのか

次のようにしたい

早速やってみる

パターン1

次のような感じで、siteConfig/metadata に、name : CURRENT_STACKvalue : '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'
  }
}

これだと警告が出ません。

まとめ

一件落着

別に設定されて無くてもアプリケーションは動くんですが、一応設定しておくと良いかなと思います。

設定しなかったらパフォーマンスに影響が出るとかがあったら誰か教えてください