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

Microsoft.App containerApps 2023-08-01-preview

Bicep 资源定义

可以使用目标作部署 containerApps 资源类型:

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

资源格式

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

resource symbolicname 'Microsoft.App/containerApps@2023-08-01-preview' = {
  extendedLocation: {
    name: 'string'
    type: 'string'
  }
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  location: 'string'
  managedBy: 'string'
  name: '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
        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: int
            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: int
            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'
  }
  tags: {
    {customized property}: 'string'
  }
}

属性值

Microsoft.App/containerApps

名称 DESCRIPTION 价值
extendedLocation 扩展位置的复杂类型。 扩展位置
身份 容器应用的托管标识可以与其他 Azure 服务交互,而无需在代码中维护任何机密或凭据。 ManagedServiceIdentity
位置 资源所在的地理位置 string (必需)
managedBy 管理此资源的资源的完全限定资源 ID。 指示此资源是否由另一个 Azure 资源管理。 如果存在,则完全模式部署不会删除资源(如果从模板中删除,因为它由另一个资源管理)。 字符串
姓名 资源名称 string (必需)
属性 ContainerApp 资源特定属性 ContainerApp属性
标签 资源标记 标记名称和值的字典。 请参阅模板 中的 标记

配置

名称 DESCRIPTION 价值
activeRevisionsMode ActiveRevisionsMode 控制如何处理容器应用的活动修订:
<列表><项>多:多个修订可以处于活动状态。</item><item>Single:一次只能有一个修订处于活动状态。 无法在此模式下使用修订权重。 如果未提供任何值,则为默认值。</item></list>
“Multiple”
“Single”
dapr(分布式应用程序运行时) 容器应用的 Dapr 配置。 Dapr
进入 入口配置。 入口
maxInactiveRevisions 可选。 容器应用可以拥有的最大非活动修订。 整数 (int)
登记处 容器应用使用的容器的专用容器注册表凭据的集合 RegistryCredentials[]
机密 容器应用使用的机密集合 机密[]
服务 容器应用作为开发容器应用服务 服务

集装箱

