containerApps の Microsoft.App

Bicep リソース定義

containerApps リソースの種類は、次を対象とする操作でデプロイできます。

各 API バージョンの変更されたプロパティの一覧については、「 変更ログ」を参照してください。

リソース形式

Microsoft.App/containerApps リソースを作成するには、次の Bicep をテンプレートに追加します。

resource symbolicname 'Microsoft.App/containerApps@2023-11-02-preview' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  extendedLocation: {
    name: 'string'
    type: 'CustomLocation'
  }
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  managedBy: 'string'
  properties: {
    configuration: {
      activeRevisionsMode: 'string'
      dapr: {
        appId: 'string'
        appPort: int
        appProtocol: 'string'
        enableApiLogging: bool
        enabled: bool
        httpMaxRequestSize: int
        httpReadBufferSize: int
        logLevel: 'string'
      }
      ingress: {
        additionalPortMappings: [
          {
            exposedPort: int
            external: bool
            targetPort: int
          }
        ]
        allowInsecure: bool
        clientCertificateMode: 'string'
        corsPolicy: {
          allowCredentials: bool
          allowedHeaders: [
            'string'
          ]
          allowedMethods: [
            'string'
          ]
          allowedOrigins: [
            'string'
          ]
          exposeHeaders: [
            'string'
          ]
          maxAge: int
        }
        customDomains: [
          {
            bindingType: 'string'
            certificateId: 'string'
            name: 'string'
          }
        ]
        exposedPort: int
        external: bool
        ipSecurityRestrictions: [
          {
            action: 'string'
            description: 'string'
            ipAddressRange: 'string'
            name: 'string'
          }
        ]
        stickySessions: {
          affinity: 'string'
        }
        targetPort: int
        targetPortHttpScheme: 'string'
        traffic: [
          {
            label: 'string'
            latestRevision: bool
            revisionName: 'string'
            weight: int
          }
        ]
        transport: 'string'
      }
      maxInactiveRevisions: int
      registries: [
        {
          identity: 'string'
          passwordSecretRef: 'string'
          server: 'string'
          username: 'string'
        }
      ]
      secrets: [
        {
          identity: 'string'
          keyVaultUrl: 'string'
          name: 'string'
          value: 'string'
        }
      ]
      service: {
        type: 'string'
      }
    }
    environmentId: 'string'
    managedEnvironmentId: 'string'
    template: {
      containers: [
        {
          args: [
            'string'
          ]
          command: [
            'string'
          ]
          env: [
            {
              name: 'string'
              secretRef: 'string'
              value: 'string'
            }
          ]
          image: 'string'
          name: 'string'
          probes: [
            {
              failureThreshold: int
              httpGet: {
                host: 'string'
                httpHeaders: [
                  {
                    name: 'string'
                    value: 'string'
                  }
                ]
                path: 'string'
                port: int
                scheme: 'string'
              }
              initialDelaySeconds: int
              periodSeconds: int
              successThreshold: int
              tcpSocket: {
                host: 'string'
                port: int
              }
              terminationGracePeriodSeconds: int
              timeoutSeconds: int
              type: 'string'
            }
          ]
          resources: {
            cpu: json('decimal-as-string')
            memory: 'string'
          }
          volumeMounts: [
            {
              mountPath: 'string'
              subPath: 'string'
              volumeName: 'string'
            }
          ]
        }
      ]
      initContainers: [
        {
          args: [
            'string'
          ]
          command: [
            'string'
          ]
          env: [
            {
              name: 'string'
              secretRef: 'string'
              value: 'string'
            }
          ]
          image: 'string'
          name: 'string'
          resources: {
            cpu: json('decimal-as-string')
            memory: 'string'
          }
          volumeMounts: [
            {
              mountPath: 'string'
              subPath: 'string'
              volumeName: 'string'
            }
          ]
        }
      ]
      revisionSuffix: 'string'
      scale: {
        maxReplicas: int
        minReplicas: int
        rules: [
          {
            azureQueue: {
              auth: [
                {
                  secretRef: 'string'
                  triggerParameter: 'string'
                }
              ]
              queueLength: int
              queueName: 'string'
            }
            custom: {
              auth: [
                {
                  secretRef: 'string'
                  triggerParameter: 'string'
                }
              ]
              metadata: {
                {customized property}: 'string'
              }
              type: 'string'
            }
            http: {
              auth: [
                {
                  secretRef: 'string'
                  triggerParameter: 'string'
                }
              ]
              metadata: {
                {customized property}: 'string'
              }
            }
            name: 'string'
            tcp: {
              auth: [
                {
                  secretRef: 'string'
                  triggerParameter: 'string'
                }
              ]
              metadata: {
                {customized property}: 'string'
              }
            }
          }
        ]
      }
      serviceBinds: [
        {
          clientType: 'string'
          customizedKeys: {
            {customized property}: 'string'
          }
          name: 'string'
          serviceId: 'string'
        }
      ]
      terminationGracePeriodSeconds: int
      volumes: [
        {
          mountOptions: 'string'
          name: 'string'
          secrets: [
            {
              path: 'string'
              secretRef: 'string'
            }
          ]
          storageName: 'string'
          storageType: 'string'
        }
      ]
    }
    workloadProfileName: 'string'
  }
}

プロパティ値

containerApps

名前 説明
name リソース名 string (必須)

文字制限: 2 から 32

有効な文字:
小文字、数字、およびハイフン。

先頭は文字、末尾は英数字にします。
location リソースが保存されている地理的な場所 string (必須)
tags リソース タグ。 タグの名前と値のディクショナリ。 「テンプレート内のタグ」を参照してください
extendedLocation 拡張場所の複合型。 ExtendedLocation
identity コード内のシークレットや資格情報を維持することなく、Container App が他の Azure サービスと対話するためのマネージド ID。 ManagedServiceIdentity
managedBy このリソースを管理するリソースの完全修飾リソース ID。 このリソースが別の Azure リソースによって管理されているかどうかを示します。 これが存在する場合、完全モードのデプロイでは、別のリソースによって管理されているため、テンプレートから削除された場合、リソースは削除されません。 string
properties ContainerApp リソース固有のプロパティ ContainerAppProperties

ExtendedLocation

名前 説明
name 拡張場所の名前。 string
type 拡張場所の型。 'CustomLocation'

ManagedServiceIdentity

名前 説明
type マネージド サービス ID の種類 (SystemAssigned 型と UserAssigned 型の両方が許可されます)。 'None'
'SystemAssigned'
'SystemAssigned,UserAssigned'
'UserAssigned' (必須)
userAssignedIdentities リソースに関連付けられているユーザー割り当て ID のセット。 userAssignedIdentities ディクショナリ キーは、'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} という形式の ARM リソース ID になります。 ディクショナリ値は、要求で空のオブジェクト ({}) にすることができます。 UserAssignedIdentities

UserAssignedIdentities

名前 説明
{カスタマイズされたプロパティ} UserAssignedIdentity

UserAssignedIdentity

このオブジェクトには、デプロイ中に設定するプロパティは含まれません。 すべてのプロパティは ReadOnly です。

ContainerAppProperties

名前 説明
configuration バージョン管理されていない Container App 構成プロパティ。 Configuration
environmentId 環境のリソース ID。 string
managedEnvironmentId 非推奨になりました。 コンテナー アプリの環境のリソース ID。 string
template Container App のバージョン管理されたアプリケーション定義。 テンプレート
workloadProfileName コンテナー アプリの実行にピン留めするワークロード プロファイル名。 string

構成

名前 説明
activeRevisionsMode ActiveRevisionsMode は、コンテナー アプリのアクティブなリビジョンの処理方法を制御します。
{list}{item}複数: 複数のリビジョンをアクティブにすることができます。{/item}{item}単一: 一度にアクティブにできるリビジョンは 1 つだけです。 リビジョンの重みは、このモードでは使用できません。 値が指定されていない場合は、これが既定値です。{/item}{/list}
'Multiple'
'Single'
dapr コンテナー アプリの Dapr 構成。 Dapr
イングレス イングレス構成。 イングレス
maxInactiveRevisions 省略可能。 コンテナー アプリに含めることができる非アクティブなリビジョンの最大数。 INT
registries コンテナー アプリで使用されるコンテナーのプライベート コンテナー レジストリ資格情報のコレクション RegistryCredentials[]
secrets コンテナー アプリで使用されるシークレットのコレクション Secret[]
サービス (service) コンテナー アプリを開発コンテナー App Serviceにする サービス

Dapr

Name 説明
appId Dapr アプリケーション識別子 string
appPort アプリケーションがリッスンしているポートを Dapr に通知します INT
appProtocol アプリケーションで使用しているプロトコルを Dapr に伝えます。 有効なオプションは http と grpc です。 既定値は http です 'grpc'
'http'
enableApiLogging Dapr サイドカーの API ログ記録を有効にします [bool]
enabled Dapr 側の車が有効になっているかどうかを示すブール値 [bool]
httpMaxRequestSize 大きなファイルのアップロードを処理するために、要求本文 http と grpc サーバーの最大サイズを MB 単位で増やします。 既定値は 4 MB です。 INT
httpReadBufferSize マルチ KB ヘッダーの送信時に処理する HTTP ヘッダー読み取りバッファーの Dapr 最大サイズ (KB 単位)。 既定値は 65 KB です。 INT
logLevel Dapr サイドカーのログ レベルを設定します。 使用できる値は、デバッグ、情報、警告、エラーです。 既定値は info です。 'debug'
'error'
'info'
'warn'

