💨

【Azure/Bicep】- Azure FunctionsのVNET統合エラーの解決方法

2024/11/25に公開

執筆日

2024/11/25

発生事象

BicepでAzure Functionsを構築していました。その際に、VNET統合を行うとエラーが発生しました。VNET/サブネット、App Service Plan(P1v3)、Blob Storageは既に構築済みです。
しかし、Portalから確認すると以下のようにVNET統合オプションがグレーアウトされており、選択できませんでした。なぜ?

VNET統合オプションがグレーアウト

原因

Azure Functionsの常時接続がオフになっていることが原因でした。

そもそも

Azure FunctionsをPortalからデプロイすると、常時接続はデフォルトでオンになっています。しかし、Bicep経由でデプロイする際にはオフの状態でデプロイされます。したがって、以下のように設定を追加する必要があります。

functions.bicep

resource functionApp 'Microsoft.Web/sites@2021-03-01' = {
  //…
  properties: {
    siteConfig: {
      linuxFxVersion: 'PYTHON|3.11'
      scmType: 'None'
      ftpsState: 'FtpsOnly'
      http20Enabled: true
      alwaysOn: true //常時接続をオンにする
      webSocketsEnabled: false
      appSettings: [//環境変数]
      minTlsVersion: '1.2'
    }
  }
}

ちなみに

VNET統合ができるAzure Functionsのプランは、従量課金プラン(Consumption Plan)以外です。具体的には、プレミアムプラン(Premium Plan)およびApp Serviceプラン(App Service Plan)でVNET統合をサポートしています。

詳しくは、公式ドキュメントを参照してください。

ヘッドウォータース

Discussion