名称 DESCRIPTION 价值
参数 容器启动命令参数。 字符串[]
指令 容器启动命令。 字符串[]
环境 容器环境变量。 EnvironmentVar (环境变量
图像 容器映像标记。 字符串
姓名 自定义容器名称。 字符串
探针 容器的探测列表。 ContainerAppProbe[]
资源 容器资源要求。 容器资源
volumeMounts 容器卷装载。 体积挂载[]

ContainerAppProbe 的

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

ContainerAppProbeHttpGet

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

ContainerAppProbeHttpGetHttpHeadersItem

名称 DESCRIPTION 价值
姓名 标头字段名称 string (必需)
价值 标头字段值 string (必需)

容器应用探针 TcpSocket

名称 DESCRIPTION 价值
主机 可选:要连接到的主机名,默认为 Pod IP。 字符串
港口 要在容器上访问的端口的编号或名称。 数字必须介于 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 int (必需)

ContainerApp属性

名称 DESCRIPTION 价值
配置 非版本控制容器应用配置属性。 配置
环境 ID 环境的资源 ID。 字符串
managedEnvironmentId 已弃用。 容器应用环境的资源 ID。 字符串
模板 容器应用版本控制的应用程序定义。 模板
workloadProfileName (工作负载配置文件名称) 用于固定容器应用执行的工作负荷配置文件名称。 字符串

容器资源

名称 DESCRIPTION 价值
中央处理器 核心中所需的 CPU,例如 0.5 整数 (int)
记忆 所需的内存,例如“250Mb” 字符串

CorsPolicy 公司

名称 DESCRIPTION 价值
allowCredentials 指定资源是否允许凭据 布尔
allowedHeaders 的 指定 access-control-allow-headers 标头的内容 字符串[]
allowedMethods 指定 access-control-allow-methods 标头的内容 字符串[]
allowedOrigins 的 指定 access-control-allow-origins 标头的内容 string[] (必需)
exposeHeaders 指定 access-control-expose-headers 标头的内容 字符串[]
最大年龄 指定 access-control-max-age 标头的内容 整数 (int)

自定义域

名称 DESCRIPTION 价值
bindingType 自定义域绑定类型。 “Disabled”
'SniEnabled'
证书 ID 要绑定到此主机名的证书的资源 ID。 必须存在于托管环境中。 字符串
姓名 主机名。 string (必需)

CustomScaleRule

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

CustomScaleRuleMetadata

名称 DESCRIPTION 价值

Dapr

名称 DESCRIPTION 价值
应用程序ID Dapr 应用程序标识符 字符串
appPort 告知 Dapr 应用程序正在侦听的端口 整数 (int)
appProtocol 协议 告知 Dapr 应用程序使用的协议。 有效选项为 http 和 grpc。 默认值为 http “grpc”
“http”
enableApiLogging 为 Dapr sidecar 启用 API 日志记录 布尔
启用 指示 Dapr 侧车是否已启用的布尔值 布尔
httpMax请求大小 增加请求正文 http 和 grpc 服务器参数的最大大小(以 MB 为单位)以处理大文件的上传。 默认值为 4 MB。 整数 (int)
httpReadBufferSize 发送多 KB 标头时要处理的 http 标头读取缓冲区的最大大小(以 KB 为单位)。 默认值为 65KB。 整数 (int)
logLevel 设置 Dapr sidecar 的日志级别。 允许的值是调试、信息、警告、错误。 默认值为信息。 “debug”
“error”
“info”
“warn”

EnvironmentVar

名称 DESCRIPTION 价值
姓名 环境变量名称。 字符串
secretRef 的 要从中拉取环境变量值的容器应用机密的名称。 字符串
价值 非机密环境变量值。 字符串

扩展位置

名称 DESCRIPTION 价值
姓名 扩展位置的名称。 字符串
类型 扩展位置的类型。 “CustomLocation”

HttpScaleRule

名称 DESCRIPTION 价值
身份验证 自定义缩放规则的身份验证机密。 ScaleRuleAuth []
元数据 描述 http 缩放规则的元数据属性。 HttpScaleRuleMetadata

HttpScaleRuleMetadata

名称 DESCRIPTION 价值

流入量

名称 DESCRIPTION 价值
additionalPortMappings 用于在容器应用上公开其他端口的设置 IngressPortMapping[]
allowInsecure(允许不安全) 指示是否允许与 HTTP 连接的布尔值。 如果设置为 false HTTP 连接,则会自动重定向到 HTTPS 连接 布尔
clientCertificateMode 用于 mTLS 身份验证的客户端证书模式。 Ignore 表示服务器在转发时丢弃客户端证书。 Accept 表示服务器转发客户端证书,但不需要客户端证书。 Require 表示服务器需要客户端证书。 “accept”
“ignore”
“require”
cors政策 容器应用的 CORS 策略 CorsPolicy 公司
自定义域 容器应用的主机名的自定义域绑定。 CustomDomain[]
exposedPort 端口 容器中公开的端口,用于来自入口的 TCP 流量 整数 (int)
外部 指示应用是否公开外部 http 终结点的布尔值 布尔
ipSecurity限制 限制传入 IP 地址的规则。 IpSecurityRestrictionRule[]
sticky会话 单一修订模式的粘滞会话 IngressStickySessions
目标端口 用于来自入口的流量的容器中的目标端口 整数 (int)
交通 应用修订的流量权重 TrafficWeight []
运输 入口传输协议 “auto”
“http”
“http2”
“tcp”

IngressPortMapping (入口端口映射)

名称 DESCRIPTION 价值
exposedPort 端口 指定目标端口的公开端口。 如果未指定,则默认为目标端口 整数 (int)
外部 指定应用端口是否可在环境外部访问 bool (必需)
目标端口 指定端口用户的容器侦听 int (必需)

IngressStickySessions

名称 DESCRIPTION 价值
亲和力 粘滞会话相关性 没有
“粘性”

InitContainer (初始容器)

名称 DESCRIPTION 价值
参数 容器启动命令参数。 字符串[]
指令 容器启动命令。 字符串[]
环境 容器环境变量。 EnvironmentVar (环境变量
图像 容器映像标记。 字符串
姓名 自定义容器名称。 字符串
资源 容器资源要求。 容器资源
volumeMounts 容器卷装载。 体积挂载[]

IpSecurityRestrictionRule

名称 DESCRIPTION 价值
行動 允许或拒绝规则确定传入 IP。 注意:规则只能包含 ALL 允许或全部拒绝 “允许”
“拒绝”(必需)
描述 描述要发送到容器应用的 IP 限制规则。 这是一个可选字段。 字符串
ipAddressRange 与传入 IP 地址匹配的 CIDR 表示法 string (必需)
姓名 IP 限制规则的名称。 string (必需)

ManagedServiceIdentity

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

QueueScaleRule

名称 DESCRIPTION 价值
身份验证 队列缩放规则的身份验证机密。 ScaleRuleAuth []
queueLength 队列长度。 整数 (int)
队列名称 队列名称。 字符串

注册表凭据

名称 DESCRIPTION 价值
身份 用于通过 Azure 容器注册表进行身份验证的托管标识。 对于用户分配的标识,请使用完整的用户分配标识资源 ID。 对于系统分配的标识,请使用“system” 字符串
密码SecretRef 包含注册表登录密码的机密的名称 字符串
服务器 容器注册表服务器 字符串
用户名 容器注册表用户名 字符串

规模

名称 DESCRIPTION 价值
最大副本数 可选。 容器副本的最大数目。 如果未设置,则默认为 10。 整数 (int)
最小副本数 可选。 容器副本的最小数量。 整数 (int)
规则 缩放规则。 ScaleRule[]

ScaleRule

名称 DESCRIPTION 价值
azureQueue 基于 Azure 队列的缩放。 QueueScaleRule
自定义 自定义缩放规则。 CustomScaleRule
http 基于 HTTP 请求的缩放。 HttpScaleRule
姓名 缩放规则名称 字符串
TCP 基于 Tcp 请求的缩放。 TcpScaleRule

ScaleRuleAuth 的

名称 DESCRIPTION 价值
secretRef 的 要从中提取身份验证参数的机密的名称。 字符串
triggerParameter 使用机密的触发器参数 字符串

机密

名称 DESCRIPTION 价值
身份 使用 Azure Key Vault 进行身份验证的托管标识的资源 ID,或使用系统分配的标识。 字符串
keyVaultUrl 的 指向容器应用引用的机密的 Azure Key Vault URL。 字符串
姓名 机密名称。 字符串
价值 机密值。 字符串

约束:
敏感值。 以安全参数的形式传入。

SecretVolumeItem

名称 DESCRIPTION 价值
路径 项目机密的路径。 如果未提供路径,则路径默认为 secretRef 中列出的机密的名称。 字符串
secretRef 的 要从中拉取机密值的容器应用机密的名称。 字符串

服务

名称 DESCRIPTION 价值
类型 Dev ContainerApp 服务类型 string (必需)

ServiceBind 服务

名称 DESCRIPTION 价值
客户端类型 用于连接到服务的客户端的类型 字符串
customizedKeys 用于自定义注入值到应用的自定义键 ServiceBindCustomizedKeys 服务
姓名 服务绑定的名称 字符串
serviceId 服务 ID 目标服务的资源 ID 字符串

ServiceBindCustomizedKeys 服务

名称 DESCRIPTION 价值

TcpScaleRule

名称 DESCRIPTION 价值
身份验证 tcp 缩放规则的身份验证机密。 ScaleRuleAuth []
元数据 用于描述 tcp 缩放规则的元数据属性。 TcpScaleRuleMetadata

TcpScaleRuleMetadata

名称 DESCRIPTION 价值

模板

名称 DESCRIPTION 价值
器皿 容器应用的容器定义列表。 容器[]
initContainers 在应用容器之前运行的专用容器列表。 InitContainer[]
revisionSuffix 追加到修订名称的用户友好后缀 字符串
规模 缩放容器应用的属性。 比例
serviceBinds 服务 绑定到应用的容器应用服务列表 ServiceBind[]
terminationGracePeriodSeconds 容器应用实例需要正常终止的可选持续时间(以秒为单位)。 值必须是非负整数。 值零表示通过终止信号立即停止(没有关闭机会)。 如果此值为 nil,则会改用默认宽限期。 请将此值设置为大于你的进程的预期清理时间。 默认值为 30 秒。 整数 (int)
容器应用的卷定义列表。 []

TrackedResourceTags

名称 DESCRIPTION 价值

TrafficWeight (流量权重)

名称 DESCRIPTION 价值
标签 将流量标签与修订相关联 字符串
latestRevision 版本 指示流量权重属于最新的稳定修订 布尔
修订名称 修订的名称 字符串
重量 分配给修订的流量权重 整数 (int)

UserAssignedIdentities

名称 DESCRIPTION 价值

UserAssignedIdentity

名称 DESCRIPTION 价值

音量

名称 DESCRIPTION 价值
mountOptions 装载 AzureFile 时使用的装载选项。 必须是逗号分隔的字符串。 字符串
姓名 卷名称。 字符串
机密 要添加到卷中的机密列表。 如果未提供机密,集合中的所有机密都将添加到卷中。 SecretVolumeItem[]
存储名称 存储资源的名称。 无需提供 EmptyDir 和 Secret。 字符串
存储类型 卷的存储类型。 如果未提供,请使用 EmptyDir。 “AzureFile”
“EmptyDir”
“Secret”

VolumeMount (体积挂载)

名称 DESCRIPTION 价值
mountPath 容器中应装载卷的路径。不得包含“:”。 字符串
subPath 应从中装载容器卷的卷中的路径。 默认为“”(卷的根目录)。 字符串
卷名称 这必须与卷的名称匹配。 字符串

用法示例

Azure 验证模块

以下 Azure 验证模块 可用于部署此资源类型。

模块 DESCRIPTION
容器应用 容器应用的 AVM 资源模块

Azure 快速入门示例

以下 Azure 快速入门模板 包含用于部署此资源类型的 Bicep 示例。

Bicep 文件 DESCRIPTION
使用注册表创建容器应用和环境 使用 Azure 容器注册表中的基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。
使用定义的 HTTP 缩放规则创建容器应用 使用基于 HTTP 流量缩放的基本容器应用创建容器应用环境。
在容器应用环境中创建容器应用 使用基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。
使用容器应用创建 Dapr 微服务应用 使用容器应用创建 Dapr 微服务应用。
使用容器应用创建 Dapr pub-sub servicebus 应用 使用容器应用创建 Dapr pub-sub servicebus 应用。
使用容器应用环境创建两个容器应用 使用基本容器应用创建两个容器应用环境。 它还部署 Log Analytics 工作区来存储日志。
使用 VNET 创建外部容器应用环境 使用 VNET 创建外部容器应用环境。
使用 VNET 创建内部容器应用环境 使用 VNET 创建内部容器应用环境。

ARM 模板资源定义

可以使用目标作部署 containerApps 资源类型:

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

资源格式

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

{
  "type": "Microsoft.App/containerApps",
  "apiVersion": "2023-08-01-preview",
  "name": "string",
  "extendedLocation": {
    "name": "string",
    "type": "string"
  },
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {
      }
    }
  },
  "location": "string",
  "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",
        "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": "int",
            "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": "int",
            "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"
  },
  "tags": {
    "{customized property}": "string"
  }
}