イングレス

名前 説明
additionalPortMappings コンテナー アプリで追加のポートを公開するための設定 IngressPortMapping[]
allowInsecure への HTTP 接続が許可されているかどうかを示すブール値。 false に設定されている場合、HTTP 接続は HTTPS 接続に自動的にリダイレクトされます [bool]
clientCertificateMode mTLS 認証のクライアント証明書モード。 [無視] は、転送時にサーバーがクライアント証明書を削除することを示します。 Accept は、サーバーがクライアント証明書を転送しますが、クライアント証明書は必要ないことを示します。 [必須] は、サーバーにクライアント証明書が必要であることを示します。 'accept'
'ignore'
'require'
corsPolicy コンテナー アプリの CORS ポリシー CorsPolicy
customDomains Container Apps のホスト名のカスタム ドメイン バインド。 CustomDomain[]
exposedPort イングレスからの TCP トラフィック用のコンテナーで公開されたポート INT
external アプリが外部 http エンドポイントを公開するかどうかを示す Bool [bool]
ipSecurityRestrictions 受信 IP アドレスを制限する規則。 IpSecurityRestrictionRule[]
stickySessions 単一リビジョン モードのスティッキー セッション IngressStickySessions
targetPort イングレスからのトラフィックのコンテナー内のターゲット ポート INT
targetPortHttpScheme http アプリが http または https でリッスンするかどうか 'http'
'https'
traffic アプリのリビジョンのトラフィックの重み付け TrafficWeight[]
transport イングレス トランスポート プロトコル 'auto'
'http'
'http2'
'tcp'

IngressPortMapping

名前 説明
exposedPort ターゲット ポートの公開ポートを指定します。 指定しない場合は、既定でターゲット ポートに設定されます INT
external 環境外でアプリ ポートにアクセスできるかどうかを指定します bool (必須)
targetPort ユーザーのコンテナーがリッスンするポートを指定します int (必須)

CorsPolicy

名前 説明
allowCredentials リソースで資格情報を許可するかどうかを指定します [bool]
allowedHeaders access-control-allow-headers ヘッダーの内容を指定します string[]
allowedMethods access-control-allow-methods ヘッダーの内容を指定します string[]
allowedOrigins access-control-allow-origins ヘッダーのコンテンツを指定します string[] (必須)
exposeHeaders access-control-expose-headers ヘッダーのコンテンツを指定します string[]
maxAge access-control-max-age ヘッダーのコンテンツを指定します INT

CustomDomain

名前 説明
bindingType バインドの種類をCustom Domainします。 'Disabled'
'SniEnabled'
certificateId このホスト名にバインドする証明書のリソース ID。 マネージド環境に存在する必要があります。 string
name ホスト名 string (必須)

IpSecurityRestrictionRule

名前 説明
action 受信 IP を決定するための規則を許可または拒否します。 注: ルールは、ALL Allow または ALL Deny でのみ構成できます 'Allow'
'Deny' (必須)
description コンテナー アプリに送信される IP 制限規則について説明します。 これフィールドは必須ではありません。 string
ipAddressRange 受信 IP アドレスと一致する CIDR 表記 string (必須)
name IP 制限規則の名前。 string (必須)

IngressStickySessions

名前 説明
affinity スティッキー セッション アフィニティ 'none'
'sticky'

TrafficWeight

名前 説明
label トラフィック ラベルをリビジョンに関連付けます string
latestRevision トラフィックの重みが最新の安定したリビジョンに属していることを示します [bool]
revisionName リビジョンの名前 string
weight リビジョンに割り当てられたトラフィックの重み INT

RegistryCredentials

名前 説明
identity Azure Container Registryで認証するために使用するマネージド ID。 ユーザー割り当て ID の場合は、完全なユーザー割り当て ID リソース ID を使用します。 システム割り当て ID の場合は、'system' を使用します string
passwordSecretRef レジストリ ログイン パスワードを含むシークレットの名前 string
server コンテナー レジストリ サーバー string
username コンテナー レジストリのユーザー名 string

Secret

名前 説明
identity Azure Key Vaultで認証するマネージド ID のリソース ID、またはシステム割り当て ID を使用するシステム。 string
keyVaultUrl コンテナー アプリによって参照されるシークレットを指す Azure Key Vault URL。 string
name シークレット名。 string
value シークレット値。 string

制約:
機密性の高い値。 セキュリティで保護されたパラメーターとしてを渡します。

サービス

名前 説明
type Dev ContainerApp サービスの種類 string (必須)

Template

名前 説明
containers コンテナー アプリのコンテナー定義の一覧。 Container[]
initContainers アプリ コンテナーの前に実行される特殊なコンテナーの一覧。 InitContainer[]
revisionSuffix リビジョン名に追加されるわかりやすいサフィックス string
scale コンテナー アプリのスケーリング プロパティ。 スケール
serviceBinds アプリにバインドされているコンテナー アプリ サービスの一覧 ServiceBind[]
terminationGracePeriodSeconds コンテナー アプリ インスタンスが正常に終了する必要があるオプションの期間 (秒単位)。 値は負以外の整数である必要があります。 値 0 は、強制終了シグナルを介して直ちに停止することを示します (シャットダウンする機会はありません)。 この値が nil の場合は、代わりに既定の猶予期間が使用されます。 この値は、プロセスの予想されるクリーンアップ時間よりも長く設定します。 既定値は 30 秒です。 INT
volumes コンテナー アプリのボリューム定義の一覧。 Volume[]

コンテナー

名前 説明
args コンテナー開始コマンド引数。 string[]
command コンテナー開始コマンド。 string[]
env コンテナー環境変数。 EnvironmentVar[]
image コンテナー イメージ タグ。 string
name カスタム コンテナー名。 string
probes コンテナーのプローブの一覧。 ContainerAppProbe[]
resources コンテナー リソースの要件。 ContainerResources
volumeMounts コンテナー ボリュームのマウント。 VolumeMount[]

EnvironmentVar

名前 説明
name 環境変数名。 string
secretRef 環境変数の値をプルするコンテナー アプリ シークレットの名前。 string
value シークレット以外の環境変数値。 string

ContainerAppProbe

名前 説明
failureThreshold 成功した後、プローブが失敗したと見なされる最小連続エラー。 既定値は 3 です。 最大値は 1 です。 最大値は 10 です。 INT
httpGet HTTPGet は、実行する http 要求を指定します。 ContainerAppProbeHttpGet
initialDelaySeconds コンテナーの起動後、liveness probe が開始するまでの秒数。 最大値は 1 です。 最大値は 60 です。 INT
periodSeconds プローブを実行する頻度 (秒単位)。 既定値は 10 秒です。 最大値は 1 です。 最大値は 240 です。 INT
successThreshold 失敗した後にプローブが成功したと見なされる連続した最小成功数。 既定値は 1 です。 ライブネスとスタートアップの場合は 1 にする必要があります。 最大値は 1 です。 最大値は 10 です。 INT
tcpSocket TCPSocket は、TCP ポートを含むアクションを指定します。 TCP フックはまだサポートされていません。 ContainerAppProbeTcpSocket
terminationGracePeriodSeconds プローブの障害時にポッドが正常に終了する必要がある時間 (秒単位)。 猶予期間は、ポッドで実行されているプロセスが終了シグナルを送信してから、プロセスが強制終了シグナルで強制的に停止されるまでの時間 (秒単位) です。 この値は、プロセスの予想されるクリーンアップ時間よりも長く設定します。 この値が nil の場合、ポッドの terminationGracePeriodSeconds が使用されます。 それ以外の場合、この値はポッド スペックによって提供される値をオーバーライドします。値は負以外の整数である必要があります。 値 0 は、強制終了シグナルを介して直ちに停止することを示します (シャットダウンする機会はありません)。 これはアルファ フィールドであり、ProbeTerminationGracePeriod 機能ゲートを有効にする必要があります。 最大値は 3600 秒 (1 時間) です INT
timeoutSeconds プローブがタイムアウトするまでの秒数。既定値は 1 秒です。 最大値は 1 です。 最大値は 240 です。 INT
プローブの種類。 'Liveness'
'準備'
'Startup'

ContainerAppProbeHttpGet

名前 説明
host 接続先のホスト名。既定ではポッド IP が使用されます。 代わりに httpHeaders で "Host" を設定する必要があります。 string
httpHeaders 要求で設定するカスタム ヘッダー。 HTTP では、ヘッダーを繰り返すことができます。 ContainerAppProbeHttpGetHttpHeadersItem[]
path HTTP サーバーでアクセスするためのパス。 string
port コンテナーでアクセスするポートの名前または番号。 数値は 1 ~ 65535 の範囲である必要があります。 名前はIANA_SVC_NAMEである必要があります。 int (必須)
scheme ホストへの接続に使用するスキーム。 既定では HTTP です。 'HTTP'
'HTTPS'

