Microsoft.App containerApps 2022-03-01

Bicep リソース定義

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

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

リソース形式

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

resource symbolicname 'Microsoft.App/containerApps@2022-03-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  properties: {
    configuration: {
      activeRevisionsMode: 'string'
      dapr: {
        appId: 'string'
        appPort: int
        appProtocol: 'string'
        enabled: bool
      }
      ingress: {
        allowInsecure: bool
        customDomains: [
          {
            bindingType: 'string'
            certificateId: 'string'
            name: 'string'
          }
        ]
        external: bool
        targetPort: int
        traffic: [
          {
            label: 'string'
            latestRevision: bool
            revisionName: 'string'
            weight: int
          }
        ]
        transport: 'string'
      }
      registries: [
        {
          identity: 'string'
          passwordSecretRef: 'string'
          server: 'string'
          username: 'string'
        }
      ]
      secrets: [
        {
          name: 'string'
          value: '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'
              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'
          }
        ]
      }
      volumes: [
        {
          name: 'string'
          storageName: 'string'
          storageType: 'string'
        }
      ]
    }
  }
}

プロパティ値

containerApps

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

文字制限: 2 から 32

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

先頭は文字、末尾は英数字にします。
location リソースが保存されている地理的な場所 string (必須)
tags リソース タグ。 タグの名前と値のディクショナリ。 「テンプレート内のタグ」を参照してください
identity コード内のシークレットや資格情報を維持することなく、Container App が他の Azure サービスと対話するためのマネージド ID。 ManagedServiceIdentity
properties ContainerApp リソース固有のプロパティ ContainerAppProperties

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
managedEnvironmentId コンテナー アプリの環境のリソース ID。 string
template コンテナー アプリのバージョン管理されたアプリケーション定義。 テンプレート

構成

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

Dapr

Name 説明
appId Dapr アプリケーション識別子 string
appPort アプリケーションがリッスンしているポートを Dapr に通知します INT
appProtocol アプリケーションで使用しているプロトコルを Dapr に伝えます。 有効なオプションは http と grpc です。 既定値は http です 'grpc'
'http'
enabled Dapr 側の車が有効になっているかどうかを示すブール値 [bool]

イングレス

名前 説明
allowInsecure への HTTP 接続が許可されているかどうかを示すブール値。 false に設定されている場合、HTTP 接続は HTTPS 接続に自動的にリダイレクトされます [bool]
customDomains Container Apps のホスト名のカスタム ドメイン バインド。 CustomDomain[]
external アプリが外部 http エンドポイントを公開するかどうかを示す Bool [bool]
targetPort イングレスからのトラフィックのコンテナー内のターゲット ポート INT
traffic アプリのリビジョンのトラフィックの重み TrafficWeight[]
transport イングレス トランスポート プロトコル 'auto'
'http'
'http2'

CustomDomain

名前 説明
bindingType バインドの種類をCustom Domainします。 'Disabled'
'SniEnabled'
certificateId このホスト名にバインドする証明書のリソース ID。 string
name ホスト名 string (必須)

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

名前 説明
name シークレット名。 string
value シークレット値。 string

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

Template

名前 説明
containers コンテナー アプリのコンテナー定義の一覧。 Container[]
revisionSuffix リビジョン名に追加されるわかりやすいサフィックス string
scale コンテナー アプリのプロパティのスケーリング。 スケール
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
volumeName これは、ボリュームの名前と一致する必要があります。 string

スケール

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

ScaleRule

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

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

ボリューム

名前 説明
name ボリューム名。 string
storageName ストレージ リソースの名前。 EmptyDir を指定する必要はありません。 string
storageType ボリュームのストレージの種類。 指定しない場合は、EmptyDir を使用します。 'AzureFile'
'EmptyDir'

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

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

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": "2022-03-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {}
    }
  },
  "properties": {
    "configuration": {
      "activeRevisionsMode": "string",
      "dapr": {
        "appId": "string",
        "appPort": "int",
        "appProtocol": "string",
        "enabled": "bool"
      },
      "ingress": {
        "allowInsecure": "bool",
        "customDomains": [
          {
            "bindingType": "string",
            "certificateId": "string",
            "name": "string"
          }
        ],
        "external": "bool",
        "targetPort": "int",
        "traffic": [
          {
            "label": "string",
            "latestRevision": "bool",
            "revisionName": "string",
            "weight": "int"
          }
        ],
        "transport": "string"
      },
      "registries": [
        {
          "identity": "string",
          "passwordSecretRef": "string",
          "server": "string",
          "username": "string"
        }
      ],
      "secrets": [
        {
          "name": "string",
          "value": "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",
              "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"
          }
        ]
      },
      "volumes": [
        {
          "name": "string",
          "storageName": "string",
          "storageType": "string"
        }
      ]
    }
  }
}

プロパティ値

containerApps

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

文字制限: 2 から 32

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

先頭は文字、末尾は英数字にします。
location リソースが保存されている地理的な場所 string (必須)
tags リソース タグ。 タグの名前と値のディクショナリ。 「テンプレート内のタグ」を参照してください
identity コード内のシークレットや資格情報を維持することなく、Container App が他の Azure サービスと対話するためのマネージド ID。 ManagedServiceIdentity
properties ContainerApp リソース固有のプロパティ ContainerAppProperties

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
managedEnvironmentId コンテナー アプリの環境のリソース ID。 string
template コンテナー アプリのバージョン管理されたアプリケーション定義。 テンプレート

構成

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

Dapr