属性值

Microsoft.App/containerApps

名称 DESCRIPTION 价值
apiVersion API 版本 “2023-08-01-预览”
extendedLocation 扩展位置的复杂类型。 扩展位置
身份 容器应用的托管标识可以与其他 Azure 服务交互,而无需在代码中维护任何机密或凭据。 ManagedServiceIdentity
位置 资源所在的地理位置 string (必需)
managedBy 管理此资源的资源的完全限定资源 ID。 指示此资源是否由另一个 Azure 资源管理。 如果存在,则完全模式部署不会删除资源(如果从模板中删除,因为它由另一个资源管理)。 字符串
姓名 资源名称 string (必需)
属性 ContainerApp 资源特定属性 ContainerApp属性
标签 资源标记 标记名称和值的字典。 请参阅模板 中的 标记
类型 资源类型 “Microsoft.App/containerApps”

配置

名称 DESCRIPTION 价值
activeRevisionsMode ActiveRevisionsMode 控制如何处理容器应用的活动修订:
<列表><项>多:多个修订可以处于活动状态。</item><item>Single:一次只能有一个修订处于活动状态。 无法在此模式下使用修订权重。 如果未提供任何值,则为默认值。</item></list>
“Multiple”
“Single”
dapr(分布式应用程序运行时) 容器应用的 Dapr 配置。 Dapr
进入 入口配置。 入口
maxInactiveRevisions 可选。 容器应用可以拥有的最大非活动修订。 整数 (int)
登记处 容器应用使用的容器的专用容器注册表凭据的集合 RegistryCredentials[]
机密 容器应用使用的机密集合 机密[]
服务 容器应用作为开发容器应用服务 服务