ContainerAppProbeHttpGetHttpHeadersItem

名前 説明
name ヘッダー フィールド名 string (必須)
value ヘッダー フィールドの値 string (必須)

ContainerAppProbeTcpSocket

名前 説明
host 省略可能: 接続先のホスト名。既定ではポッド IP です。 string
port コンテナーでアクセスするポートの番号または名前。 数値は 1 ~ 65535 の範囲である必要があります。 名前はIANA_SVC_NAMEである必要があります。 int (必須)

ContainerResources

名前 説明
cpu コアに必要な CPU (例: 0.5) 10 進数の値を指定するには、 json() 関数を使用します。 int または json decimal
メモリ 必要なメモリ (例: "250Mb" ) string

VolumeMount

名前 説明
mountPath ボリュームをマウントするコンテナー内のパス。':' を含めてはいけません。 string
サブパス コンテナーのボリュームをマウントするボリューム内のパス。 既定値は "" (ボリュームのルート) です。 string
volumeName これは、ボリュームの名前と一致する必要があります。 string

InitContainer

名前 説明
args コンテナー開始コマンド引数。 string[]
command コンテナー開始コマンド。 string[]
env コンテナー環境変数。 EnvironmentVar[]
image コンテナー イメージ タグ。 string
name カスタム コンテナー名。 string
resources コンテナー リソースの要件。 ContainerResources
volumeMounts コンテナー ボリュームのマウント。 VolumeMount[]

スケール

名前 説明
maxReplicas 省略可能。 コンテナー レプリカの最大数。 設定されていない場合、既定値は 10 です。 INT
minReplicas 省略可能。 コンテナー レプリカの最小数。 INT
rules スケーリング ルール。 ScaleRule[]

ScaleRule

名前 説明
azureQueue Azure Queue ベースのスケーリング。 QueueScaleRule
custom カスタム スケール ルール。 CustomScaleRule
http HTTP 要求ベースのスケーリング。 HttpScaleRule
name スケール ルール名 string
tcp Tcp 要求ベースのスケーリング。 TcpScaleRule

QueueScaleRule

名前 説明
auth キュー スケール ルールの認証シークレット。 ScaleRuleAuth[]
queueLength キューの長さ。 INT
queueName キュー名。 string

ScaleRuleAuth

名前 説明
secretRef 認証パラメーターをプルするシークレットの名前。 string
triggerParameter シークレットを使用するトリガー パラメーター string

CustomScaleRule

名前 説明
auth カスタム スケール ルールの認証シークレット。 ScaleRuleAuth[]
metadata カスタム スケール ルールを記述するためのメタデータ プロパティ。 CustomScaleRuleMetadata
カスタム スケール ルールの種類
例: azure-servicebus、redis など。
string

CustomScaleRuleMetadata

名前 説明
{カスタマイズされたプロパティ} string

HttpScaleRule

名前 説明
auth カスタム スケール ルールの認証シークレット。 ScaleRuleAuth[]
metadata http スケール ルールを記述するためのメタデータ プロパティ。 HttpScaleRuleMetadata

HttpScaleRuleMetadata

名前 説明
{カスタマイズされたプロパティ} string

TcpScaleRule

名前 説明
auth TCP スケール ルールの認証シークレット。 ScaleRuleAuth[]
metadata TCP スケール ルールを記述するためのメタデータ プロパティ。 TcpScaleRuleMetadata

TcpScaleRuleMetadata

名前 説明
{カスタマイズされたプロパティ} string

ServiceBind

名前 説明
clientType サービスへの接続に使用するクライアントの種類 string
customizedKeys 挿入された値をアプリにカスタマイズするためのカスタマイズされたキー ServiceBindCustomizedKeys
name サービス バインドの名前 string
serviceId ターゲット サービスのリソース ID string

ServiceBindCustomizedKeys

名前 説明
{カスタマイズされたプロパティ} string

ボリューム

名前 説明
mountOptions Azure ファイル共有または NFS Azure ファイル共有のマウント時に使用されるマウント オプション。 コンマ区切りの文字列にする必要があります。 string
name ボリューム名。 string
secrets ボリュームに追加するシークレットの一覧。 シークレットが指定されていない場合、コレクション内のすべてのシークレットがボリュームに追加されます。 SecretVolumeItem[]
storageName ストレージ リソースの名前。 EmptyDir とシークレットを指定する必要はありません。 string
storageType ボリュームのストレージの種類。 指定しない場合は、EmptyDir を使用します。 'AzureFile'
'EmptyDir'
'NfsAzureFile'
'Secret'

SecretVolumeItem

名前 説明
path プロジェクト シークレットのパス。 パスが指定されていない場合、path は既定で secretRef にリストされているシークレットの名前になります。 string
secretRef シークレット値をプルするコンテナー アプリ シークレットの名前。 string

クイック スタート テンプレート

次のクイックスタート テンプレートでは、このリソースの種類をデプロイします。

Template 説明
レジストリを使用してコンテナー アプリと環境を作成します

Azure にデプロイする
Azure Container Registryから基本的なコンテナー アプリを使用してコンテナー アプリ環境を作成します。 また、ログを格納する Log Analytics ワークスペースもデプロイします。
コンテナー アプリ環境を使用して 2 つのコンテナー アプリを作成します

Azure にデプロイする
基本的なコンテナー アプリを使用して、2 つのコンテナー アプリ環境を作成します。 また、ログを格納する Log Analytics ワークスペースもデプロイします。
コンテナー アプリ環境内にコンテナー アプリを作成します

Azure にデプロイする
基本的なコンテナー アプリを使用してコンテナー アプリ環境を作成します。 また、ログを格納する Log Analytics ワークスペースもデプロイします。
定義された HTTP スケーリング 規則を使用してコンテナー アプリを作成します

Azure にデプロイする
HTTP トラフィックに基づいてスケーリングする基本的なコンテナー アプリを使用して、コンテナー アプリ環境を作成します。
VNET を使用して外部コンテナー アプリ環境を作成します

Azure にデプロイする
VNET を使用して外部コンテナー アプリ環境を作成します。
VNET を使用して内部コンテナー アプリ環境を作成します

Azure にデプロイする
VNET を使用して内部コンテナー アプリ環境を作成します。

ARM テンプレート リソース定義

containerApps リソースの種類は、次を対象とする操作でデプロイできます。

各 API バージョンの変更されたプロパティの一覧については、「 変更ログ」を参照してください。

リソース形式

Microsoft.App/containerApps リソースを作成するには、次の JSON をテンプレートに追加します。

