次の方法で共有

Container Apps環境にNAT Gatewayを関連付けたら、コンテナアプリの状態が取得できなくなりました。

kei 20 評価のポイント
2026-03-06T03:16:17.5233333+00:00

VNet内に配置されたContainer Apps環境が稼働している状態で、パブリックIPアドレスとNAT Gatewayを作成してContainer Apps環境のサブネットに関連付けました。

関連付け自体は成功し、外部からhealth APIも通って応答がきています。

しかし、Azureポータルでコンテナー アプリの アプリケーション > リビジョンとレプリカ や、アプリケーション > コンテナ を選択すると、コンテナの情報が何も表示されません。

コンソールには以下のようなエラーが大量に主力されています。

Dzkgqd4Ddgq1.js:1 [WebsitesExtension]  12:07:44 ContainerAppRevisionsManagementReactView GetRevisionsList {error: {…}} undefined {additionalData: {…}}
o @ Dzkgqd4Ddgq1.js:1
log @ s4mJODyl_8L8.js:31
y @ Dzkgqd4Ddgq1.js:1
FxImpl.Base.Diagnostics.writeEntry @ Dzkgqd4Ddgq1.js:1
(anonymous) @ 2tGudxM5P1Zj.js:1
(anonymous) @ 2tGudxM5P1Zj.js:1
(anonymous) @ h48B2SIjCQHa.js:20
_flushCallQueue @ h48B2SIjCQHa.js:20
r.onmessage @ h48B2SIjCQHa.js:20Understand this error
Dzkgqd4Ddgq1.js:1 [WebsitesExtension]  12:07:44 followNextLinkCall:GetRevisionsList Failed to get batch response {error: {…}}

Terraformでコンテナを更新しようとすると、以下のようなエラーが発生し、更新することができません。

│ Error: retrieving secrets for Container App (Subscription: "…"
│ Resource Group Name: "…"
│ Container App Name: "…"): unexpected status 412 (412 Precondition Failed) received with no body
│
│   with azurerm_container_app.ai_llm,
│   on container_apps.tf line 386, in resource "azurerm_container_app" "…":
│  386: resource "azurerm_container_app" "…" {
│
│ retrieving secrets for Container App (Subscription: "…"
│ Resource Group Name: "…"
│ Container App Name: "…"): unexpected status 412 (412 Precondition Failed) received with no body

少し時間がかかることがあるらしく、NAT Gatewayとの関連付けから15h以上放置しましたが、状態に変化はありませんでした。

どうすれば解決できるでしょうか。

Azure Container Apps
Azure Container Apps

汎用のサーバーレス コンテナー プラットフォームを提供する Azure サービス。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Rakesh Mishra 9,700 評価のポイント Microsoft 外部スタッフ モデレーター
2026-03-06T04:00:30.7433333+00:00

こんにちは kei,

Microsoft Q&A プラットフォームへようこそ。 ご質問いただきありがとうございます。

ご質問の現象は、Container Apps 環境が 「従量課金のみ (Consumption only)」 のプランで作成されており、そこに NAT Gateway を関連付けたことが原因で発生している可能性が高いです。

Azure Container Apps の公式ドキュメントにおけるネットワーク仕様の制限によるもので、コントロールプレーンの通信が NAT Gateway によってブロックまたは適切にルーティングされなくなり、コンテナーの管理情報(リビジョンやレプリカの状態)が取得できなくなるという典型的な事象です。

原因

Azure Container Apps の環境タイプには以下の2つがありますが、NAT Gateway のサポート状況が異なります。

  1. ワークロード プロファイル (Workload profiles): NAT Gateway によるエグレス(送信ネットワーク)の固定や、ユーザー定義ルート (UDR) が サポートされています
  2. 従量課金のみ (Consumption only): 従来の環境タイプであり、NAT Gateway、UDR、その他のカスタムエグレスによる送信は サポートされていません

「従量課金のみ」の環境のインフラストラクチャサブネットは、Azureが管理するデフォルトのシステムルートを保持している必要があります。 ここに NAT Gateway を紐付けると、プラットフォームの管理トラフィック(ポータルや Terraform との通信など)を含むすべての送信トラフィックが強制的に NAT Gateway 経由になり、Azure の管理エンドポイントに到達できなくなるため、コンソールのエラーや 412 Precondition Failed が発生します。

解決策

この問題を解決するには、以下のいずれかの対応を行う必要があります。

  1. 「ワークロード プロファイル」環境で再作成する(推奨)

NAT Gateway を利用して送信元 IP アドレスを固定するなどの要件がある場合は、Container Apps 環境を 「ワークロード プロファイル (Workload profiles)」 で新規作成してください。 ワークロード プロファイル環境であれば、公式に NAT Gateway がサポートされているため、サブネットに NAT Gateway を関連付けてもコントロールプレーンの通信が阻害されず、正常に状態を取得・更新できます。 ※ 最低限必要なサブネットのサイズは /27 となります。

  1. サブネットから NAT Gateway の関連付けを解除する

環境の作り直しが難しく「従量課金のみ」環境を引き続き使用したい場合は、対象のインフラストラクチャサブネットから NAT Gateway の関連付けを解除してください。

参考となる公式ドキュメント:

この回答は役に立ちましたか?

0 件のコメント コメントはありません

0 件の追加の回答

並べ替え方法: 最も役に立つ

お客様の回答

質問作成者は回答に "承認済み"、モデレーターは "おすすめ" とマークできます。これにより、ユーザーは作成者の問題が回答によって解決したことを把握できます。