集装箱

名称 DESCRIPTION 价值
参数 容器启动命令参数。 字符串[]
指令 容器启动命令。 字符串[]
环境 容器环境变量。 EnvironmentVar (环境变量
图像 容器映像标记。 字符串
姓名 自定义容器名称。 字符串
探针 容器的探测列表。 ContainerAppProbe[]
资源 容器资源要求。 容器资源
volumeMounts 容器卷装载。 体积挂载[]

ContainerAppProbe 的

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

ContainerAppProbeHttpGet

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

ContainerAppProbeHttpGetHttpHeadersItem

名称 DESCRIPTION 价值
姓名 标头字段名称 string (必需)
价值 标头字段值 string (必需)

容器应用探针 TcpSocket

名称 DESCRIPTION 价值
主机 可选:要连接到的主机名,默认为 Pod IP。 字符串
港口 要在容器上访问的端口的编号或名称。 数字必须介于 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 int (必需)

ContainerApp属性

名称 DESCRIPTION 价值
配置 非版本控制容器应用配置属性。 配置
环境 ID 环境的资源 ID。 字符串
managedEnvironmentId 已弃用。 容器应用环境的资源 ID。 字符串
模板 容器应用版本控制的应用程序定义。 模板
workloadProfileName (工作负载配置文件名称) 用于固定容器应用执行的工作负荷配置文件名称。 字符串

容器资源

名称 DESCRIPTION 价值
中央处理器 核心中所需的 CPU,例如 0.5 整数 (int)
记忆 所需的内存,例如“250Mb” 字符串

CorsPolicy 公司

名称 DESCRIPTION 价值
allowCredentials 指定资源是否允许凭据 布尔
allowedHeaders 的 指定 access-control-allow-headers 标头的内容 字符串[]
allowedMethods 指定 access-control-allow-methods 标头的内容 字符串[]
allowedOrigins 的 指定 access-control-allow-origins 标头的内容 string[] (必需)
exposeHeaders 指定 access-control-expose-headers 标头的内容 字符串[]
最大年龄 指定 access-control-max-age 标头的内容 整数 (int)

自定义域

名称 DESCRIPTION 价值
bindingType 自定义域绑定类型。 “Disabled”
'SniEnabled'
证书 ID 要绑定到此主机名的证书的资源 ID。 必须存在于托管环境中。 字符串
姓名 主机名。 string (必需)

CustomScaleRule

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

CustomScaleRuleMetadata

名称 DESCRIPTION 价值

Dapr

名称 DESCRIPTION 价值
应用程序ID Dapr 应用程序标识符 字符串
appPort 告知 Dapr 应用程序正在侦听的端口 整数 (int)
appProtocol 协议 告知 Dapr 应用程序使用的协议。 有效选项为 http 和 grpc。 默认值为 http “grpc”
“http”
enableApiLogging 为 Dapr sidecar 启用 API 日志记录 布尔
启用 指示 Dapr 侧车是否已启用的布尔值 布尔
httpMax请求大小 增加请求正文 http 和 grpc 服务器参数的最大大小(以 MB 为单位)以处理大文件的上传。 默认值为 4 MB。 整数 (int)
httpReadBufferSize 发送多 KB 标头时要处理的 http 标头读取缓冲区的最大大小(以 KB 为单位)。 默认值为 65KB。 整数 (int)
logLevel 设置 Dapr sidecar 的日志级别。 允许的值是调试、信息、警告、错误。 默认值为信息。 “debug”
“error”
“info”
“warn”

EnvironmentVar

名称 DESCRIPTION 价值
姓名 环境变量名称。 字符串
secretRef 的 要从中拉取环境变量值的容器应用机密的名称。 字符串
价值 非机密环境变量值。 字符串

扩展位置

名称 DESCRIPTION 价值
姓名 扩展位置的名称。 字符串
类型 扩展位置的类型。 “CustomLocation”

HttpScaleRule

名称 DESCRIPTION 价值
身份验证 自定义缩放规则的身份验证机密。 ScaleRuleAuth []
元数据 描述 http 缩放规则的元数据属性。 HttpScaleRuleMetadata

HttpScaleRuleMetadata

名称 DESCRIPTION 价值

流入量

名称 DESCRIPTION 价值
additionalPortMappings 用于在容器应用上公开其他端口的设置 IngressPortMapping[]
allowInsecure(允许不安全) 指示是否允许与 HTTP 连接的布尔值。 如果设置为 false HTTP 连接,则会自动重定向到 HTTPS 连接 布尔
clientCertificateMode 用于 mTLS 身份验证的客户端证书模式。 Ignore 表示服务器在转发时丢弃客户端证书。 Accept 表示服务器转发客户端证书,但不需要客户端证书。 Require 表示服务器需要客户端证书。 “accept”
“ignore”
“require”
cors政策 容器应用的 CORS 策略 CorsPolicy 公司
自定义域 容器应用的主机名的自定义域绑定。 CustomDomain[]
exposedPort 端口 容器中公开的端口,用于来自入口的 TCP 流量 整数 (int)
外部 指示应用是否公开外部 http 终结点的布尔值 布尔
ipSecurity限制 限制传入 IP 地址的规则。 IpSecurityRestrictionRule[]
sticky会话 单一修订模式的粘滞会话 IngressStickySessions
目标端口 用于来自入口的流量的容器中的目标端口 整数 (int)
交通 应用修订的流量权重 TrafficWeight []
运输 入口传输协议 “auto”
“http”
“http2”
“tcp”

IngressPortMapping (入口端口映射)

名称 DESCRIPTION 价值
exposedPort 端口 指定目标端口的公开端口。 如果未指定,则默认为目标端口 整数 (int)
外部 指定应用端口是否可在环境外部访问 bool (必需)
目标端口 指定端口用户的容器侦听 int (必需)

IngressStickySessions

名称 DESCRIPTION 价值
亲和力 粘滞会话相关性 没有
“粘性”

InitContainer (初始容器)

名称 DESCRIPTION 价值
参数 容器启动命令参数。 字符串[]
指令 容器启动命令。 字符串[]
环境 容器环境变量。 EnvironmentVar (环境变量
图像 容器映像标记。 字符串
姓名 自定义容器名称。 字符串
资源 容器资源要求。 容器资源
volumeMounts 容器卷装载。 体积挂载[]

IpSecurityRestrictionRule

名称 DESCRIPTION 价值
行動 允许或拒绝规则确定传入 IP。 注意:规则只能包含 ALL 允许或全部拒绝 “允许”
“拒绝”(必需)
描述 描述要发送到容器应用的 IP 限制规则。 这是一个可选字段。 字符串
ipAddressRange 与传入 IP 地址匹配的 CIDR 表示法 string (必需)
姓名 IP 限制规则的名称。 string (必需)

ManagedServiceIdentity

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

QueueScaleRule

名称 DESCRIPTION 价值
身份验证 队列缩放规则的身份验证机密。 ScaleRuleAuth []
queueLength 队列长度。 整数 (int)
队列名称 队列名称。 字符串

注册表凭据

名称 DESCRIPTION 价值
身份 用于通过 Azure 容器注册表进行身份验证的托管标识。 对于用户分配的标识,请使用完整的用户分配标识资源 ID。 对于系统分配的标识,请使用“system” 字符串
密码SecretRef 包含注册表登录密码的机密的名称 字符串
服务器 容器注册表服务器 字符串
用户名 容器注册表用户名 字符串

规模

名称 DESCRIPTION 价值
最大副本数 可选。 容器副本的最大数目。 如果未设置,则默认为 10。 整数 (int)
最小副本数 可选。 容器副本的最小数量。 整数 (int)
规则 缩放规则。 ScaleRule[]

ScaleRule

名称 DESCRIPTION 价值
azureQueue 基于 Azure 队列的缩放。 QueueScaleRule
自定义 自定义缩放规则。 CustomScaleRule
http 基于 HTTP 请求的缩放。 HttpScaleRule
姓名 缩放规则名称 字符串
TCP 基于 Tcp 请求的缩放。 TcpScaleRule

ScaleRuleAuth 的

名称 DESCRIPTION 价值
secretRef 的 要从中提取身份验证参数的机密的名称。 字符串
triggerParameter 使用机密的触发器参数 字符串

机密

名称 DESCRIPTION 价值
身份 使用 Azure Key Vault 进行身份验证的托管标识的资源 ID,或使用系统分配的标识。 字符串
keyVaultUrl 的 指向容器应用引用的机密的 Azure Key Vault URL。 字符串
姓名 机密名称。 字符串
价值 机密值。 字符串

约束:
敏感值。 以安全参数的形式传入。

SecretVolumeItem

名称 DESCRIPTION 价值
路径 项目机密的路径。 如果未提供路径,则路径默认为 secretRef 中列出的机密的名称。 字符串
secretRef 的 要从中拉取机密值的容器应用机密的名称。 字符串

服务

名称 DESCRIPTION 价值
类型 Dev ContainerApp 服务类型 string (必需)

ServiceBind 服务

名称 DESCRIPTION 价值
客户端类型 用于连接到服务的客户端的类型 字符串
customizedKeys 用于自定义注入值到应用的自定义键 ServiceBindCustomizedKeys 服务
姓名 服务绑定的名称 字符串
serviceId 服务 ID 目标服务的资源 ID 字符串

ServiceBindCustomizedKeys 服务

名称 DESCRIPTION 价值

TcpScaleRule

名称 DESCRIPTION 价值
身份验证 tcp 缩放规则的身份验证机密。 ScaleRuleAuth []
元数据 用于描述 tcp 缩放规则的元数据属性。 TcpScaleRuleMetadata

TcpScaleRuleMetadata

名称 DESCRIPTION 价值

模板

名称 DESCRIPTION 价值
器皿 容器应用的容器定义列表。 容器[]
initContainers 在应用容器之前运行的专用容器列表。 InitContainer[]
revisionSuffix 追加到修订名称的用户友好后缀 字符串
规模 缩放容器应用的属性。 比例
serviceBinds 服务 绑定到应用的容器应用服务列表 ServiceBind[]
terminationGracePeriodSeconds 容器应用实例需要正常终止的可选持续时间(以秒为单位)。 值必须是非负整数。 值零表示通过终止信号立即停止(没有关闭机会)。 如果此值为 nil,则会改用默认宽限期。 请将此值设置为大于你的进程的预期清理时间。 默认值为 30 秒。 整数 (int)
容器应用的卷定义列表。 []

TrackedResourceTags

名称 DESCRIPTION 价值

TrafficWeight (流量权重)

名称 DESCRIPTION 价值
标签 将流量标签与修订相关联 字符串
latestRevision 版本 指示流量权重属于最新的稳定修订 布尔
修订名称 修订的名称 字符串
重量 分配给修订的流量权重 整数 (int)

UserAssignedIdentities

名称 DESCRIPTION 价值

UserAssignedIdentity

名称 DESCRIPTION 价值

音量

名称 DESCRIPTION 价值
mountOptions 装载 AzureFile 时使用的装载选项。 必须是逗号分隔的字符串。 字符串
姓名 卷名称。 字符串
机密 要添加到卷中的机密列表。 如果未提供机密,集合中的所有机密都将添加到卷中。 SecretVolumeItem[]
存储名称 存储资源的名称。 无需提供 EmptyDir 和 Secret。 字符串
存储类型 卷的存储类型。 如果未提供,请使用 EmptyDir。 “AzureFile”
“EmptyDir”
“Secret”

VolumeMount (体积挂载)

名称 DESCRIPTION 价值
mountPath 容器中应装载卷的路径。不得包含“:”。 字符串
subPath 应从中装载容器卷的卷中的路径。 默认为“”(卷的根目录)。 字符串
卷名称 这必须与卷的名称匹配。 字符串

用法示例

Azure 快速入门模板

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

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

部署到 Azure
使用 Azure 容器注册表中的基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。
使用定义的 HTTP 缩放规则创建容器应用

部署到 Azure
使用基于 HTTP 流量缩放的基本容器应用创建容器应用环境。
在容器应用环境中创建容器应用

部署到 Azure
使用基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。
使用容器应用创建 Dapr 微服务应用

部署到 Azure
使用容器应用创建 Dapr 微服务应用。
使用容器应用创建 Dapr pub-sub servicebus 应用

部署到 Azure
使用容器应用创建 Dapr pub-sub servicebus 应用。
使用容器应用环境创建两个容器应用

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

部署到 Azure
使用 VNET 创建外部容器应用环境。
使用 VNET 创建内部容器应用环境

部署到 Azure
使用 VNET 创建内部容器应用环境。

Terraform (AzAPI 提供程序)资源定义

可以使用目标作部署 containerApps 资源类型:

  • 资源组

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

资源格式

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.App/containerApps@2023-08-01-preview"
  name = "string"
  parent_id = "string"
  identity {
    type = "string"
    identity_ids = [
      "string"
    ]
  }
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    extendedLocation = {
      name = "string"
      type = "string"
    }
    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
          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 = int
              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 = int
              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"
    }
  }
}