{
  "type": "Microsoft.App/containerApps",
  "apiVersion": "2023-11-02-preview",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "extendedLocation": {
    "name": "string",
    "type": "CustomLocation"
  },
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {}
    }
  },
  "managedBy": "string",
  "properties": {
    "configuration": {
      "activeRevisionsMode": "string",
      "dapr": {
        "appId": "string",
        "appPort": "int",
        "appProtocol": "string",
        "enableApiLogging": "bool",
        "enabled": "bool",
        "httpMaxRequestSize": "int",
        "httpReadBufferSize": "int",
        "logLevel": "string"
      },
      "ingress": {
        "additionalPortMappings": [
          {
            "exposedPort": "int",
            "external": "bool",
            "targetPort": "int"
          }
        ],
        "allowInsecure": "bool",
        "clientCertificateMode": "string",
        "corsPolicy": {
          "allowCredentials": "bool",
          "allowedHeaders": [ "string" ],
          "allowedMethods": [ "string" ],
          "allowedOrigins": [ "string" ],
          "exposeHeaders": [ "string" ],
          "maxAge": "int"
        },
        "customDomains": [
          {
            "bindingType": "string",
            "certificateId": "string",
            "name": "string"
          }
        ],
        "exposedPort": "int",
        "external": "bool",
        "ipSecurityRestrictions": [
          {
            "action": "string",
            "description": "string",
            "ipAddressRange": "string",
            "name": "string"
          }
        ],
        "stickySessions": {
          "affinity": "string"
        },
        "targetPort": "int",
        "targetPortHttpScheme": "string",
        "traffic": [
          {
            "label": "string",
            "latestRevision": "bool",
            "revisionName": "string",
            "weight": "int"
          }
        ],
        "transport": "string"
      },
      "maxInactiveRevisions": "int",
      "registries": [
        {
          "identity": "string",
          "passwordSecretRef": "string",
          "server": "string",
          "username": "string"
        }
      ],
      "secrets": [
        {
          "identity": "string",
          "keyVaultUrl": "string",
          "name": "string",
          "value": "string"
        }
      ],
      "service": {
        "type": "string"
      }
    },
    "environmentId": "string",
    "managedEnvironmentId": "string",
    "template": {
      "containers": [
        {
          "args": [ "string" ],
          "command": [ "string" ],
          "env": [
            {
              "name": "string",
              "secretRef": "string",
              "value": "string"
            }
          ],
          "image": "string",
          "name": "string",
          "probes": [
            {
              "failureThreshold": "int",
              "httpGet": {
                "host": "string",
                "httpHeaders": [
                  {
                    "name": "string",
                    "value": "string"
                  }
                ],
                "path": "string",
                "port": "int",
                "scheme": "string"
              },
              "initialDelaySeconds": "int",
              "periodSeconds": "int",
              "successThreshold": "int",
              "tcpSocket": {
                "host": "string",
                "port": "int"
              },
              "terminationGracePeriodSeconds": "int",
              "timeoutSeconds": "int",
              "type": "string"
            }
          ],
          "resources": {
            "cpu": "[json('decimal-as-string')]",
            "memory": "string"
          },
          "volumeMounts": [
            {
              "mountPath": "string",
              "subPath": "string",
              "volumeName": "string"
            }
          ]
        }
      ],
      "initContainers": [
        {
          "args": [ "string" ],
          "command": [ "string" ],
          "env": [
            {
              "name": "string",
              "secretRef": "string",
              "value": "string"
            }
          ],
          "image": "string",
          "name": "string",
          "resources": {
            "cpu": "[json('decimal-as-string')]",
            "memory": "string"
          },
          "volumeMounts": [
            {
              "mountPath": "string",
              "subPath": "string",
              "volumeName": "string"
            }
          ]
        }
      ],
      "revisionSuffix": "string",
      "scale": {
        "maxReplicas": "int",
        "minReplicas": "int",
        "rules": [
          {
            "azureQueue": {
              "auth": [
                {
                  "secretRef": "string",
                  "triggerParameter": "string"
                }
              ],
              "queueLength": "int",
              "queueName": "string"
            },
            "custom": {
              "auth": [
                {
                  "secretRef": "string",
                  "triggerParameter": "string"
                }
              ],
              "metadata": {
                "{customized property}": "string"
              },
              "type": "string"
            },
            "http": {
              "auth": [
                {
                  "secretRef": "string",
                  "triggerParameter": "string"
                }
              ],
              "metadata": {
                "{customized property}": "string"
              }
            },
            "name": "string",
            "tcp": {
              "auth": [
                {
                  "secretRef": "string",
                  "triggerParameter": "string"
                }
              ],
              "metadata": {
                "{customized property}": "string"
              }
            }
          }
        ]
      },
      "serviceBinds": [
        {
          "clientType": "string",
          "customizedKeys": {
            "{customized property}": "string"
          },
          "name": "string",
          "serviceId": "string"
        }
      ],
      "terminationGracePeriodSeconds": "int",
      "volumes": [
        {
          "mountOptions": "string",
          "name": "string",
          "secrets": [
            {
              "path": "string",
              "secretRef": "string"
            }
          ],
          "storageName": "string",
          "storageType": "string"
        }
      ]
    },
    "workloadProfileName": "string"
  }
}

プロパティ値

containerApps

名前 説明
type リソースの種類 'Microsoft.App/containerApps'
apiVersion リソース API のバージョン '2023-11-02-preview'
name リソース名 string (必須)

文字制限: 2 から 32

有効な文字:
小文字、数字、およびハイフン。

先頭は文字、末尾は英数字にします。
location リソースが保存されている地理的な場所 string (必須)
tags リソース タグ。 タグの名前と値のディクショナリ。 「テンプレート内のタグ」を参照してください
extendedLocation 拡張場所の複合型。 ExtendedLocation
identity コード内のシークレットや資格情報を維持することなく、Container App が他の Azure サービスと対話するためのマネージド ID。 ManagedServiceIdentity
managedBy このリソースを管理するリソースの完全修飾リソース ID。 このリソースが別の Azure リソースによって管理されているかどうかを示します。 これが存在する場合、完全モードのデプロイでは、別のリソースによって管理されているため、テンプレートから削除された場合、リソースは削除されません。 string
properties ContainerApp リソース固有のプロパティ ContainerAppProperties

ExtendedLocation

名前 説明
name 拡張場所の名前。 string
type 拡張場所の型。 'CustomLocation'

ManagedServiceIdentity

名前 説明
type マネージド サービス ID の種類 (SystemAssigned 型と UserAssigned 型の両方が許可されます)。 'None'
'SystemAssigned'
'SystemAssigned,UserAssigned'
'UserAssigned' (必須)
userAssignedIdentities リソースに関連付けられているユーザー割り当て ID のセット。 userAssignedIdentities ディクショナリ キーは、'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} という形式の ARM リソース ID になります。 ディクショナリ値は、要求で空のオブジェクト ({}) にすることができます。 UserAssignedIdentities

UserAssignedIdentities

名前 説明
{カスタマイズされたプロパティ} UserAssignedIdentity

UserAssignedIdentity

このオブジェクトには、デプロイ中に設定するプロパティは含まれません。 すべてのプロパティは ReadOnly です。

ContainerAppProperties

名前 説明
configuration バージョン管理されていない Container App 構成プロパティ。 Configuration
environmentId 環境のリソース ID。 string
managedEnvironmentId 非推奨になりました。 コンテナー アプリの環境のリソース ID。 string
template コンテナー アプリのバージョン管理されたアプリケーション定義。 テンプレート
workloadProfileName コンテナー アプリの実行用にピン留めするワークロード プロファイル名。 string

構成

名前 説明
activeRevisionsMode ActiveRevisionsMode は、コンテナー アプリのアクティブなリビジョンの処理方法を制御します。
{list}{item}複数: 複数のリビジョンをアクティブにすることができます。{/item}{item}単一: 一度にアクティブにできるリビジョンは 1 つだけです。 リビジョンの重みは、このモードでは使用できません。 値が指定されていない場合は、これが既定値です。{/item}{/list}
'Multiple'
'Single'
dapr コンテナー アプリの Dapr 構成。 Dapr
イングレス イングレス構成。 イングレス
maxInactiveRevisions 省略可能。 コンテナー アプリに含めることができる非アクティブなリビジョンの最大数。 INT
registries コンテナー アプリで使用されるコンテナーのプライベート コンテナー レジストリ資格情報のコレクション RegistryCredentials[]
secrets コンテナー アプリで使用されるシークレットのコレクション Secret[]
サービス (service) コンテナー アプリを開発コンテナー App Serviceにする サービス

Dapr

Name 説明
appId Dapr アプリケーション識別子 string
appPort アプリケーションがリッスンしているポートを Dapr に通知します INT
appProtocol アプリケーションで使用しているプロトコルを Dapr に伝えます。 有効なオプションは http と grpc です。 既定値は http です 'grpc'
'http'
enableApiLogging Dapr サイドカーの API ログ記録を有効にします [bool]
enabled Dapr 側の車が有効になっているかどうかを示すブール値 [bool]
httpMaxRequestSize 大きなファイルのアップロードを処理するために、要求本文 http と grpc サーバーの最大サイズを MB 単位で増やします。 既定値は 4 MB です。 INT
httpReadBufferSize マルチ KB ヘッダーの送信時に処理する HTTP ヘッダー読み取りバッファーの Dapr 最大サイズ (KB 単位)。 既定値は 65 KB です。 INT
logLevel Dapr サイドカーのログ レベルを設定します。 使用できる値は、デバッグ、情報、警告、エラーです。 既定値は info です。 'debug'
'error'
'info'
'warn'

イングレス

名前 説明
additionalPortMappings コンテナー アプリで追加のポートを公開するための設定 IngressPortMapping[]
allowInsecure への HTTP 接続が許可されているかどうかを示すブール値。 false に設定されている場合、HTTP 接続は HTTPS 接続に自動的にリダイレクトされます [bool]
clientCertificateMode mTLS 認証のクライアント証明書モード。 [無視] は、転送時にサーバーがクライアント証明書を削除することを示します。 Accept は、サーバーがクライアント証明書を転送しますが、クライアント証明書は必要ないことを示します。 [必須] は、サーバーにクライアント証明書が必要であることを示します。 'accept'
'ignore'
'require'
corsPolicy コンテナー アプリの CORS ポリシー CorsPolicy
customDomains Container Apps のホスト名のカスタム ドメイン バインド。 CustomDomain[]
exposedPort イングレスからの TCP トラフィック用のコンテナー内の公開ポート INT
external アプリが外部 http エンドポイントを公開するかどうかを示す Bool [bool]
ipSecurityRestrictions 受信 IP アドレスを制限する規則。 IpSecurityRestrictionRule[]
stickySessions 単一リビジョン モードのスティッキー セッション IngressStickySessions
targetPort イングレスからのトラフィックのコンテナー内のターゲット ポート INT
targetPortHttpScheme http アプリが http または https でリッスンするかどうか 'http'
'https'
traffic アプリのリビジョンのトラフィックの重み TrafficWeight[]
transport イングレス トランスポート プロトコル 'auto'
'http'
'http2'
'tcp'

IngressPortMapping

名前 説明
exposedPort ターゲット ポートの公開ポートを指定します。 指定しない場合、既定ではターゲット ポートになります INT
external 環境外でアプリ ポートにアクセスできるかどうかを指定します bool (必須)
targetPort ユーザーのコンテナーがリッスンするポートを指定します int (必須)