Name 説明
appId Dapr アプリケーション識別子 string
appPort アプリケーションがリッスンしているポートを Dapr に通知します INT
appProtocol アプリケーションで使用しているプロトコルを Dapr に伝えます。 有効なオプションは http と grpc です。 既定値は http です 'grpc'
'http'
enabled Dapr 側の車が有効になっているかどうかを示すブール値 [bool]

イングレス

名前 説明
allowInsecure への HTTP 接続が許可されているかどうかを示す Bool。 false に設定されている場合、HTTP 接続は HTTPS 接続に自動的にリダイレクトされます [bool]
customDomains Container Apps のホスト名のカスタム ドメイン バインド。 CustomDomain[]
external アプリが外部 http エンドポイントを公開するかどうかを示す Bool [bool]
targetPort イングレスからのトラフィックのコンテナー内のターゲット ポート INT
traffic アプリのリビジョンのトラフィックの重み付け TrafficWeight[]
transport イングレス トランスポート プロトコル 'auto'
'http'
'http2'

CustomDomain

名前 説明
bindingType バインドの種類をCustom Domainします。 'Disabled'
'SniEnabled'
certificateId このホスト名にバインドする証明書のリソース ID。 string
name ホスト名 string (必須)

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

名前 説明
name シークレット名。 string
value シークレット値。 string

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

Template

名前 説明
containers コンテナー アプリのコンテナー定義の一覧。 Container[]
revisionSuffix リビジョン名に追加されるわかりやすいサフィックス string
scale コンテナー アプリのプロパティのスケーリング。 スケール
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
volumeName これは、ボリュームの名前と一致する必要があります。 string

スケール

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

ScaleRule

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

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

ボリューム

名前 説明
name ボリューム名。 string
storageName ストレージ リソースの名前。 EmptyDir を指定する必要はありません。 string
storageType ボリュームのストレージの種類。 指定しない場合は、EmptyDir を使用します。 'AzureFile'
'EmptyDir'

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

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

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@2022-03-01"
  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"
          enabled = bool
        }
        ingress = {
          allowInsecure = bool
          customDomains = [
            {
              bindingType = "string"
              certificateId = "string"
              name = "string"
            }
          ]
          external = bool
          targetPort = int
          traffic = [
            {
              label = "string"
              latestRevision = bool
              revisionName = "string"
              weight = int
            }
          ]
          transport = "string"
        }
        registries = [
          {
            identity = "string"
            passwordSecretRef = "string"
            server = "string"
            username = "string"
          }
        ]
        secrets = [
          {
            name = "string"
            value = "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"
                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"
            }
          ]
        }
        volumes = [
          {
            name = "string"
            storageName = "string"
            storageType = "string"
          }
        ]
      }
    }
  })
}

プロパティ値

containerApps

名前 説明
type リソースの種類 "Microsoft.App/containerApps@2022-03-01"
name リソース名 string (必須)

文字制限: 2 から 32

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

先頭は文字、末尾は英数字にします。
location リソースが保存されている地理的な場所 string (必須)
parent_id リソース グループにデプロイするには、そのリソース グループの ID を使用します。 string (必須)
tags リソース タグ。 タグの名前と値のディクショナリ。
identity コード内のシークレットや資格情報を維持することなく、Container App が他の Azure サービスと対話するためのマネージド ID。 ManagedServiceIdentity
properties ContainerApp リソース固有のプロパティ ContainerAppProperties

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
managedEnvironmentId コンテナー アプリの環境のリソース ID。 string
template コンテナー アプリのバージョン管理されたアプリケーション定義。 テンプレート

構成

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

Dapr

Name 説明
appId Dapr アプリケーション識別子 string
appPort アプリケーションがリッスンしているポートを Dapr に通知します INT
appProtocol アプリケーションで使用しているプロトコルを Dapr に伝えます。 有効なオプションは http と grpc です。 既定値は http です "grpc"
"http"
enabled Dapr 側の車が有効になっているかどうかを示すブール値 [bool]

イングレス

名前 説明
allowInsecure への HTTP 接続が許可されているかどうかを示す Bool。 false に設定されている場合、HTTP 接続は HTTPS 接続に自動的にリダイレクトされます [bool]
customDomains Container Apps のホスト名のカスタム ドメイン バインド。 CustomDomain[]
external アプリが外部 http エンドポイントを公開するかどうかを示す Bool [bool]
targetPort イングレスからのトラフィックのコンテナー内のターゲット ポート INT
traffic アプリのリビジョンのトラフィックの重み付け TrafficWeight[]
transport イングレス トランスポート プロトコル "auto"
"http"
"http2"

CustomDomain

名前 説明
bindingType バインドの種類をCustom Domainします。 "無効"
"SniEnabled"
certificateId このホスト名にバインドする証明書のリソース ID。 string
name ホスト名 string (必須)

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

名前 説明
name シークレット名。 string
value シークレット値。 string

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

Template

名前 説明
containers コンテナー アプリのコンテナー定義の一覧。 Container[]
revisionSuffix リビジョン名に追加されるわかりやすいサフィックス string
scale コンテナー アプリのプロパティのスケーリング。 スケール
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
volumeName これは、ボリュームの名前と一致する必要があります。 string

スケール

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

ScaleRule

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

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

ボリューム

名前 説明
name ボリューム名。 string
storageName ストレージ リソースの名前。 EmptyDir を指定する必要はありません。 string
storageType ボリュームのストレージの種類。 指定しない場合は、EmptyDir を使用します。 "AzureFile"
"EmptyDir"