属性值

Microsoft.App/containerApps

名称 DESCRIPTION 价值
extendedLocation 扩展位置的复杂类型。 扩展位置
身份 容器应用的托管标识可以与其他 Azure 服务交互,而无需在代码中维护任何机密或凭据。 ManagedServiceIdentity
位置 资源所在的地理位置 string (必需)
managedBy 管理此资源的资源的完全限定资源 ID。 指示此资源是否由另一个 Azure 资源管理。 如果存在,则完全模式部署不会删除资源(如果从模板中删除,因为它由另一个资源管理)。 字符串
姓名 资源名称 string (必需)
属性 ContainerApp 资源特定属性 ContainerApp属性
标签 资源标记 标记名称和值的字典。
类型 资源类型 “Microsoft.App/containerApps@2023-08-01-preview”

配置

名称 DESCRIPTION 价值
activeRevisionsMode ActiveRevisionsMode 控制如何处理容器应用的活动修订:
<列表><项>多:多个修订可以处于活动状态。</item><item>Single:一次只能有一个修订处于活动状态。 无法在此模式下使用修订权重。 如果未提供任何值,则为默认值。</item></list>
“Multiple”
“Single”
dapr(分布式应用程序运行时) 容器应用的 Dapr 配置。 Dapr
进入 入口配置。 入口
maxInactiveRevisions 可选。 容器应用可以拥有的最大非活动修订。 整数 (int)
登记处 容器应用使用的容器的专用容器注册表凭据的集合 RegistryCredentials[]
机密 容器应用使用的机密集合 机密[]
服务 容器应用作为开发容器应用服务 服务