CorsPolicy

名前 説明
allowCredentials リソースで資格情報を許可するかどうかを指定します [bool]
allowedHeaders access-control-allow-headers ヘッダーの内容を指定します string[]
allowedMethods access-control-allow-methods ヘッダーの内容を指定します string[]
allowedOrigins access-control-allow-origins ヘッダーの内容を指定します string[] (必須)
exposeHeaders access-control-expose-headers ヘッダーのコンテンツを指定します string[]
maxAge access-control-max-age ヘッダーの内容を指定します INT

CustomDomain

名前 説明
bindingType バインドの種類をCustom Domainします。 'Disabled'
'SniEnabled'
certificateId このホスト名にバインドする証明書のリソース ID。 マネージド環境に存在する必要があります。 string
name ホスト名 string (必須)

IpSecurityRestrictionRule

名前 説明
action 受信 IP を決定するための規則を許可または拒否します。 注: ルールは、ALL Allow または ALL Deny のみで構成できます 'Allow'
'Deny' (必須)
description コンテナー アプリに送信される IP 制限規則について説明します。 これフィールドは必須ではありません。 string
ipAddressRange 受信 IP アドレスと一致する CIDR 表記 string (必須)
name IP 制限規則の名前。 string (必須)

IngressStickySessions

名前 説明
affinity スティッキー セッション アフィニティ 'none'
'sticky'

TrafficWeight

名前 説明
label トラフィック ラベルをリビジョンに関連付けます string
latestRevision トラフィックの重みが最新の安定したリビジョンに属していることを示します [bool]
revisionName リビジョンの名前 string
weight リビジョンに割り当てられたトラフィックの重み INT

RegistryCredentials

名前 説明
identity Azure Container Registryでの認証に使用するマネージド ID。 ユーザー割り当て ID の場合は、完全なユーザー割り当て ID リソース ID を使用します。 システム割り当て ID の場合は、'system' を使用します string
passwordSecretRef レジストリ ログイン パスワードを含むシークレットの名前 string
server Container Registry Server string
username コンテナー レジストリのユーザー名 string

Secret

名前 説明
identity Azure Key Vaultで認証するマネージド ID のリソース ID、またはシステム割り当て ID を使用するシステム。 string
keyVaultUrl コンテナー アプリによって参照されるシークレットを指す Azure Key Vault URL。 string
name シークレット名。 string
value シークレット値。 string

制約:
機密性の高い値。 セキュリティで保護されたパラメーターとして を渡します。

サービス

名前 説明
type Dev ContainerApp サービスの種類 string (必須)

Template

名前 説明
containers コンテナー アプリのコンテナー定義の一覧。 Container[]
initContainers アプリ コンテナーの前に実行される特殊なコンテナーの一覧。 InitContainer[]
revisionSuffix リビジョン名に追加されるわかりやすいサフィックス string
scale コンテナー アプリのプロパティのスケーリング。 スケール
serviceBinds アプリにバインドされているコンテナー アプリ サービスの一覧 ServiceBind[]
terminationGracePeriodSeconds コンテナー アプリ インスタンスが正常に終了する必要があるオプションの期間 (秒単位)。 値は負以外の整数である必要があります。 値 0 は、強制終了シグナルを介して直ちに停止することを示します (シャットダウンする機会はありません)。 この値が nil の場合は、代わりに既定の猶予期間が使用されます。 この値は、プロセスの予想されるクリーンアップ時間よりも長く設定します。 既定値は 30 秒です。 INT
volumes コンテナー アプリのボリューム定義の一覧。 Volume[]

コンテナー

名前 説明
args コンテナー開始コマンド引数。 string[]
command コンテナー開始コマンド。 string[]
env コンテナー環境変数。 EnvironmentVar[]
image コンテナー イメージ タグ。 string
name カスタム コンテナー名。 string
probes コンテナーのプローブの一覧。 ContainerAppProbe[]
resources コンテナー リソースの要件。 ContainerResources
volumeMounts コンテナー ボリュームのマウント。 VolumeMount[]

EnvironmentVar

名前 説明
name 環境変数名。 string
secretRef 環境変数の値をプルするコンテナー アプリ シークレットの名前。 string
value シークレット以外の環境変数値。 string

ContainerAppProbe

名前 説明
failureThreshold プローブが成功した後に失敗したと見なされるプローブの連続する最小障害。 既定値は 3 です。 最大値は 1 です。 最大値は 10 です。 INT
httpGet HTTPGet は、実行する http 要求を指定します。 ContainerAppProbeHttpGet
initialDelaySeconds コンテナーの起動後、liveness probe が開始するまでの秒数。 最大値は 1 です。 最大値は 60 です。 INT
periodSeconds プローブを実行する頻度 (秒単位)。 既定値は 10 秒です。 最大値は 1 です。 最大値は 240 です。 INT
successThreshold 失敗した後にプローブが成功したと見なされる最小連続成功数。 既定値は 1 です。 ライブネスとスタートアップの場合は 1 にする必要があります。 最大値は 1 です。 最大値は 10 です。 INT
tcpSocket TCPSocket は、TCP ポートを含むアクションを指定します。 TCP フックはまだサポートされていません。 ContainerAppProbeTcpSocket
terminationGracePeriodSeconds プローブの障害時にポッドを正常に終了する必要がある時間 (秒単位) (省略可能)。 猶予期間は、ポッドで実行されているプロセスが終了シグナルを送信してから、プロセスが強制終了シグナルで強制的に停止された時間 (秒単位) です。 この値は、プロセスの予想されるクリーンアップ時間よりも長く設定します。 この値が nil の場合、ポッドの terminationGracePeriodSeconds が使用されます。 それ以外の場合、この値はポッド スペックによって提供される値をオーバーライドします。値は負以外の整数である必要があります。 値 0 は、強制終了シグナルを介して直ちに停止することを示します (シャットダウンする機会はありません)。 これはアルファ フィールドであり、ProbeTerminationGracePeriod 機能ゲートを有効にする必要があります。 最大値は 3600 秒 (1 時間) です INT
timeoutSeconds プローブがタイムアウトした秒数。既定値は 1 秒です。 最大値は 1 です。 最大値は 240 です。 INT
プローブの種類。 'Liveness'
'Readiness'
'スタートアップ'

ContainerAppProbeHttpGet

名前 説明
host 接続先のホスト名。既定ではポッド IP です。 代わりに httpHeaders で "Host" を設定することをお考えでしょう。 string
httpHeaders 要求で設定するカスタム ヘッダー。 HTTP では、ヘッダーを繰り返し使用できます。 ContainerAppProbeHttpGetHttpHeadersItem[]
path HTTP サーバーでアクセスするためのパス。 string
port コンテナーでアクセスするポートの名前または番号。 数値は 1 ~ 65535 の範囲である必要があります。 名前はIANA_SVC_NAMEである必要があります。 int (必須)
scheme ホストへの接続に使用するスキーム。 既定では HTTP です。 'HTTP'
'HTTPS'

ContainerAppProbeHttpGetHttpHeadersItem

名前 説明
name ヘッダー フィールド名 string (必須)
value ヘッダー フィールドの値 string (必須)

ContainerAppProbeTcpSocket

名前 説明
host 省略可能: 接続先のホスト名。既定値はポッド IP です。 string
port コンテナーでアクセスするポートの番号または名前。 数値は 1 ~ 65535 の範囲である必要があります。 名前はIANA_SVC_NAMEである必要があります。 int (必須)

ContainerResources

名前 説明
cpu コアに必要な CPU (例: 0.5) 10 進値を指定するには、 json() 関数を使用します。 int または json decimal
メモリ 必要なメモリ (例: "250Mb" ) string

VolumeMount

名前 説明
mountPath ボリュームをマウントするコンテナー内のパス。':' を含めてはなりません。 string
サブパス コンテナーのボリュームをマウントするボリューム内のパス。 既定値は "" (ボリュームのルート) です。 string
volumeName これは、ボリュームの名前と一致する必要があります。 string

InitContainer

名前 説明
args コンテナー開始コマンド引数。 string[]
command コンテナー開始コマンド。 string[]
env コンテナー環境変数。 EnvironmentVar[]
image コンテナー イメージ タグ。 string
name カスタム コンテナー名。 string
resources コンテナー リソースの要件。 ContainerResources
volumeMounts コンテナー ボリュームのマウント。 VolumeMount[]

スケール

名前 説明
maxReplicas 省略可能。 コンテナー レプリカの最大数。 設定されていない場合、既定値は 10 です。 INT
minReplicas 省略可能。 コンテナー レプリカの最小数。 INT
rules スケーリング ルール。 ScaleRule[]

ScaleRule

名前 説明
azureQueue Azure Queue ベースのスケーリング。 QueueScaleRule
custom カスタム スケール ルール。 CustomScaleRule
http HTTP 要求ベースのスケーリング。 HttpScaleRule
name スケール ルール名 string
tcp Tcp 要求ベースのスケーリング。 TcpScaleRule

QueueScaleRule

