你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Microsoft.App containerApps 2022-01-01-preview

Bicep 资源定义

containerApps 资源类型可以使用面向以下对象的操作进行部署:

有关每个 API 版本中更改的属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.App/containerApps 资源,请将以下 Bicep 添加到模板。

resource symbolicname 'Microsoft.App/containerApps@2022-01-01-preview' = {
  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: [
          {
            latestRevision: bool
            revisionName: 'string'
            weight: int
          }
        ]
        transport: 'string'
      }
      registries: [
        {
          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 资源名称 字符串 (必需)

字符限制:2-32

有效字符:
小写字母、数字和连字符。

以字母开头且以字母数字结尾。
location 资源所在的地理位置 字符串 (必需)
标记 资源标记。 标记名称和值的字典。 请参阅 模板中的标记
标识 容器应用的托管标识,无需在代码中维护任何机密或凭据即可与其他 Azure 服务交互。 ManagedServiceIdentity
properties ContainerApp 资源特定的属性 ContainerAppProperties

ManagedServiceIdentity

名称 说明 Value
type 托管服务标识的类型 (其中允许 systemAssigned 和 UserAssigned 类型) 。 “None”
“SystemAssigned”
“SystemAssigned,UserAssigned”
“UserAssigned” (必需)
userAssignedIdentities 与资源关联的用户分配标识集。 userAssignedIdentities 字典密钥将是采用以下格式的 ARM 资源 ID:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}。 字典值可以是请求中 ({}) 的空对象。 UserAssignedIdentities

UserAssignedIdentities

名称 说明
{customized property} UserAssignedIdentity

UserAssignedIdentity

此对象不包含在部署期间要设置的任何属性。 所有属性均为 ReadOnly。

ContainerAppProperties

名称 说明
配置 非版本控制容器应用配置属性。 配置
managedEnvironmentId 容器应用环境的资源 ID。 字符串
template 容器应用版本控制的应用程序定义。 模板

配置

名称 说明
activeRevisionsMode ActiveRevisionsMode 控制如何处理容器应用的活动修订:
{list}{item}多个:多个修订可以处于活动状态。 如果未提供任何值,则默认为{/item}{item}Single:一次只能激活一个修订。 修订权重不能在此模式下使用{/item}{/list}
“多”
“Single”
dapr 容器应用的 Dapr 配置。 Dapr
入口 入口配置。 流入量
registries 容器应用使用的容器专用容器注册表凭据的集合 RegistryCredentials[]
机密 容器应用使用的机密集合 机密[]

Dapr

名称 说明
appId Dapr 应用程序标识符 字符串
appPort 告知 Dapr 应用程序正在侦听哪个端口 int
appProtocol 告知 Dapr 你的应用程序所使用的协议。 有效选项为 http 和 grpc。 默认值为 http “grpc”
“http”
enabled 指示是否启用 Dapr 侧车的布尔值 bool

流入量

名称 说明
allowInsecure Bool 指示是否允许与 的 HTTP 连接。 如果设置为 false,则 HTTP 连接会自动重定向到 HTTPS 连接 bool
customDomains 容器应用的主机名的自定义域绑定。 CustomDomain[]
external 指示应用是否公开外部 http 终结点的布尔值 bool
targetPort 容器中来自入口的流量的目标端口 int
traffic 应用修订的流量权重 TrafficWeight[]
运输 入口传输协议 'auto'
“http”
“http2”

CustomDomain

名称 说明
bindingType Custom Domain绑定类型。 “Disabled”
“SniEnabled”
certificateId 要绑定到此主机名的证书的资源 ID。 字符串
name 主机名 字符串 (必需)

TrafficWeight

名称 说明
latestRevision 指示流量权重属于最新的稳定修订 bool
revisionName 修订的名称 字符串
重量 分配给修订的流量权重 int

RegistryCredentials

名称 说明
passwordSecretRef 包含注册表登录密码的机密的名称 字符串
server 容器注册表服务器 字符串
username 容器注册表用户名 字符串

机密

名称 说明
name 机密名称。 string
value 机密值。 字符串

约束:
敏感值。 作为安全参数传入。

模板

名称 说明 Value
containers 容器应用的容器定义列表。 Container[]
revisionSuffix 追加到修订名称的用户友好后缀 字符串
scale 容器应用的缩放属性。 缩放
volumes 容器应用的卷定义列表。 Volume[]

容器

名称 说明
args 容器启动命令参数。 string[]
命令 容器启动命令。 string[]
env 容器环境变量。 EnvironmentVar[]
image 容器映像标记。 字符串
name 自定义容器名称。 字符串
probes 容器的探测列表。 ContainerAppProbe[]
resources 容器资源要求。 ContainerResources
volumeMounts 容器卷装载。 VolumeMount[]

EnvironmentVar

名称 说明
name 环境变量名称。 字符串
secretRef 要从中提取环境变量值的容器应用机密的名称。 string
value 非机密环境变量值。 字符串

ContainerAppProbe

名称 说明
failureThreshold 在成功后,要被视为失败的探测的最小连续失败次数。 默认值为 3。 最小值为 1。 最大值为 10。 int
httpGet HTTPGet 指定要执行的 http 请求。 ContainerAppProbeHttpGet
initialDelaySeconds 启动容器后,启动运行情况探测前的秒数。 最小值为 1。 最大值为 60。 int
periodSeconds 执行探测的频率(以秒为单位)。 默认值为 10 秒。 最小值为 1。 最大值为 240。 int
successThreshold 失败后,要被视为成功的探测的最小连续成功。 默认值为 1。 对于运行和启动,必须为 1。 最小值为 1。 最大值为 10。 int
tcpSocket TCPSocket 指定涉及 TCP 端口的操作。 尚不支持 TCP 挂钩。 ContainerAppProbeTcpSocket
terminationGracePeriodSeconds 探测失败时 Pod 需要正常终止的可选持续时间(以秒为单位)。 宽限期是向 Pod 中运行的进程发送终止信号之后的持续时间(以秒为单位)以及用终止信号强行停止进程的时间。 请将此值设置为大于你的进程的预期清理时间。 如果此值为 nil,将使用 Pod 的 terminationGracePeriodSeconds。 否则,此值将替代 Pod 规范提供的值。值必须是非负整数。 值 0 指示通过终止信号立即停止, (没有机会关闭) 。 这是一个 alpha 字段,需要启用 ProbeTerminationGracePeriod 功能门。 最大值为 3600 秒 (1 小时) int
timeoutSeconds 探测超时的秒数。默认为 1 秒。 最小值为 1。 最大值为 240。 int
类型 探测的类型。 “Liveness”
“Readiness”
“Startup”

ContainerAppProbeHttpGet

名称 说明
host 要连接到的主机名,默认为 Pod IP。 你可能想要改为在 httpHeaders 中设置“主机”。 字符串
httpHeaders 在请求中设置的自定义标头。 HTTP 允许重复标头。 ContainerAppProbeHttpGetHttpHeadersItem[]
path HTTP 服务器上的访问路径。 string
port 要在容器上访问的端口的名称或编号。 数字必须在 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 int (必需)
scheme 用于连接到主机的方案。 默认为 HTTP。 'HTTP'
'HTTPS'

ContainerAppProbeHttpGetHttpHeadersItem

名称 说明
name 标头字段名称 字符串 (必需)
value 标头字段值 字符串 (必需)

ContainerAppProbeTcpSocket

名称 说明
host 可选:要连接到的主机名,默认为 Pod IP。 string
port 要在容器上访问的端口的数量或名称。 数字必须在 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 int (必需)

ContainerResources

名称 说明
cpu 核心中所需的 CPU,例如 0.5 若要指定十进制值,请使用 json () 函数。 int 或 json decimal
内存 所需内存,例如“250Mb” 字符串

VolumeMount

名称 说明
mountPath 容器中应装载卷的路径。不得包含“:”。 字符串
volumeName 这必须与卷的名称匹配。 字符串

缩放

名称 说明
maxReplicas 可选。 容器副本的最大数目。 如果未设置,则默认为 10。 int
minReplicas 可选。 最小容器副本数。 int
规则 缩放规则。 ScaleRule[]

ScaleRule

名称 说明
azureQueue 基于 Azure 队列的缩放。 QueueScaleRule
自定义 自定义缩放规则。 CustomScaleRule
http 基于 HTTP 请求的缩放。 HttpScaleRule
name 缩放规则名称 字符串

QueueScaleRule

名称 说明
auth 队列缩放规则的身份验证机密。 ScaleRuleAuth[]
queueLength 队列长度。 int
queueName 队列名称。 字符串

ScaleRuleAuth

名称 说明
secretRef 要从中提取身份验证参数的容器应用机密的名称。 字符串
triggerParameter 使用机密的触发器参数 字符串

CustomScaleRule

名称 说明
auth 自定义缩放规则的身份验证机密。 ScaleRuleAuth[]
metadata 描述自定义缩放规则的元数据属性。 CustomScaleRuleMetadata
类型 自定义缩放规则的类型
例如:azure-servicebus、redis 等。
字符串

CustomScaleRuleMetadata

名称 说明
{customized property} 字符串

HttpScaleRule

名称 说明
auth 自定义缩放规则的身份验证机密。 ScaleRuleAuth[]
metadata 用于描述 http 缩放规则的元数据属性。 HttpScaleRuleMetadata

HttpScaleRuleMetadata

名称 说明
{customized property} 字符串

数据量(Volume)

名称 说明
name 卷名称。 字符串
storageName 存储资源的名称。 无需提供 EmptyDir。 字符串
storageType 卷的存储类型。 如果未提供,请使用 EmptyDir。 “AzureFile”
“EmptyDir”

快速入门模板

以下快速入门模板部署此资源类型。

模板 说明
使用注册表创建容器应用和环境

部署到 Azure
使用Azure 容器注册表的基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。
使用容器应用环境创建两个容器应用

部署到 Azure
使用基本容器应用创建两个容器应用环境。 它还部署 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-01-01-preview",
  "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": [
          {
            "latestRevision": "bool",
            "revisionName": "string",
            "weight": "int"
          }
        ],
        "transport": "string"
      },
      "registries": [
        {
          "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

名称 说明 Value
type 资源类型 “Microsoft.App/containerApps”
apiVersion 资源 API 版本 “2022-01-01-preview”
name 资源名称 字符串 (必需)

字符限制:2-32

有效字符:
小写字母、数字和连字符。

以字母开头且以字母数字结尾。
location 资源所在的地理位置 字符串 (必需)
标记 资源标记。 标记名称和值的字典。 请参阅 模板中的标记
标识 容器应用的托管标识,用于与其他 Azure 服务交互,而无需在代码中维护任何机密或凭据。 ManagedServiceIdentity
properties ContainerApp 资源特定的属性 ContainerAppProperties

ManagedServiceIdentity

名称 说明 Value
type ) 允许 SystemAssigned 和 UserAssigned 类型的托管服务标识 (的类型。 “None”
“SystemAssigned”
“SystemAssigned,UserAssigned”
“UserAssigned” (必需)
userAssignedIdentities 与资源关联的用户分配标识集。 userAssignedIdentities 字典密钥将是采用以下格式的 ARM 资源 ID:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}。 字典值可以是请求中) ({} 空对象。 UserAssignedIdentities

UserAssignedIdentities

名称 说明
{customized property} UserAssignedIdentity

UserAssignedIdentity

此对象不包含部署期间要设置的任何属性。 所有属性均为 ReadOnly。

ContainerAppProperties

名称 说明
配置 非版本控制容器应用配置属性。 配置
managedEnvironmentId 容器应用环境的资源 ID。 字符串
template 容器应用版本控制的应用程序定义。 模板

配置

名称 说明
activeRevisionsMode ActiveRevisionsMode 控制如何处理容器应用的活动修订:
{list}{item}多个:多个修订可以处于活动状态。 如果未提供任何值,则默认为{/item}{item}Single:一次只能有一个修订处于活动状态。 修订权重不能在此模式下使用{/item}{/list}
“Multiple”
“Single”
dapr 容器应用的 Dapr 配置。 Dapr
入口 入口配置。 流入量
registries 容器应用使用的容器专用容器注册表凭据的集合 RegistryCredentials[]
机密 容器应用使用的机密集合 机密[]

Dapr

名称 说明
appId Dapr 应用程序标识符 字符串
appPort 告知 Dapr 应用程序正在侦听哪个端口 int
appProtocol 告知 Dapr 你的应用程序所使用的协议。 有效选项为 http 和 grpc。 默认值为 http “grpc”
“http”
enabled 指示是否启用 Dapr 侧车的布尔值 bool

流入量

名称 说明
allowInsecure Bool 指示是否允许与 的 HTTP 连接。 如果设置为 false,则 HTTP 连接会自动重定向到 HTTPS 连接 bool
customDomains 容器应用的主机名的自定义域绑定。 CustomDomain[]
external 指示应用是否公开外部 http 终结点的布尔值 bool
targetPort 容器中来自入口的流量的目标端口 int
traffic 应用修订的流量权重 TrafficWeight[]
运输 入口传输协议 'auto'
“http”
“http2”

CustomDomain

名称 说明
bindingType Custom Domain绑定类型。 “Disabled”
“SniEnabled”
certificateId 要绑定到此主机名的证书的资源 ID。 字符串
name 主机名 字符串 (必需)

TrafficWeight

名称 说明
latestRevision 指示流量权重属于最新的稳定修订 bool
revisionName 修订的名称 字符串
重量 分配给修订的流量权重 int

RegistryCredentials

名称 说明
passwordSecretRef 包含注册表登录密码的机密的名称 字符串
server 容器注册表服务器 字符串
username 容器注册表用户名 字符串

机密

名称 说明
name 机密名称。 string
value 机密值。 字符串

约束:
敏感值。 作为安全参数传入。

模板

名称 说明 Value
containers 容器应用的容器定义列表。 Container[]
revisionSuffix 追加到修订名称的用户友好后缀 字符串
scale 容器应用的缩放属性。 缩放
volumes 容器应用的卷定义列表。 Volume[]

容器

名称 说明
args 容器启动命令参数。 string[]
命令 容器启动命令。 string[]
env 容器环境变量。 EnvironmentVar[]
image 容器映像标记。 字符串
name 自定义容器名称。 字符串
probes 容器的探测列表。 ContainerAppProbe[]
resources 容器资源要求。 ContainerResources
volumeMounts 容器卷装载。 VolumeMount[]

EnvironmentVar

名称 说明
name 环境变量名称。 字符串
secretRef 要从中提取环境变量值的容器应用机密的名称。 string
value 非机密环境变量值。 字符串

ContainerAppProbe

名称 说明
failureThreshold 在成功后,要被视为失败的探测的最小连续失败次数。 默认值为 3。 最小值为 1。 最大值为 10。 int
httpGet HTTPGet 指定要执行的 http 请求。 ContainerAppProbeHttpGet
initialDelaySeconds 启动容器后,启动运行情况探测前的秒数。 最小值为 1。 最大值为 60。 int
periodSeconds 执行探测的频率(以秒为单位)。 默认值为 10 秒。 最小值为 1。 最大值为 240。 int
successThreshold 失败后,要被视为成功的探测的最小连续成功。 默认值为 1。 对于运行和启动,必须为 1。 最小值为 1。 最大值为 10。 int
tcpSocket TCPSocket 指定涉及 TCP 端口的操作。 尚不支持 TCP 挂钩。 ContainerAppProbeTcpSocket
terminationGracePeriodSeconds 探测失败时 Pod 需要正常终止的可选持续时间(以秒为单位)。 宽限期是向 Pod 中运行的进程发送终止信号之后的持续时间(以秒为单位)以及用终止信号强行停止进程的时间。 请将此值设置为大于你的进程的预期清理时间。 如果此值为 nil,将使用 Pod 的 terminationGracePeriodSeconds。 否则,此值将替代 Pod 规范提供的值。值必须是非负整数。 值 0 指示通过终止信号立即停止, (没有机会关闭) 。 这是一个 alpha 字段,需要启用 ProbeTerminationGracePeriod 功能门。 最大值为 3600 秒 (1 小时) int
timeoutSeconds 探测超时的秒数。默认为 1 秒。 最小值为 1。 最大值为 240。 int
类型 探测的类型。 “Liveness”
“Readiness”
“Startup”

ContainerAppProbeHttpGet

名称 说明
host 要连接到的主机名,默认为 Pod IP。 你可能想要改为在 httpHeaders 中设置“主机”。 字符串
httpHeaders 在请求中设置的自定义标头。 HTTP 允许重复标头。 ContainerAppProbeHttpGetHttpHeadersItem[]
path HTTP 服务器上的访问路径。 string
port 要在容器上访问的端口的名称或编号。 数字必须在 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 int (必需)
scheme 用于连接到主机的方案。 默认为 HTTP。 'HTTP'
'HTTPS'

ContainerAppProbeHttpGetHttpHeadersItem

名称 说明
name 标头字段名称 字符串 (必需)
value 标头字段值 字符串 (必需)

ContainerAppProbeTcpSocket

名称 说明
host 可选:要连接到的主机名,默认为 Pod IP。 string
port 要在容器上访问的端口的数量或名称。 数字必须在 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 int (必需)

ContainerResources

名称 说明
cpu 核心中所需的 CPU,例如 0.5 若要指定十进制值,请使用 json () 函数。 int 或 json decimal
内存 所需内存,例如“250Mb” 字符串

VolumeMount

名称 说明
mountPath 容器中应装载卷的路径。不得包含“:”。 字符串
volumeName 这必须与卷的名称匹配。 字符串

缩放

名称 说明
maxReplicas 可选。 容器副本的最大数目。 如果未设置,则默认为 10。 int
minReplicas 可选。 最小容器副本数。 int
规则 缩放规则。 ScaleRule[]

ScaleRule

名称 说明
azureQueue 基于 Azure 队列的缩放。 QueueScaleRule
自定义 自定义缩放规则。 CustomScaleRule
http 基于 HTTP 请求的缩放。 HttpScaleRule
name 缩放规则名称 字符串

QueueScaleRule

名称 说明
auth 队列缩放规则的身份验证机密。 ScaleRuleAuth[]
queueLength 队列长度。 int
queueName 队列名称。 字符串

ScaleRuleAuth

名称 说明
secretRef 要从中提取身份验证参数的容器应用机密的名称。 字符串
triggerParameter 使用机密的触发器参数 字符串

CustomScaleRule

名称 说明
auth 自定义缩放规则的身份验证机密。 ScaleRuleAuth[]
metadata 描述自定义缩放规则的元数据属性。 CustomScaleRuleMetadata
类型 自定义缩放规则的类型
例如:azure-servicebus、redis 等。
字符串

CustomScaleRuleMetadata

名称 说明
{customized property} 字符串

HttpScaleRule

名称 说明
auth 自定义缩放规则的身份验证机密。 ScaleRuleAuth[]
metadata 用于描述 http 缩放规则的元数据属性。 HttpScaleRuleMetadata

HttpScaleRuleMetadata

名称 说明
{customized property} 字符串

数据量(Volume)

名称 说明
name 卷名称。 字符串
storageName 存储资源的名称。 无需提供 EmptyDir。 字符串
storageType 卷的存储类型。 如果未提供,请使用 EmptyDir。 “AzureFile”
“EmptyDir”

快速入门模板

以下快速入门模板部署此资源类型。

模板 说明
使用注册表创建容器应用和环境

部署到 Azure
使用Azure 容器注册表的基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。
使用容器应用环境创建两个容器应用

部署到 Azure
使用基本容器应用创建两个容器应用环境。 它还部署 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-01-01-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"
          enabled = bool
        }
        ingress = {
          allowInsecure = bool
          customDomains = [
            {
              bindingType = "string"
              certificateId = "string"
              name = "string"
            }
          ]
          external = bool
          targetPort = int
          traffic = [
            {
              latestRevision = bool
              revisionName = "string"
              weight = int
            }
          ]
          transport = "string"
        }
        registries = [
          {
            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

名称 说明 Value
type 资源类型 “Microsoft.App/containerApps@2022-01-01-preview”
name 资源名称 字符串 (必需)

字符限制:2-32

有效字符:
小写字母、数字和连字符。

以字母开头且以字母数字结尾。
location 资源所在的地理位置 字符串 (必需)
parent_id 若要部署到资源组,请使用该资源组的 ID。 字符串 (必需)
标记 资源标记。 标记名称和值的字典。
标识 容器应用的托管标识,无需在代码中维护任何机密或凭据即可与其他 Azure 服务交互。 ManagedServiceIdentity
properties ContainerApp 资源特定的属性 ContainerAppProperties

ManagedServiceIdentity

名称 说明 Value
type 托管服务标识的类型 (其中允许 systemAssigned 和 UserAssigned 类型) 。 “SystemAssigned”
“SystemAssigned,UserAssigned”
“UserAssigned” (必需)
identity_ids 与资源关联的用户分配标识集。 userAssignedIdentities 字典密钥将是采用以下格式的 ARM 资源 ID:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}。 字典值可以是请求中 ({}) 的空对象。 用户标识 ID 数组。

UserAssignedIdentities

名称 说明
{customized property} UserAssignedIdentity

UserAssignedIdentity

此对象不包含在部署期间要设置的任何属性。 所有属性均为 ReadOnly。

ContainerAppProperties

名称 说明
配置 非版本控制容器应用配置属性。 配置
managedEnvironmentId 容器应用环境的资源 ID。 字符串
template 容器应用版本控制的应用程序定义。 模板

配置

名称 说明
activeRevisionsMode ActiveRevisionsMode 控制如何处理容器应用的活动修订:
{list}{item}多个:多个修订可以处于活动状态。 如果未提供任何值,则默认为{/item}{item}Single:一次只能激活一个修订。 修订权重不能在此模式下使用{/item}{/list}
“多”
“Single”
dapr 容器应用的 Dapr 配置。 Dapr
入口 入口配置。 流入量
registries 容器应用使用的容器专用容器注册表凭据的集合 RegistryCredentials[]
机密 容器应用使用的机密集合 机密[]

Dapr

名称 说明
appId Dapr 应用程序标识符 字符串
appPort 告知 Dapr 应用程序正在侦听哪个端口 int
appProtocol 告知 Dapr 你的应用程序所使用的协议。 有效选项为 http 和 grpc。 默认值为 http “grpc”
“http”
enabled 指示是否启用 Dapr 侧车的布尔值 bool

流入量

名称 说明
allowInsecure Bool 指示是否允许与 的 HTTP 连接。 如果设置为 false,则 HTTP 连接会自动重定向到 HTTPS 连接 bool
customDomains 容器应用的主机名的自定义域绑定。 CustomDomain[]
external 指示应用是否公开外部 http 终结点的布尔值 bool
targetPort 容器中来自入口的流量的目标端口 int
traffic 应用修订的流量权重 TrafficWeight[]
运输 入口传输协议 “auto”
“http”
“http2”

CustomDomain

名称 说明
bindingType Custom Domain绑定类型。 “Disabled”
“SniEnabled”
certificateId 要绑定到此主机名的证书的资源 ID。 字符串
name 主机名 字符串 (必需)

TrafficWeight

名称 说明
latestRevision 指示流量权重属于最新的稳定修订 bool
revisionName 修订的名称 字符串
重量 分配给修订的流量权重 int

RegistryCredentials

名称 说明
passwordSecretRef 包含注册表登录密码的机密的名称 字符串
server 容器注册表服务器 字符串
username 容器注册表用户名 字符串

机密

名称 说明
name 机密名称。 string
value 机密值。 字符串

约束:
敏感值。 作为安全参数传入。

模板

名称 说明 Value
containers 容器应用的容器定义列表。 Container[]
revisionSuffix 追加到修订名称的用户友好后缀 字符串
scale 容器应用的缩放属性。 缩放
volumes 容器应用的卷定义列表。 Volume[]

容器

名称 说明
args 容器启动命令参数。 string[]
命令 容器启动命令。 string[]
env 容器环境变量。 EnvironmentVar[]
image 容器映像标记。 字符串
name 自定义容器名称。 字符串
probes 容器的探测列表。 ContainerAppProbe[]
resources 容器资源要求。 ContainerResources
volumeMounts 容器卷装载。 VolumeMount[]

EnvironmentVar

名称 说明
name 环境变量名称。 字符串
secretRef 要从中提取环境变量值的容器应用机密的名称。 string
value 非机密环境变量值。 字符串

ContainerAppProbe

名称 说明
failureThreshold 在成功后,要被视为失败的探测的最小连续失败次数。 默认值为 3。 最小值为 1。 最大值为 10。 int
httpGet HTTPGet 指定要执行的 http 请求。 ContainerAppProbeHttpGet
initialDelaySeconds 启动容器后,启动运行情况探测前的秒数。 最小值为 1。 最大值为 60。 int
periodSeconds 执行探测的频率(以秒为单位)。 默认值为 10 秒。 最小值为 1。 最大值为 240。 int
successThreshold 失败后,要被视为成功的探测的最小连续成功。 默认值为 1。 对于运行和启动,必须为 1。 最小值为 1。 最大值为 10。 int
tcpSocket TCPSocket 指定涉及 TCP 端口的操作。 尚不支持 TCP 挂钩。 ContainerAppProbeTcpSocket
terminationGracePeriodSeconds 探测失败时 Pod 需要正常终止的可选持续时间(以秒为单位)。 宽限期是向 Pod 中运行的进程发送终止信号之后的持续时间(以秒为单位)以及用终止信号强行停止进程的时间。 请将此值设置为大于你的进程的预期清理时间。 如果此值为 nil,将使用 Pod 的 terminationGracePeriodSeconds。 否则,此值将替代 Pod 规范提供的值。值必须是非负整数。 值 0 指示通过终止信号立即停止, (没有机会关闭) 。 这是一个 alpha 字段,需要启用 ProbeTerminationGracePeriod 功能门。 最大值为 3600 秒 (1 小时) int
timeoutSeconds 探测超时的秒数。默认为 1 秒。 最小值为 1。 最大值为 240。 int
类型 探测的类型。 “活度”
“Readiness”
“Startup”

ContainerAppProbeHttpGet

名称 说明
host 要连接到的主机名,默认为 Pod IP。 你可能想要改为在 httpHeaders 中设置“主机”。 字符串
httpHeaders 在请求中设置的自定义标头。 HTTP 允许重复标头。 ContainerAppProbeHttpGetHttpHeadersItem[]
path HTTP 服务器上的访问路径。 string
port 要在容器上访问的端口的名称或编号。 数字必须在 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 int (必需)
scheme 用于连接到主机的方案。 默认为 HTTP。 "HTTP"
“HTTPS”

ContainerAppProbeHttpGetHttpHeadersItem

名称 说明
name 标头字段名称 字符串 (必需)
value 标头字段值 字符串 (必需)

ContainerAppProbeTcpSocket

名称 说明
host 可选:要连接到的主机名,默认为 Pod IP。 string
port 要在容器上访问的端口的数量或名称。 数字必须在 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 int (必需)

ContainerResources

名称 说明
cpu 内核中所需的 CPU,例如 0.5 将十进制值指定为字符串。 int 或 json decimal
内存 所需内存,例如“250Mb” 字符串

VolumeMount

名称 说明
mountPath 容器中应装载卷的路径。不得包含“:”。 字符串
volumeName 这必须与卷的名称匹配。 字符串

缩放

名称 说明
maxReplicas 可选。 容器副本的最大数目。 如果未设置,则默认为 10。 int
minReplicas 可选。 最小容器副本数。 int
规则 缩放规则。 ScaleRule[]

ScaleRule

名称 说明
azureQueue 基于 Azure 队列的缩放。 QueueScaleRule
自定义 自定义缩放规则。 CustomScaleRule
http 基于 HTTP 请求的缩放。 HttpScaleRule
name 缩放规则名称 字符串

QueueScaleRule

名称 说明
auth 队列缩放规则的身份验证机密。 ScaleRuleAuth[]
queueLength 队列长度。 int
queueName 队列名称。 字符串

ScaleRuleAuth

名称 说明
secretRef 要从中提取身份验证参数的容器应用机密的名称。 字符串
triggerParameter 使用机密的触发器参数 字符串

CustomScaleRule

名称 说明
auth 自定义缩放规则的身份验证机密。 ScaleRuleAuth[]
metadata 描述自定义缩放规则的元数据属性。 CustomScaleRuleMetadata
类型 自定义缩放规则的类型
例如:azure-servicebus、redis 等。
字符串

CustomScaleRuleMetadata

名称 说明
{customized property} 字符串

HttpScaleRule

名称 说明
auth 自定义缩放规则的身份验证机密。 ScaleRuleAuth[]
metadata 用于描述 http 缩放规则的元数据属性。 HttpScaleRuleMetadata

HttpScaleRuleMetadata

名称 说明
{customized property} 字符串

数据量(Volume)

名称 说明
name 卷名称。 字符串
storageName 存储资源的名称。 无需提供 EmptyDir。 字符串
storageType 卷的存储类型。 如果未提供,请使用 EmptyDir。 “AzureFile”
“EmptyDir”