集装箱

名称 DESCRIPTION 价值
参数 容器启动命令参数。 字符串[]
指令 容器启动命令。 字符串[]
环境 容器环境变量。 EnvironmentVar (环境变量
图像 容器映像标记。 字符串
姓名 自定义容器名称。 字符串
探针 容器的探测列表。 ContainerAppProbe[]
资源 容器资源要求。 容器资源
volumeMounts 容器卷装载。 体积挂载[]

ContainerAppProbe 的

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

ContainerAppProbeHttpGet

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

ContainerAppProbeHttpGetHttpHeadersItem

名称 DESCRIPTION 价值
姓名 标头字段名称 string (必需)
价值 标头字段值 string (必需)

容器应用探针 TcpSocket

名称 DESCRIPTION 价值
主机 可选:要连接到的主机名,默认为 Pod IP。 字符串
港口 要在容器上访问的端口的编号或名称。 数字必须介于 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 int (必需)

ContainerApp属性

名称 DESCRIPTION 价值
配置 非版本控制容器应用配置属性。 配置
环境 ID 环境的资源 ID。 字符串
managedEnvironmentId 已弃用。 容器应用环境的资源 ID。 字符串
模板 容器应用版本控制的应用程序定义。 模板
workloadProfileName (工作负载配置文件名称) 用于固定容器应用执行的工作负荷配置文件名称。 字符串

容器资源

名称 DESCRIPTION 价值
中央处理器 核心中所需的 CPU,例如 0.5 整数 (int)
记忆 所需的内存,例如“250Mb” 字符串

CorsPolicy 公司

名称 DESCRIPTION 价值
allowCredentials 指定资源是否允许凭据 布尔
allowedHeaders 的 指定 access-control-allow-headers 标头的内容 字符串[]
allowedMethods 指定 access-control-allow-methods 标头的内容 字符串[]
allowedOrigins 的 指定 access-control-allow-origins 标头的内容 string[] (必需)
exposeHeaders 指定 access-control-expose-headers 标头的内容 字符串[]
最大年龄 指定 access-control-max-age 标头的内容 整数 (int)

自定义域

名称 DESCRIPTION 价值
bindingType 自定义域绑定类型。 “Disabled”
'SniEnabled'
证书 ID 要绑定到此主机名的证书的资源 ID。 必须存在于托管环境中。 字符串
姓名 主机名。 string (必需)

CustomScaleRule

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

CustomScaleRuleMetadata

名称 DESCRIPTION 价值

Dapr

名称 DESCRIPTION 价值
应用程序ID Dapr 应用程序标识符 字符串
appPort 告知 Dapr 应用程序正在侦听的端口 整数 (int)
appProtocol 协议 告知 Dapr 应用程序使用的协议。 有效选项为 http 和 grpc。 默认值为 http “grpc”
“http”
enableApiLogging 为 Dapr sidecar 启用 API 日志记录 布尔
启用 指示 Dapr 侧车是否已启用的布尔值 布尔
httpMax请求大小 增加请求正文 http 和 grpc 服务器参数的最大大小(以 MB 为单位)以处理大文件的上传。 默认值为 4 MB。 整数 (int)
httpReadBufferSize 发送多 KB 标头时要处理的 http 标头读取缓冲区的最大大小(以 KB 为单位)。 默认值为 65KB。 整数 (int)
logLevel 设置 Dapr sidecar 的日志级别。 允许的值是调试、信息、警告、错误。 默认值为信息。 “debug”
“error”
“info”
“warn”

EnvironmentVar

名称 DESCRIPTION 价值
姓名 环境变量名称。 字符串
secretRef 的 要从中拉取环境变量值的容器应用机密的名称。 字符串
价值 非机密环境变量值。 字符串

扩展位置

名称 DESCRIPTION 价值
姓名 扩展位置的名称。 字符串
类型 扩展位置的类型。 “CustomLocation”

HttpScaleRule

名称 DESCRIPTION 价值
身份验证 自定义缩放规则的身份验证机密。 ScaleRuleAuth []
元数据 描述 http 缩放规则的元数据属性。 HttpScaleRuleMetadata

HttpScaleRuleMetadata

名称 DESCRIPTION 价值

流入量

名称 DESCRIPTION 价值
additionalPortMappings 用于在容器应用上公开其他端口的设置 IngressPortMapping[]
allowInsecure(允许不安全) 指示是否允许与 HTTP 连接的布尔值。 如果设置为 false HTTP 连接,则会自动重定向到 HTTPS 连接 布尔
clientCertificateMode 用于 mTLS 身份验证的客户端证书模式。 Ignore 表示服务器在转发时丢弃客户端证书。 Accept 表示服务器转发客户端证书,但不需要客户端证书。 Require 表示服务器需要客户端证书。 “accept”
“ignore”
“require”
cors政策 容器应用的 CORS 策略 CorsPolicy 公司
自定义域 容器应用的主机名的自定义域绑定。 CustomDomain[]
exposedPort 端口 容器中公开的端口,用于来自入口的 TCP 流量 整数 (int)
外部 指示应用是否公开外部 http 终结点的布尔值 布尔
ipSecurity限制 限制传入 IP 地址的规则。 IpSecurityRestrictionRule[]
sticky会话 单一修订模式的粘滞会话 IngressStickySessions
目标端口 用于来自入口的流量的容器中的目标端口 整数 (int)
交通 应用修订的流量权重 TrafficWeight []
运输 入口传输协议 “auto”
“http”
“http2”
“tcp”

IngressPortMapping (入口端口映射)

名称 DESCRIPTION 价值
exposedPort 端口 指定目标端口的公开端口。 如果未指定,则默认为目标端口 整数 (int)
外部 指定应用端口是否可在环境外部访问 bool (必需)
目标端口 指定端口用户的容器侦听 int (必需)

IngressStickySessions

名称 DESCRIPTION 价值
亲和力 粘滞会话相关性 没有
“粘性”

InitContainer (初始容器)

名称 DESCRIPTION 价值
参数 容器启动命令参数。 字符串[]
指令 容器启动命令。 字符串[]
环境 容器环境变量。 EnvironmentVar (环境变量
图像 容器映像标记。 字符串
姓名 自定义容器名称。 字符串
资源 容器资源要求。 容器资源
volumeMounts 容器卷装载。 体积挂载[]

IpSecurityRestrictionRule

名称 DESCRIPTION 价值
行動 允许或拒绝规则确定传入 IP。 注意:规则只能包含 ALL 允许或全部拒绝 “允许”
“拒绝”(必需)
描述 描述要发送到容器应用的 IP 限制规则。 这是一个可选字段。 字符串
ipAddressRange 与传入 IP 地址匹配的 CIDR 表示法 string (必需)
姓名 IP 限制规则的名称。 string (必需)

ManagedServiceIdentity

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

QueueScaleRule

名称 DESCRIPTION 价值
身份验证 队列缩放规则的身份验证机密。 ScaleRuleAuth []
queueLength 队列长度。 整数 (int)
队列名称 队列名称。 字符串

注册表凭据

名称 DESCRIPTION 价值
身份 用于通过 Azure 容器注册表进行身份验证的托管标识。 对于用户分配的标识,请使用完整的用户分配标识资源 ID。 对于系统分配的标识,请使用“system” 字符串
密码SecretRef 包含注册表登录密码的机密的名称 字符串
服务器 容器注册表服务器 字符串
用户名 容器注册表用户名 字符串

规模

名称 DESCRIPTION 价值
最大副本数 可选。 容器副本的最大数目。 如果未设置,则默认为 10。 整数 (int)
最小副本数 可选。 容器副本的最小数量。 整数 (int)
规则 缩放规则。 ScaleRule[]

ScaleRule

名称 DESCRIPTION 价值
azureQueue 基于 Azure 队列的缩放。 QueueScaleRule
自定义 自定义缩放规则。 CustomScaleRule
http 基于 HTTP 请求的缩放。 HttpScaleRule
姓名 缩放规则名称 字符串
TCP 基于 Tcp 请求的缩放。 TcpScaleRule

ScaleRuleAuth 的

名称 DESCRIPTION 价值
secretRef 的 要从中提取身份验证参数的机密的名称。 字符串
triggerParameter 使用机密的触发器参数 字符串

机密

名称 DESCRIPTION 价值
身份 使用 Azure Key Vault 进行身份验证的托管标识的资源 ID,或使用系统分配的标识。 字符串
keyVaultUrl 的 指向容器应用引用的机密的 Azure Key Vault URL。 字符串
姓名 机密名称。 字符串
价值 机密值。 字符串

约束:
敏感值。 以安全参数的形式传入。

SecretVolumeItem

名称 DESCRIPTION 价值
路径 项目机密的路径。 如果未提供路径,则路径默认为 secretRef 中列出的机密的名称。 字符串
secretRef 的 要从中拉取机密值的容器应用机密的名称。 字符串

服务

名称 DESCRIPTION 价值
类型 Dev ContainerApp 服务类型 string (必需)

ServiceBind 服务

名称 DESCRIPTION 价值
客户端类型 用于连接到服务的客户端的类型 字符串
customizedKeys 用于自定义注入值到应用的自定义键 ServiceBindCustomizedKeys 服务
姓名 服务绑定的名称 字符串
serviceId 服务 ID 目标服务的资源 ID 字符串

ServiceBindCustomizedKeys 服务

名称 DESCRIPTION 价值

TcpScaleRule

名称 DESCRIPTION 价值
身份验证 tcp 缩放规则的身份验证机密。 ScaleRuleAuth []
元数据 用于描述 tcp 缩放规则的元数据属性。 TcpScaleRuleMetadata

TcpScaleRuleMetadata

名称 DESCRIPTION 价值

模板

名称 DESCRIPTION 价值
器皿 容器应用的容器定义列表。 容器[]
initContainers 在应用容器之前运行的专用容器列表。 InitContainer[]
revisionSuffix 追加到修订名称的用户友好后缀 字符串
规模 缩放容器应用的属性。 比例
serviceBinds 服务 绑定到应用的容器应用服务列表 ServiceBind[]
terminationGracePeriodSeconds 容器应用实例需要正常终止的可选持续时间(以秒为单位)。 值必须是非负整数。 值零表示通过终止信号立即停止(没有关闭机会)。 如果此值为 nil,则会改用默认宽限期。 请将此值设置为大于你的进程的预期清理时间。 默认值为 30 秒。 整数 (int)
容器应用的卷定义列表。 []

TrackedResourceTags

名称 DESCRIPTION 价值

TrafficWeight (流量权重)

名称 DESCRIPTION 价值
标签 将流量标签与修订相关联 字符串
latestRevision 版本 指示流量权重属于最新的稳定修订 布尔
修订名称 修订的名称 字符串
重量 分配给修订的流量权重 整数 (int)

UserAssignedIdentities

名称 DESCRIPTION 价值

UserAssignedIdentity

名称 DESCRIPTION 价值

音量

名称 DESCRIPTION 价值
mountOptions 装载 AzureFile 时使用的装载选项。 必须是逗号分隔的字符串。 字符串
姓名 卷名称。 字符串
机密 要添加到卷中的机密列表。 如果未提供机密,集合中的所有机密都将添加到卷中。 SecretVolumeItem[]
存储名称 存储资源的名称。 无需提供 EmptyDir 和 Secret。 字符串
存储类型 卷的存储类型。 如果未提供,请使用 EmptyDir。 “AzureFile”
“EmptyDir”
“Secret”

VolumeMount (体积挂载)

名称 DESCRIPTION 价值
mountPath 容器中应装载卷的路径。不得包含“:”。 字符串
subPath 应从中装载容器卷的卷中的路径。 默认为“”(卷的根目录)。 字符串
卷名称 这必须与卷的名称匹配。 字符串

用法示例

Azure 验证模块

以下 Azure 验证模块 可用于部署此资源类型。

模块 DESCRIPTION
容器应用 容器应用的 AVM 资源模块