名前 説明
auth キュー スケール ルールの認証シークレット。 ScaleRuleAuth[]
queueLength キューの長さ。 INT
queueName キュー名。 string

ScaleRuleAuth

名前 説明
secretRef 認証パラメーターをプルするシークレットの名前。 string
triggerParameter シークレットを使用するトリガー パラメーター string

CustomScaleRule

名前 説明
auth カスタム スケール ルールの認証シークレット。 ScaleRuleAuth[]
metadata カスタム スケール ルールを記述するためのメタデータ プロパティ。 CustomScaleRuleMetadata
カスタム スケール ルールの種類
例: azure-servicebus、redis など。
string

CustomScaleRuleMetadata

名前 説明
{カスタマイズされたプロパティ} string

HttpScaleRule

名前 説明
auth カスタム スケール ルールの認証シークレット。 ScaleRuleAuth[]
metadata http スケール ルールを記述するためのメタデータ プロパティ。 HttpScaleRuleMetadata

HttpScaleRuleMetadata

名前 説明
{カスタマイズされたプロパティ} string

TcpScaleRule

名前 説明
auth TCP スケール ルールの認証シークレット。 ScaleRuleAuth[]
metadata TCP スケール ルールを記述するためのメタデータ プロパティ。 TcpScaleRuleMetadata

TcpScaleRuleMetadata

名前 説明
{カスタマイズされたプロパティ} string

ServiceBind

名前 説明
clientType サービスへの接続に使用するクライアントの種類 string
customizedKeys 挿入された値をアプリにカスタマイズするためのカスタマイズされたキー ServiceBindCustomizedKeys
name サービス バインドの名前 string
serviceId ターゲット サービスのリソース ID string

ServiceBindCustomizedKeys

名前 説明
{カスタマイズされたプロパティ} string

ボリューム

名前 説明
mountOptions Azure ファイル共有または NFS Azure ファイル共有のマウント時に使用されるマウント オプション。 コンマ区切りの文字列である必要があります。 string
name ボリューム名。 string
secrets ボリュームに追加するシークレットの一覧。 シークレットが指定されていない場合、コレクション内のすべてのシークレットがボリュームに追加されます。 SecretVolumeItem[]
storageName ストレージ リソースの名前。 EmptyDir とシークレットを指定する必要はありません。 string
storageType ボリュームのストレージの種類。 指定しない場合は、EmptyDir を使用します。 'AzureFile'
'EmptyDir'
'NfsAzureFile'
'Secret'

SecretVolumeItem

名前 説明
path プロジェクト シークレットのパス。 パスが指定されていない場合、path は既定で secretRef にリストされているシークレットの名前になります。 string
secretRef シークレット値をプルするコンテナー アプリ シークレットの名前。 string

クイック スタート テンプレート

次のクイックスタート テンプレートでは、このリソースの種類をデプロイします。

Template 説明
レジストリを使用してコンテナー アプリと環境を作成する

Azure にデプロイする
Azure Container Registryから基本的なコンテナー アプリを使用してコンテナー アプリ環境を作成します。 また、ログを格納する Log Analytics ワークスペースもデプロイします。
コンテナー アプリ環境を使用して 2 つのコンテナー アプリを作成します

Azure にデプロイする
基本的なコンテナー アプリを使用して、2 つのコンテナー アプリ環境を作成します。 また、ログを格納する Log Analytics ワークスペースもデプロイします。
コンテナー アプリ環境内にコンテナー アプリを作成します

Azure にデプロイする
基本的なコンテナー アプリを使用してコンテナー アプリ環境を作成します。 また、ログを格納する Log Analytics ワークスペースもデプロイします。
定義された HTTP スケーリング 規則を使用してコンテナー アプリを作成します

Azure にデプロイする
HTTP トラフィックに基づいてスケーリングする基本的なコンテナー アプリを使用して、コンテナー アプリ環境を作成します。
VNET を使用して外部コンテナー アプリ環境を作成します

Azure にデプロイする
VNET を使用して外部コンテナー アプリ環境を作成します。
VNET を使用して内部コンテナー アプリ環境を作成します

Azure にデプロイする
VNET を使用して内部コンテナー アプリ環境を作成します。

Terraform (AzAPI プロバイダー) リソース定義

containerApps リソースの種類は、次を対象とする操作でデプロイできます。

  • リソース グループ

各 API バージョンの変更されたプロパティの一覧については、「 変更ログ」を参照してください。

リソース形式

Microsoft.App/containerApps リソースを作成するには、次の Terraform をテンプレートに追加します。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.App/containerApps@2023-11-02-preview"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  identity {
    type = "string"
    identity_ids = []
  }
  body = jsonencode({
    properties = {
      configuration = {
        activeRevisionsMode = "string"
        dapr = {
          appId = "string"
          appPort = int
          appProtocol = "string"
          enableApiLogging = bool
          enabled = bool
          httpMaxRequestSize = int
          httpReadBufferSize = int
          logLevel = "string"
        }
        ingress = {
          additionalPortMappings = [
            {
              exposedPort = int
              external = bool
              targetPort = int
            }
          ]
          allowInsecure = bool
          clientCertificateMode = "string"
          corsPolicy = {
            allowCredentials = bool
            allowedHeaders = [
              "string"
            ]
            allowedMethods = [
              "string"
            ]
            allowedOrigins = [
              "string"
            ]
            exposeHeaders = [
              "string"
            ]
            maxAge = int
          }
          customDomains = [
            {
              bindingType = "string"
              certificateId = "string"
              name = "string"
            }
          ]
          exposedPort = int
          external = bool
          ipSecurityRestrictions = [
            {
              action = "string"
              description = "string"
              ipAddressRange = "string"
              name = "string"
            }
          ]
          stickySessions = {
            affinity = "string"
          }
          targetPort = int
          targetPortHttpScheme = "string"
          traffic = [
            {
              label = "string"
              latestRevision = bool
              revisionName = "string"
              weight = int
            }
          ]
          transport = "string"
        }
        maxInactiveRevisions = int
        registries = [
          {
            identity = "string"
            passwordSecretRef = "string"
            server = "string"
            username = "string"
          }
        ]
        secrets = [
          {
            identity = "string"
            keyVaultUrl = "string"
            name = "string"
            value = "string"
          }
        ]
        service = {
          type = "string"
        }
      }
      environmentId = "string"
      managedEnvironmentId = "string"
      template = {
        containers = [
          {
            args = [
              "string"
            ]
            command = [
              "string"
            ]
            env = [
              {
                name = "string"
                secretRef = "string"
                value = "string"
              }
            ]
            image = "string"
            name = "string"
            probes = [
              {
                failureThreshold = int
                httpGet = {
                  host = "string"
                  httpHeaders = [
                    {
                      name = "string"
                      value = "string"
                    }
                  ]
                  path = "string"
                  port = int
                  scheme = "string"
                }
                initialDelaySeconds = int
                periodSeconds = int
                successThreshold = int
                tcpSocket = {
                  host = "string"
                  port = int
                }
                terminationGracePeriodSeconds = int
                timeoutSeconds = int
                type = "string"
              }
            ]
            resources = {
              cpu = "decimal-as-string"
              memory = "string"
            }
            volumeMounts = [
              {
                mountPath = "string"
                subPath = "string"
                volumeName = "string"
              }
            ]
          }
        ]
        initContainers = [
          {
            args = [
              "string"
            ]
            command = [
              "string"
            ]
            env = [
              {
                name = "string"
                secretRef = "string"
                value = "string"
              }
            ]
            image = "string"
            name = "string"
            resources = {
              cpu = "decimal-as-string"
              memory = "string"
            }
            volumeMounts = [
              {
                mountPath = "string"
                subPath = "string"
                volumeName = "string"
              }
            ]
          }
        ]
        revisionSuffix = "string"
        scale = {
          maxReplicas = int
          minReplicas = int
          rules = [
            {
              azureQueue = {
                auth = [
                  {
                    secretRef = "string"
                    triggerParameter = "string"
                  }
                ]
                queueLength = int
                queueName = "string"
              }
              custom = {
                auth = [
                  {
                    secretRef = "string"
                    triggerParameter = "string"
                  }
                ]
                metadata = {
                  {customized property} = "string"
                }
                type = "string"
              }
              http = {
                auth = [
                  {
                    secretRef = "string"
                    triggerParameter = "string"
                  }
                ]
                metadata = {
                  {customized property} = "string"
                }
              }
              name = "string"
              tcp = {
                auth = [
                  {
                    secretRef = "string"
                    triggerParameter = "string"
                  }
                ]
                metadata = {
                  {customized property} = "string"
                }
              }
            }
          ]
        }
        serviceBinds = [
          {
            clientType = "string"
            customizedKeys = {
              {customized property} = "string"
            }
            name = "string"
            serviceId = "string"
          }
        ]
        terminationGracePeriodSeconds = int
        volumes = [
          {
            mountOptions = "string"
            name = "string"
            secrets = [
              {
                path = "string"
                secretRef = "string"
              }
            ]
            storageName = "string"
            storageType = "string"
          }
        ]
      }
      workloadProfileName = "string"
    }
    extendedLocation = {
      name = "string"
      type = "CustomLocation"
    }
    managedBy = "string"
  })
}

プロパティ値

containerApps

名前 説明
type リソースの種類 "Microsoft.App/containerApps@2023-11-02-preview"
name リソース名 string (必須)

文字数制限: 2 から 32

有効な文字:
小文字、数字、およびハイフン。

先頭は文字、末尾は英数字にします。
location リソースが保存されている地理的な場所 string (必須)
parent_id リソース グループにデプロイするには、そのリソース グループの ID を使用します。 string (必須)
tags リソース タグ。 タグ名と値のディクショナリ。
extendedLocation 拡張場所の複合型。 ExtendedLocation
identity コード内のシークレットや資格情報を維持することなく、Container App が他の Azure サービスと対話するためのマネージド ID。 ManagedServiceIdentity
managedBy このリソースを管理するリソースの完全修飾リソース ID。 このリソースが別の Azure リソースによって管理されているかどうかを示します。 これが存在する場合、完全モードのデプロイでは、別のリソースによって管理されているため、テンプレートから削除された場合、リソースは削除されません。 string
properties ContainerApp リソース固有のプロパティ ContainerAppProperties

ExtendedLocation

名前 説明
name 拡張場所の名前。 string
type 拡張場所の型。 "CustomLocation"

ManagedServiceIdentity

名前 説明
type マネージド サービス ID の種類 (SystemAssigned 型と UserAssigned 型の両方が許可されます)。 "SystemAssigned"
"SystemAssigned,UserAssigned"
"UserAssigned" (必須)
identity_ids リソースに関連付けられているユーザー割り当て ID のセット。 userAssignedIdentities ディクショナリ キーは、'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} という形式の ARM リソース ID になります。 ディクショナリ値は、要求で空のオブジェクト ({}) にすることができます。 ユーザー ID ID の配列。

UserAssignedIdentities

名前 説明
{カスタマイズされたプロパティ} UserAssignedIdentity

UserAssignedIdentity

このオブジェクトには、デプロイ中に設定するプロパティは含まれません。 すべてのプロパティは ReadOnly です。

ContainerAppProperties

名前 説明
configuration バージョン管理されていない Container App 構成プロパティ。 Configuration
environmentId 環境のリソース ID。 string
managedEnvironmentId 非推奨になりました。 コンテナー アプリの環境のリソース ID。 string
template コンテナー アプリのバージョン管理されたアプリケーション定義。 テンプレート
workloadProfileName コンテナー アプリの実行用にピン留めするワークロード プロファイル名。 string

構成

名前 説明
activeRevisionsMode ActiveRevisionsMode は、コンテナー アプリのアクティブなリビジョンの処理方法を制御します。
{list}{item}複数: 複数のリビジョンをアクティブにすることができます。{/item}{item}単一: 一度にアクティブにできるリビジョンは 1 つだけです。 リビジョンの重みは、このモードでは使用できません。 値が指定されていない場合は、これが既定値です。{/item}{/list}
"Multiple"
"Single"
dapr コンテナー アプリの Dapr 構成。 Dapr
イングレス イングレス構成。 イングレス
maxInactiveRevisions 省略可能。 コンテナー アプリに含めることができる非アクティブなリビジョンの最大数。 INT
registries コンテナー アプリで使用されるコンテナーのプライベート コンテナー レジストリ資格情報のコレクション RegistryCredentials[]
secrets コンテナー アプリで使用されるシークレットのコレクション Secret[]
サービス (service) コンテナー アプリを開発コンテナー App Serviceにする サービス

Dapr

Name 説明
appId Dapr アプリケーション識別子 string
appPort アプリケーションがリッスンしているポートを Dapr に通知します INT
appProtocol アプリケーションで使用しているプロトコルを Dapr に伝えます。 有効なオプションは http と grpc です。 既定値は http です "grpc"
"http"
enableApiLogging Dapr サイドカーの API ログ記録を有効にします [bool]
enabled Dapr 側の車が有効になっているかどうかを示すブール値 [bool]
httpMaxRequestSize 大きなファイルのアップロードを処理するために、要求本文 http および grpc サーバー パラメーターの最大サイズを MB 単位で増やします。 既定値は 4 MB です。 INT
httpReadBufferSize マルチ KB ヘッダーを送信するときに処理する HTTP ヘッダー読み取りバッファーの Dapr 最大サイズ (KB 単位)。 既定値は 65 KB です。 INT
logLevel Dapr サイドカーのログ レベルを設定します。 使用できる値は、デバッグ、情報、警告、エラーです。 既定値は info です。 "debug"
"error"
"info"
"warn"

イングレス

名前 説明
additionalPortMappings コンテナー アプリで追加のポートを公開するための設定 IngressPortMapping[]
allowInsecure への HTTP 接続が許可されているかどうかを示す Bool。 false に設定されている場合、HTTP 接続は HTTPS 接続に自動的にリダイレクトされます [bool]
clientCertificateMode mTLS 認証のクライアント証明書モード。 [無視] は、サーバーが転送時にクライアント証明書を削除することを示します。 Accept は、サーバーがクライアント証明書を転送するが、クライアント証明書は必要ないことを示します。 [必須] は、サーバーにクライアント証明書が必要であることを示します。 "accept"
"ignore"
"require"
corsPolicy コンテナー アプリの CORS ポリシー CorsPolicy
customDomains Container Apps のホスト名のカスタム ドメイン バインド。 CustomDomain[]
exposedPort イングレスからの TCP トラフィック用のコンテナーで公開されたポート INT
external アプリが外部 http エンドポイントを公開するかどうかを示す Bool [bool]
ipSecurityRestrictions 受信 IP アドレスを制限する規則。 IpSecurityRestrictionRule[]
stickySessions 単一リビジョン モードのスティッキー セッション IngressStickySessions
targetPort イングレスからのトラフィックのコンテナー内のターゲット ポート INT
targetPortHttpScheme http アプリが http または https でリッスンするかどうか "http"
"https"
traffic アプリのリビジョンのトラフィックの重み付け TrafficWeight[]
transport イングレス トランスポート プロトコル "auto"
"http"
"http2"
"tcp"

IngressPortMapping

名前 説明
exposedPort ターゲット ポートの公開ポートを指定します。 指定しない場合は、既定でターゲット ポートに設定されます INT
external 環境外でアプリ ポートにアクセスできるかどうかを指定します bool (必須)
targetPort ユーザーのコンテナーがリッスンするポートを指定します int (必須)

CorsPolicy

名前 説明
allowCredentials リソースで資格情報を許可するかどうかを指定します [bool]
allowedHeaders access-control-allow-headers ヘッダーの内容を指定します string[]
allowedMethods access-control-allow-methods ヘッダーの内容を指定します string[]
allowedOrigins access-control-allow-origins ヘッダーのコンテンツを指定します string[] (必須)
exposeHeaders access-control-expose-headers ヘッダーのコンテンツを指定します string[]
maxAge access-control-max-age ヘッダーのコンテンツを指定します INT

CustomDomain

名前 説明
bindingType バインドの種類をCustom Domainします。 "無効"
"SniEnabled"
certificateId このホスト名にバインドする証明書のリソース ID。 マネージド環境に存在する必要があります。 string
name ホスト名 string (必須)

IpSecurityRestrictionRule

名前 説明
action 受信 IP を決定するための規則を許可または拒否します。 注: ルールは、ALL Allow または ALL Deny でのみ構成できます "許可"
"Deny" (必須)
description コンテナー アプリに送信される IP 制限規則について説明します。 これフィールドは必須ではありません。 string
ipAddressRange 受信 IP アドレスと一致する CIDR 表記 string (必須)
name IP 制限規則の名前。 string (必須)

IngressStickySessions

名前 説明
affinity スティッキー セッション アフィニティ "none"
"sticky"

TrafficWeight

名前 説明
label トラフィック ラベルをリビジョンに関連付けます string
latestRevision トラフィックの重みが最新の安定したリビジョンに属していることを示します [bool]
revisionName リビジョンの名前 string
weight リビジョンに割り当てられたトラフィックの重み INT

RegistryCredentials

名前 説明
identity Azure Container Registryで認証するために使用するマネージド ID。 ユーザー割り当て ID の場合は、完全なユーザー割り当て ID リソース ID を使用します。 システム割り当て ID の場合は、'system' を使用します string
passwordSecretRef レジストリ ログイン パスワードを含むシークレットの名前 string
server コンテナー レジストリ サーバー string
username コンテナー レジストリのユーザー名 string

Secret

名前 説明
identity Azure Key Vaultで認証するマネージド ID のリソース ID、またはシステム割り当て ID を使用するシステム。 string
keyVaultUrl コンテナー アプリによって参照されるシークレットを指す Azure Key Vault URL。 string
name シークレット名。 string
value シークレット値。 string

制約:
機密性の高い値。 セキュリティで保護されたパラメーターとしてを渡します。

サービス

名前 説明
type Dev ContainerApp サービスの種類 string (必須)

Template

名前 説明
containers コンテナー アプリのコンテナー定義の一覧。 Container[]
initContainers アプリ コンテナーの前に実行される特殊なコンテナーの一覧。 InitContainer[]
revisionSuffix リビジョン名に追加されるわかりやすいサフィックス string
scale コンテナー アプリのスケーリング プロパティ。 スケール
serviceBinds アプリにバインドされているコンテナー アプリ サービスの一覧 ServiceBind[]
terminationGracePeriodSeconds コンテナー アプリ インスタンスが正常に終了する必要があるオプションの期間 (秒単位)。 値は負以外の整数である必要があります。 値 0 は、強制終了シグナルを介して直ちに停止することを示します (シャットダウンする機会はありません)。 この値が nil の場合は、代わりに既定の猶予期間が使用されます。 この値は、プロセスの予想されるクリーンアップ時間よりも長く設定します。 既定値は 30 秒です。 INT
volumes コンテナー アプリのボリューム定義の一覧。 Volume[]

コンテナー

名前 説明
args コンテナー開始コマンド引数。 string[]
command コンテナー開始コマンド。 string[]
env コンテナー環境変数。 EnvironmentVar[]
image コンテナー イメージ タグ。 string
name カスタム コンテナー名。 string
probes コンテナーのプローブの一覧。 ContainerAppProbe[]
resources コンテナー リソースの要件。 ContainerResources
volumeMounts コンテナー ボリュームのマウント。 VolumeMount[]

EnvironmentVar

名前 説明
name 環境変数名。 string
secretRef 環境変数の値をプルするコンテナー アプリ シークレットの名前。 string
value シークレット以外の環境変数値。 string

ContainerAppProbe

名前 説明
failureThreshold 成功した後、プローブが失敗したと見なされる最小連続エラー。 既定値は 3 です。 最大値は 1 です。 最大値は 10 です。 INT
httpGet HTTPGet は、実行する http 要求を指定します。 ContainerAppProbeHttpGet
initialDelaySeconds コンテナーの起動後、liveness probe が開始するまでの秒数。 最大値は 1 です。 最大値は 60 です。 INT
periodSeconds プローブを実行する頻度 (秒単位)。 既定値は 10 秒です。 最大値は 1 です。 最大値は 240 です。 INT
successThreshold 失敗した後にプローブが成功したと見なされる最小連続成功数。 既定値は 1 です。 ライブネスとスタートアップの場合は 1 にする必要があります。 最大値は 1 です。 最大値は 10 です。 INT
tcpSocket TCPSocket は、TCP ポートを含むアクションを指定します。 TCP フックはまだサポートされていません。 ContainerAppProbeTcpSocket
terminationGracePeriodSeconds プローブの障害時にポッドを正常に終了する必要がある時間 (秒単位) (省略可能)。 猶予期間は、ポッドで実行されているプロセスが終了シグナルを送信してから、プロセスが強制終了シグナルで強制的に停止された時間 (秒単位) です。 この値は、プロセスの予想されるクリーンアップ時間よりも長く設定します。 この値が nil の場合、ポッドの terminationGracePeriodSeconds が使用されます。 それ以外の場合、この値はポッド スペックによって提供される値をオーバーライドします。値は負以外の整数である必要があります。 値 0 は、強制終了シグナルを介して直ちに停止することを示します (シャットダウンする機会はありません)。 これはアルファ フィールドであり、ProbeTerminationGracePeriod 機能ゲートを有効にする必要があります。 最大値は 3600 秒 (1 時間) です INT
timeoutSeconds プローブがタイムアウトした秒数。既定値は 1 秒です。 最大値は 1 です。 最大値は 240 です。 INT
プローブの種類。 "Liveness"
"準備"
"スタートアップ"

ContainerAppProbeHttpGet

名前 説明
host 接続先のホスト名。既定ではポッド IP です。 代わりに httpHeaders で "Host" を設定することをお考えでしょう。 string
httpHeaders 要求で設定するカスタム ヘッダー。 HTTP では、ヘッダーを繰り返し使用できます。 ContainerAppProbeHttpGetHttpHeadersItem[]
path HTTP サーバーでアクセスするためのパス。 string
port コンテナーでアクセスするポートの名前または番号。 数値は 1 ~ 65535 の範囲である必要があります。 名前はIANA_SVC_NAMEである必要があります。 int (必須)
scheme ホストへの接続に使用するスキーム。 既定では HTTP です。 "HTTP"
"HTTPS"

ContainerAppProbeHttpGetHttpHeadersItem

名前 説明
name ヘッダー フィールド名 string (必須)
value ヘッダー フィールドの値 string (必須)

ContainerAppProbeTcpSocket

名前 説明
host 省略可能: 接続先のホスト名。既定値はポッド IP です。 string
port コンテナーでアクセスするポートの番号または名前。 数値は 1 ~ 65535 の範囲である必要があります。 名前はIANA_SVC_NAMEである必要があります。 int (必須)

ContainerResources

名前 説明
cpu コアに必要な CPU (例: 0.5) 10 進数の値を文字列として指定します。 int または json decimal
メモリ 必要なメモリ (例: "250Mb" ) string

VolumeMount

名前 説明
mountPath ボリュームをマウントするコンテナー内のパス。':' を含めてはなりません。 string
サブパス コンテナーのボリュームをマウントするボリューム内のパス。 既定値は "" (ボリュームのルート) です。 string
volumeName これは、ボリュームの名前と一致する必要があります。 string

InitContainer

名前 説明
args コンテナー開始コマンド引数。 string[]
command コンテナー開始コマンド。 string[]
env コンテナー環境変数。 EnvironmentVar[]
image コンテナー イメージ タグ。 string
name カスタム コンテナー名。 string
resources コンテナー リソースの要件。 ContainerResources
volumeMounts コンテナー ボリュームのマウント。 VolumeMount[]

スケール

名前 説明
maxReplicas 省略可能。 コンテナー レプリカの最大数。 設定されていない場合、既定値は 10 です。 INT
minReplicas 省略可能。 コンテナー レプリカの最小数。 INT
rules スケーリング ルール。 ScaleRule[]

ScaleRule

名前 説明
azureQueue Azure Queue ベースのスケーリング。 QueueScaleRule
custom カスタム スケール ルール。 CustomScaleRule
http HTTP 要求ベースのスケーリング。 HttpScaleRule
name スケール ルール名 string
tcp Tcp 要求ベースのスケーリング。 TcpScaleRule

QueueScaleRule

名前 説明
auth キュー スケール ルールの認証シークレット。 ScaleRuleAuth[]
queueLength キューの長さ。 INT
queueName キュー名。 string

ScaleRuleAuth

名前 説明
secretRef 認証パラメーターをプルするシークレットの名前。 string
triggerParameter シークレットを使用するトリガー パラメーター string

CustomScaleRule

名前 説明
auth カスタム スケール ルールの認証シークレット。 ScaleRuleAuth[]
metadata カスタム スケール ルールを記述するためのメタデータ プロパティ。 CustomScaleRuleMetadata
カスタム スケール ルールの種類
例: azure-servicebus、redis など。
string

CustomScaleRuleMetadata

名前 説明
{カスタマイズされたプロパティ} string

HttpScaleRule

名前 説明
auth カスタム スケール ルールの認証シークレット。 ScaleRuleAuth[]
metadata http スケール ルールを記述するメタデータ プロパティ。 HttpScaleRuleMetadata

HttpScaleRuleMetadata

名前 説明
{カスタマイズされたプロパティ} string

TcpScaleRule

名前 説明
auth TCP スケール 規則の認証シークレット。 ScaleRuleAuth[]
metadata tcp スケール ルールを記述するためのメタデータ プロパティ。 TcpScaleRuleMetadata

TcpScaleRuleMetadata

名前 説明
{カスタマイズされたプロパティ} string

ServiceBind

名前 説明
clientType サービスへの接続に使用するクライアントの種類 string
customizedKeys 挿入された値をアプリにカスタマイズするためのカスタマイズされたキー ServiceBindCustomizedKeys
name サービス バインドの名前 string
serviceId ターゲット サービスのリソース ID string

ServiceBindCustomizedKeys

名前 説明
{カスタマイズされたプロパティ} string

ボリューム

名前 説明
mountOptions Azure ファイル共有または NFS Azure ファイル共有のマウント時に使用されるマウント オプション。 コンマ区切りの文字列にする必要があります。 string
name ボリューム名。 string
secrets ボリュームに追加するシークレットの一覧。 シークレットが指定されていない場合、コレクション内のすべてのシークレットがボリュームに追加されます。 SecretVolumeItem[]
storageName ストレージ リソースの名前。 EmptyDir とシークレットを指定する必要はありません。 string
storageType ボリュームのストレージの種類。 指定しない場合は、EmptyDir を使用します。 "AzureFile"
"EmptyDir"
"NfsAzureFile"
"Secret"

SecretVolumeItem

名前 説明
path プロジェクト シークレットのパス。 パスが指定されていない場合、path は既定で secretRef にリストされているシークレットの名前になります。 string
secretRef シークレット値をプルするコンテナー アプリ シークレットの名前。 string