你当前正在访问 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' = {
name: 'string'
location: 'string'
tags: {
tagName1: 'tagValue1'
tagName2: 'tagValue2'
}
extendedLocation: {
name: 'string'
type: 'CustomLocation'
}
identity: {
type: 'string'
userAssignedIdentities: {
{customized property}: {}
}
}
managedBy: 'string'
properties: {
configuration: {
activeRevisionsMode: 'string'
dapr: {
appId: 'string'
appPort: int
appProtocol: 'string'
enableApiLogging: bool
enabled: bool
httpMaxRequestSize: int
httpReadBufferSize: int
logLevel: 'string'
}
ingress: {
additionalPortMappings: [
{
exposedPort: int
external: bool
targetPort: int
}
]
allowInsecure: bool
clientCertificateMode: 'string'
corsPolicy: {
allowCredentials: bool
allowedHeaders: [
'string'
]
allowedMethods: [
'string'
]
allowedOrigins: [
'string'
]
exposeHeaders: [
'string'
]
maxAge: int
}
customDomains: [
{
bindingType: 'string'
certificateId: 'string'
name: 'string'
}
]
exposedPort: int
external: bool
ipSecurityRestrictions: [
{
action: 'string'
description: 'string'
ipAddressRange: 'string'
name: 'string'
}
]
stickySessions: {
affinity: 'string'
}
targetPort: int
traffic: [
{
label: 'string'
latestRevision: bool
revisionName: 'string'
weight: int
}
]
transport: 'string'
}
maxInactiveRevisions: int
registries: [
{
identity: 'string'
passwordSecretRef: 'string'
server: 'string'
username: 'string'
}
]
secrets: [
{
identity: 'string'
keyVaultUrl: 'string'
name: 'string'
value: 'string'
}
]
service: {
type: 'string'
}
}
environmentId: 'string'
managedEnvironmentId: 'string'
template: {
containers: [
{
args: [
'string'
]
command: [
'string'
]
env: [
{
name: 'string'
secretRef: 'string'
value: 'string'
}
]
image: 'string'
name: 'string'
probes: [
{
failureThreshold: int
httpGet: {
host: 'string'
httpHeaders: [
{
name: 'string'
value: 'string'
}
]
path: 'string'
port: int
scheme: 'string'
}
initialDelaySeconds: int
periodSeconds: int
successThreshold: int
tcpSocket: {
host: 'string'
port: int
}
terminationGracePeriodSeconds: int
timeoutSeconds: int
type: 'string'
}
]
resources: {
cpu: json('decimal-as-string')
memory: 'string'
}
volumeMounts: [
{
mountPath: 'string'
subPath: 'string'
volumeName: 'string'
}
]
}
]
initContainers: [
{
args: [
'string'
]
command: [
'string'
]
env: [
{
name: 'string'
secretRef: 'string'
value: 'string'
}
]
image: 'string'
name: 'string'
resources: {
cpu: json('decimal-as-string')
memory: 'string'
}
volumeMounts: [
{
mountPath: 'string'
subPath: 'string'
volumeName: 'string'
}
]
}
]
revisionSuffix: 'string'
scale: {
maxReplicas: int
minReplicas: int
rules: [
{
azureQueue: {
auth: [
{
secretRef: 'string'
triggerParameter: 'string'
}
]
queueLength: int
queueName: 'string'
}
custom: {
auth: [
{
secretRef: 'string'
triggerParameter: 'string'
}
]
metadata: {
{customized property}: 'string'
}
type: 'string'
}
http: {
auth: [
{
secretRef: 'string'
triggerParameter: 'string'
}
]
metadata: {
{customized property}: 'string'
}
}
name: 'string'
tcp: {
auth: [
{
secretRef: 'string'
triggerParameter: 'string'
}
]
metadata: {
{customized property}: 'string'
}
}
}
]
}
serviceBinds: [
{
clientType: 'string'
customizedKeys: {
{customized property}: 'string'
}
name: 'string'
serviceId: 'string'
}
]
terminationGracePeriodSeconds: int
volumes: [
{
mountOptions: 'string'
name: 'string'
secrets: [
{
path: 'string'
secretRef: 'string'
}
]
storageName: 'string'
storageType: 'string'
}
]
}
workloadProfileName: 'string'
}
}
属性值
containerApps
名称 | 说明 | 值 |
---|---|---|
name | 资源名称 | 字符串 (必需) 字符限制:2-32 有效字符: 小写字母、数字和连字符。 以字母开头且以字母数字结尾。 |
location | 资源所在的地理位置 | 字符串 (必需) |
标记 | 资源标记。 | 标记名称和值的字典。 请参阅 模板中的标记 |
extendedLocation | 扩展位置的复杂类型。 | ExtendedLocation |
标识 | 容器应用的托管标识,用于与其他 Azure 服务交互,而无需在代码中维护任何机密或凭据。 | ManagedServiceIdentity |
managedBy | 管理此资源的资源的完全限定的资源 ID。 指示此资源是否由另一个 Azure 资源管理。 如果存在这种情况,如果从模板中删除资源,则完整模式部署不会删除该资源,因为它由另一个资源管理。 | string |
properties | ContainerApp 资源特定的属性 | ContainerAppProperties |
ExtendedLocation
名称 | 说明 | 值 |
---|---|---|
name | 扩展位置的名称。 | 字符串 |
type | 扩展位置的类型。 | “CustomLocation” |
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
名称 | 说明 | 值 |
---|---|---|
配置 | 非版本控制容器应用配置属性。 | 配置 |
environmentId | 环境的资源 ID。 | 字符串 |
managedEnvironmentId | 已弃用。 容器应用环境的资源 ID。 | 字符串 |
template | 容器应用版本控制的应用程序定义。 | 模板 |
workloadProfileName | 要固定的工作负载配置文件名称,以便执行容器应用。 | 字符串 |
配置
名称 | 说明 | 值 |
---|---|---|
activeRevisionsMode | ActiveRevisionsMode 控制如何处理容器应用的活动修订: {list}{item}多个:多个修订可以处于活动状态。{/item}{item}单个:一次只能有一个修订处于活动状态。 修订权重不能在此模式下使用。 如果未提供任何值,则这是默认值。{/item}{/list} |
“Multiple” “Single” |
dapr | 容器应用的 Dapr 配置。 | Dapr |
入口 | 入口配置。 | 流入量 |
maxInactiveRevisions | 可选。 容器应用可以具有的最大非活动修订数。 | int |
registries | 容器应用使用的容器的专用容器注册表凭据集合 | RegistryCredentials[] |
机密 | 容器应用使用的机密集合 | 机密[] |
服务 | 容器应用成为开发容器App 服务 | 服务 |
Dapr
名称 | 说明 | 值 |
---|---|---|
appId | Dapr 应用程序标识符 | 字符串 |
appPort | 告知 Dapr 应用程序正在侦听哪个端口 | int |
appProtocol | 告知 Dapr 你的应用程序所使用的协议。 有效选项为 http 和 grpc。 默认值为 http | “grpc” 'http' |
enableApiLogging | 为 Dapr 挎斗启用 API 日志记录 | bool |
enabled | 指示是否启用 Dapr 侧车的布尔值 | bool |
httpMaxRequestSize | 增加请求正文 http 和 grpc 服务器参数的最大大小(以 MB 为单位)以处理大文件的上传。 默认值为 4 MB。 | int |
httpReadBufferSize | 发送多 KB 标头时要处理的 http 标头读取缓冲区的最大 Dapr 大小(以 KB 为单位)。 默认值为 65KB。 | int |
logLevel | 设置 Dapr 挎斗的日志级别。 允许的值为 debug、info、warn、error。 默认值为 info。 | “debug” “error” 'info' 'warn' |
流入量
名称 | 说明 | 值 |
---|---|---|
additionalPortMappings | 用于在容器应用上公开其他端口的设置 | IngressPortMapping[] |
allowInsecure | 指示是否允许 HTTP 连接到 的布尔值。 如果设置为 false,则 HTTP 连接会自动重定向到 HTTPS 连接 | bool |
clientCertificateMode | 用于 mTLS 身份验证的客户端证书模式。 Ignore 表示服务器在转发时丢弃客户端证书。 接受指示服务器转发客户端证书,但不需要客户端证书。 Require 表示服务器需要客户端证书。 | 'accept' 'ignore' 'require' |
corsPolicy | 容器应用的 CORS 策略 | CorsPolicy |
customDomains | 容器应用的主机名的自定义域绑定。 | CustomDomain[] |
exposedPort | 为来自入口的 TCP 流量在容器中公开的端口 | int |
external | 指示应用是否公开外部 http 终结点的布尔值 | bool |
ipSecurityRestrictions | 限制传入 IP 地址的规则。 | IpSecurityRestrictionRule[] |
stickySessions | 单修订模式的粘滞会话 | IngressStickySessions |
targetPort | 容器中来自入口的流量的目标端口 | int |
traffic | 应用修订的流量权重 | TrafficWeight[] |
运输 | 入口传输协议 | 'auto' 'http' “http2” 'tcp' |
IngressPortMapping
名称 | 说明 | 值 |
---|---|---|
exposedPort | 指定目标端口的公开端口。 如果未指定,则默认为目标端口 | int |
external | 指定是否可在环境外部访问应用端口 | 需要 bool () |
targetPort | 指定端口用户的容器侦听 | int (必需) |
CorsPolicy
名称 | 说明 | 值 |
---|---|---|
allowCredentials | 指定资源是否允许凭据 | bool |
allowedHeaders | 指定 access-control-allow-headers 标头的内容 | string[] |
allowedMethods | 指定 access-control-allow-methods 标头的内容 | string[] |
allowedOrigins | 指定 access-control-allow-origins 标头的内容 | string[] (必需) |
exposeHeaders | 指定 access-control-expose-headers 标头的内容 | string[] |
maxAge | 指定 access-control-max-age 标头的内容 | int |
CustomDomain
名称 | 说明 | 值 |
---|---|---|
bindingType | Custom Domain绑定类型。 | 'Disabled' 'SniEnabled' |
certificateId | 要绑定到此主机名的证书的资源 ID。 必须存在于托管环境中。 | 字符串 |
name | 主机名 | 字符串 (必需) |
IpSecurityRestrictionRule
名称 | 说明 | 值 |
---|---|---|
action | 允许或拒绝规则来确定传入 IP。 注意:规则只能包含“所有允许”或“全部拒绝” | “允许” 需要“拒绝” () |
description | 描述要发送到容器应用的 IP 限制规则。 这是一个可选字段。 | 字符串 |
ipAddressRange | 用于匹配传入 IP 地址的 CIDR 表示法 | 字符串 (必需) |
name | IP 限制规则的名称。 | 字符串 (必需) |
IngressStickySessions
名称 | 说明 | 值 |
---|---|---|
affinity | 粘滞会话相关性 | 'none' “粘性” |
TrafficWeight
名称 | 说明 | 值 |
---|---|---|
label | 将流量标签与修订相关联 | 字符串 |
latestRevision | 指示流量权重属于最新的稳定修订 | bool |
revisionName | 修订的名称 | 字符串 |
重量 | 分配给修订的流量权重 | int |
RegistryCredentials
名称 | 说明 | 值 |
---|---|---|
标识 | 用于对Azure 容器注册表进行身份验证的托管标识。 对于用户分配的标识,请使用完整的用户分配标识资源 ID。 对于系统分配的标识,请使用“system” | 字符串 |
passwordSecretRef | 包含注册表登录密码的机密的名称 | 字符串 |
server | 容器注册表服务器 | 字符串 |
username | 容器注册表用户名 | 字符串 |
机密
名称 | 说明 | 值 |
---|---|---|
标识 | 使用 Azure 密钥保管库进行身份验证的托管标识的资源 ID,或者使用系统分配的标识。 | 字符串 |
keyVaultUrl | Azure 密钥保管库指向容器应用引用的机密的 URL。 | 字符串 |
name | 机密名称。 | string |
value | 机密值。 | 字符串 约束: 敏感值。 作为安全参数传入。 |
服务
名称 | 说明 | Value |
---|---|---|
type | Dev ContainerApp 服务类型 | 字符串 (必需) |
模板
名称 | 说明 | Value |
---|---|---|
containers | 容器应用的容器定义列表。 | Container[] |
initContainers | 在应用容器之前运行的专用容器列表。 | InitContainer[] |
revisionSuffix | 追加到修订名称的用户友好后缀 | 字符串 |
scale | 容器应用的缩放属性。 | 缩放 |
serviceBinds | 绑定到应用的容器应用服务列表 | ServiceBind[] |
terminationGracePeriodSeconds | 容器应用实例需要正常终止的可选持续时间(秒)。 值必须是非负整数。 值零表示通过终止信号立即停止, (没有机会关闭) 。 如果此值为 nil,则将改用默认宽限期。 请将此值设置为大于你的进程的预期清理时间。 默认值为 30 秒。 | int |
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 | 应装载卷的容器中的路径。不得包含“:”。 | 字符串 |
subPath | 应从中装载容器卷的卷中的路径。 默认为“” (卷的根) 。 | 字符串 |
volumeName | 这必须与卷的名称匹配。 | 字符串 |
InitContainer
名称 | 说明 | 值 |
---|---|---|
args | 容器启动命令参数。 | string[] |
命令 | 容器启动命令。 | string[] |
env | 容器环境变量。 | EnvironmentVar[] |
image | 容器映像标记。 | 字符串 |
name | 自定义容器名称。 | 字符串 |
resources | 容器资源要求。 | ContainerResources |
volumeMounts | 容器卷装载。 | VolumeMount[] |
缩放
名称 | 说明 | 值 |
---|---|---|
maxReplicas | 可选。 容器副本的最大数目。 如果未设置,则默认为 10。 | int |
minReplicas | 可选。 最小容器副本数。 | int |
规则 | 缩放规则。 | ScaleRule[] |
ScaleRule
名称 | 说明 | 值 |
---|---|---|
azureQueue | 基于 Azure 队列的缩放。 | QueueScaleRule |
自定义 | 自定义缩放规则。 | CustomScaleRule |
http | 基于 HTTP 请求的缩放。 | HttpScaleRule |
name | 缩放规则名称 | 字符串 |
tcp | 基于 Tcp 请求的缩放。 | TcpScaleRule |
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} | 字符串 |
TcpScaleRule
名称 | 说明 | 值 |
---|---|---|
auth | tcp 缩放规则的身份验证机密。 | ScaleRuleAuth[] |
metadata | 描述 tcp 缩放规则的元数据属性。 | TcpScaleRuleMetadata |
TcpScaleRuleMetadata
名称 | 说明 | 值 |
---|---|---|
{customized property} | 字符串 |
ServiceBind
名称 | 说明 | 值 |
---|---|---|
clientType | 用于连接到服务的客户端的类型 | 字符串 |
customizedKeys | 用于自定义应用注入值的自定义密钥 | ServiceBindCustomizedKeys |
name | 服务绑定的名称 | 字符串 |
serviceId | 目标服务的资源 ID | 字符串 |
ServiceBindCustomizedKeys
名称 | 说明 | 值 |
---|---|---|
{customized property} | 字符串 |
数据量(Volume)
名称 | 说明 | 值 |
---|---|---|
mountOptions | 装载 AzureFile 时使用的装载选项。 必须是逗号分隔的字符串。 | 字符串 |
name | 卷名称。 | 字符串 |
机密 | 要添加到卷中的机密列表。 如果未提供机密,集合中的所有机密都将添加到卷中。 | SecretVolumeItem[] |
storageName | 存储资源的名称。 无需提供 EmptyDir 和 Secret。 | 字符串 |
storageType | 卷的存储类型。 如果未提供,请使用 EmptyDir。 | “AzureFile” “EmptyDir” “机密” |
SecretVolumeItem
名称 | 说明 | Value |
---|---|---|
path | 将机密投影到的路径。 如果未提供路径,则 path 默认为 secretRef 中列出的机密名称。 | 字符串 |
secretRef | 要从中提取机密值的容器应用机密的名称。 | 字符串 |
快速入门模板
以下快速入门模板部署此资源类型。
模板 | 说明 |
---|---|
使用注册表创建容器应用和环境 |
使用Azure 容器注册表的基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。 |
使用容器应用环境创建两个容器应用 |
使用基本容器应用创建两个容器应用环境。 它还部署 Log Analytics 工作区来存储日志。 |
在容器应用环境中创建容器应用 |
使用基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。 |
使用定义的 HTTP 缩放规则创建容器应用 |
使用基于 HTTP 流量缩放的基本容器应用创建容器应用环境。 |
使用 VNET 创建外部容器应用环境 |
使用 VNET 创建外部容器应用环境。 |
使用 VNET 创建内部容器应用环境 |
使用 VNET 创建内部容器应用环境。 |
ARM 模板资源定义
containerApps 资源类型可以使用面向以下对象的操作进行部署:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中更改的属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.App/containerApps 资源,请将以下 JSON 添加到模板。
{
"type": "Microsoft.App/containerApps",
"apiVersion": "2023-08-01-preview",
"name": "string",
"location": "string",
"tags": {
"tagName1": "tagValue1",
"tagName2": "tagValue2"
},
"extendedLocation": {
"name": "string",
"type": "CustomLocation"
},
"identity": {
"type": "string",
"userAssignedIdentities": {
"{customized property}": {}
}
},
"managedBy": "string",
"properties": {
"configuration": {
"activeRevisionsMode": "string",
"dapr": {
"appId": "string",
"appPort": "int",
"appProtocol": "string",
"enableApiLogging": "bool",
"enabled": "bool",
"httpMaxRequestSize": "int",
"httpReadBufferSize": "int",
"logLevel": "string"
},
"ingress": {
"additionalPortMappings": [
{
"exposedPort": "int",
"external": "bool",
"targetPort": "int"
}
],
"allowInsecure": "bool",
"clientCertificateMode": "string",
"corsPolicy": {
"allowCredentials": "bool",
"allowedHeaders": [ "string" ],
"allowedMethods": [ "string" ],
"allowedOrigins": [ "string" ],
"exposeHeaders": [ "string" ],
"maxAge": "int"
},
"customDomains": [
{
"bindingType": "string",
"certificateId": "string",
"name": "string"
}
],
"exposedPort": "int",
"external": "bool",
"ipSecurityRestrictions": [
{
"action": "string",
"description": "string",
"ipAddressRange": "string",
"name": "string"
}
],
"stickySessions": {
"affinity": "string"
},
"targetPort": "int",
"traffic": [
{
"label": "string",
"latestRevision": "bool",
"revisionName": "string",
"weight": "int"
}
],
"transport": "string"
},
"maxInactiveRevisions": "int",
"registries": [
{
"identity": "string",
"passwordSecretRef": "string",
"server": "string",
"username": "string"
}
],
"secrets": [
{
"identity": "string",
"keyVaultUrl": "string",
"name": "string",
"value": "string"
}
],
"service": {
"type": "string"
}
},
"environmentId": "string",
"managedEnvironmentId": "string",
"template": {
"containers": [
{
"args": [ "string" ],
"command": [ "string" ],
"env": [
{
"name": "string",
"secretRef": "string",
"value": "string"
}
],
"image": "string",
"name": "string",
"probes": [
{
"failureThreshold": "int",
"httpGet": {
"host": "string",
"httpHeaders": [
{
"name": "string",
"value": "string"
}
],
"path": "string",
"port": "int",
"scheme": "string"
},
"initialDelaySeconds": "int",
"periodSeconds": "int",
"successThreshold": "int",
"tcpSocket": {
"host": "string",
"port": "int"
},
"terminationGracePeriodSeconds": "int",
"timeoutSeconds": "int",
"type": "string"
}
],
"resources": {
"cpu": "[json('decimal-as-string')]",
"memory": "string"
},
"volumeMounts": [
{
"mountPath": "string",
"subPath": "string",
"volumeName": "string"
}
]
}
],
"initContainers": [
{
"args": [ "string" ],
"command": [ "string" ],
"env": [
{
"name": "string",
"secretRef": "string",
"value": "string"
}
],
"image": "string",
"name": "string",
"resources": {
"cpu": "[json('decimal-as-string')]",
"memory": "string"
},
"volumeMounts": [
{
"mountPath": "string",
"subPath": "string",
"volumeName": "string"
}
]
}
],
"revisionSuffix": "string",
"scale": {
"maxReplicas": "int",
"minReplicas": "int",
"rules": [
{
"azureQueue": {
"auth": [
{
"secretRef": "string",
"triggerParameter": "string"
}
],
"queueLength": "int",
"queueName": "string"
},
"custom": {
"auth": [
{
"secretRef": "string",
"triggerParameter": "string"
}
],
"metadata": {
"{customized property}": "string"
},
"type": "string"
},
"http": {
"auth": [
{
"secretRef": "string",
"triggerParameter": "string"
}
],
"metadata": {
"{customized property}": "string"
}
},
"name": "string",
"tcp": {
"auth": [
{
"secretRef": "string",
"triggerParameter": "string"
}
],
"metadata": {
"{customized property}": "string"
}
}
}
]
},
"serviceBinds": [
{
"clientType": "string",
"customizedKeys": {
"{customized property}": "string"
},
"name": "string",
"serviceId": "string"
}
],
"terminationGracePeriodSeconds": "int",
"volumes": [
{
"mountOptions": "string",
"name": "string",
"secrets": [
{
"path": "string",
"secretRef": "string"
}
],
"storageName": "string",
"storageType": "string"
}
]
},
"workloadProfileName": "string"
}
}
属性值
containerApps
名称 | 说明 | Value |
---|---|---|
type | 资源类型 | “Microsoft.App/containerApps” |
apiVersion | 资源 API 版本 | “2023-08-01-preview” |
name | 资源名称 | 字符串 (必需) 字符限制:2-32 有效字符: 小写字母、数字和连字符。 以字母开头且以字母数字结尾。 |
location | 资源所在的地理位置 | 字符串 (必需) |
标记 | 资源标记。 | 标记名称和值的字典。 请参阅 模板中的标记 |
extendedLocation | 扩展位置的复杂类型。 | ExtendedLocation |
标识 | 容器应用的托管标识,用于与其他 Azure 服务交互,而无需在代码中维护任何机密或凭据。 | ManagedServiceIdentity |
managedBy | 管理此资源的资源的完全限定的资源 ID。 指示此资源是否由另一个 Azure 资源管理。 如果存在这种情况,如果从模板中删除资源,则完整模式部署不会删除该资源,因为它由另一个资源管理。 | string |
properties | ContainerApp 资源特定的属性 | ContainerAppProperties |
ExtendedLocation
名称 | 说明 | 值 |
---|---|---|
name | 扩展位置的名称。 | 字符串 |
type | 扩展位置的类型。 | “CustomLocation” |
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
名称 | 说明 | 值 |
---|---|---|
配置 | 非版本控制容器应用配置属性。 | 配置 |
environmentId | 环境的资源 ID。 | 字符串 |
managedEnvironmentId | 已弃用。 容器应用环境的资源 ID。 | 字符串 |
template | 容器应用版本控制的应用程序定义。 | 模板 |
workloadProfileName | 要固定的工作负载配置文件名称,以便执行容器应用。 | 字符串 |
配置
名称 | 说明 | 值 |
---|---|---|
activeRevisionsMode | ActiveRevisionsMode 控制如何处理容器应用的活动修订: {list}{item}多个:多个修订可以处于活动状态。{/item}{item}单个:一次只能有一个修订处于活动状态。 修订权重不能在此模式下使用。 如果未提供任何值,则这是默认值。{/item}{/list} |
“Multiple” “Single” |
dapr | 容器应用的 Dapr 配置。 | Dapr |
入口 | 入口配置。 | 流入量 |
maxInactiveRevisions | 可选。 容器应用可以具有的最大非活动修订数。 | int |
registries | 容器应用使用的容器的专用容器注册表凭据集合 | RegistryCredentials[] |
机密 | 容器应用使用的机密集合 | 机密[] |
服务 | 容器应用作为开发容器App 服务 | 服务 |
Dapr
名称 | 说明 | 值 |
---|---|---|
appId | Dapr 应用程序标识符 | 字符串 |
appPort | 告知 Dapr 应用程序正在侦听哪个端口 | int |
appProtocol | 告知 Dapr 你的应用程序所使用的协议。 有效选项为 http 和 grpc。 默认值为 http | “grpc” “http” |
enableApiLogging | 为 Dapr 挎斗启用 API 日志记录 | bool |
enabled | 指示是否启用 Dapr 侧车的布尔值 | bool |
httpMaxRequestSize | 增加请求正文 http 和 grpc 服务器参数的最大大小(以 MB 为单位)以处理大文件的上传。 默认值为 4 MB。 | int |
httpReadBufferSize | 发送多 KB 标头时要处理的 http 标头读取缓冲区的最大 Dapr 大小(以 KB 为单位)。 默认值为 65KB。 | int |
logLevel | 设置 Dapr 挎斗的日志级别。 允许的值为 debug、info、warn、error。 默认值为信息。 | “debug” “error” “info” “warn” |
流入量
名称 | 说明 | 值 |
---|---|---|
additionalPortMappings | 用于在容器应用上公开其他端口的设置 | IngressPortMapping[] |
allowInsecure | Bool 指示是否允许与 的 HTTP 连接。 如果设置为 false,则 HTTP 连接会自动重定向到 HTTPS 连接 | bool |
clientCertificateMode | 用于 mTLS 身份验证的客户端证书模式。 Ignore 表示服务器在转发时丢弃客户端证书。 接受指示服务器转发客户端证书,但不需要客户端证书。 Require 表示服务器需要客户端证书。 | “accept” “ignore” “require” |
corsPolicy | 容器应用的 CORS 策略 | CorsPolicy |
customDomains | 容器应用的主机名的自定义域绑定。 | CustomDomain[] |
exposedPort | 容器中为来自入口的 TCP 流量公开的端口 | int |
external | 指示应用是否公开外部 http 终结点的布尔值 | bool |
ipSecurityRestrictions | 限制传入 IP 地址的规则。 | IpSecurityRestrictionRule[] |
stickySessions | 单修订模式的粘滞会话 | IngressStickySessions |
targetPort | 容器中来自入口的流量的目标端口 | int |
traffic | 应用修订的流量权重 | TrafficWeight[] |
运输 | 入口传输协议 | 'auto' “http” “http2” “tcp” |
IngressPortMapping
名称 | 说明 | 值 |
---|---|---|
exposedPort | 指定目标端口的公开端口。 如果未指定,则默认为目标端口 | int |
external | 指定应用端口是否可在环境外部访问 | bool (必需) |
targetPort | 指定端口用户的容器侦听 | int (必需) |
CorsPolicy
名称 | 说明 | 值 |
---|---|---|
allowCredentials | 指定资源是否允许凭据 | bool |
allowedHeaders | 指定 access-control-allow-headers 标头的内容 | string[] |
allowedMethods | 指定 access-control-allow-methods 标头的内容 | string[] |
allowedOrigins | 指定 access-control-allow-origins 标头的内容 | string[] (必需的) |
exposeHeaders | 指定 access-control-expose-headers 标头的内容 | string[] |
maxAge | 指定 access-control-max-age 标头的内容 | int |
CustomDomain
名称 | 说明 | 值 |
---|---|---|
bindingType | Custom Domain绑定类型。 | “Disabled” “SniEnabled” |
certificateId | 要绑定到此主机名的证书的资源 ID。 必须存在于托管环境中。 | 字符串 |
name | 主机名 | 字符串 (必需) |
IpSecurityRestrictionRule
名称 | 说明 | 值 |
---|---|---|
action | 允许或拒绝规则来确定传入 IP。 注意:规则只能包含 ALL Allow 或 ALL Deny | “允许” “拒绝” (必需) |
description | 描述要发送到 container-app 的 IP 限制规则。 这是一个可选字段。 | 字符串 |
ipAddressRange | 用于匹配传入 IP 地址的 CIDR 表示法 | 字符串 (必需) |
name | IP 限制规则的名称。 | 字符串 (必需) |
IngressStickySessions
名称 | 说明 | 值 |
---|---|---|
affinity | 粘滞会话相关性 | 'none' “粘性” |
TrafficWeight
名称 | 说明 | 值 |
---|---|---|
label | 将流量标签与修订相关联 | 字符串 |
latestRevision | 指示流量权重属于最新的稳定修订 | bool |
revisionName | 修订的名称 | 字符串 |
重量 | 分配给修订的流量权重 | int |
RegistryCredentials
名称 | 说明 | 值 |
---|---|---|
标识 | 用于对Azure 容器注册表进行身份验证的托管标识。 对于用户分配的标识,请使用完整的用户分配标识资源 ID。 对于系统分配的标识,请使用“system” | 字符串 |
passwordSecretRef | 包含注册表登录密码的机密的名称 | 字符串 |
server | 容器注册表服务器 | 字符串 |
username | 容器注册表用户名 | 字符串 |
机密
名称 | 说明 | 值 |
---|---|---|
标识 | 使用 Azure 密钥保管库进行身份验证的托管标识的资源 ID,或者使用系统分配的标识。 | 字符串 |
keyVaultUrl | Azure 密钥保管库指向容器应用引用的机密的 URL。 | 字符串 |
name | 机密名称。 | string |
value | 机密值。 | 字符串 约束: 敏感值。 作为安全参数传入。 |
服务
名称 | 说明 | Value |
---|---|---|
type | Dev ContainerApp 服务类型 | 字符串 (必需) |
模板
名称 | 说明 | Value |
---|---|---|
containers | 容器应用的容器定义列表。 | Container[] |
initContainers | 在应用容器之前运行的专用容器列表。 | InitContainer[] |
revisionSuffix | 追加到修订名称的用户友好后缀 | 字符串 |
scale | 容器应用的缩放属性。 | 缩放 |
serviceBinds | 绑定到应用的容器应用服务列表 | ServiceBind[] |
terminationGracePeriodSeconds | 容器应用实例需要正常终止的可选持续时间(以秒为单位)。 值必须是非负整数。 值 0 指示通过终止信号立即停止, (没有机会关闭) 。 如果此值为 nil,则将改用默认宽限期。 请将此值设置为大于你的进程的预期清理时间。 默认值为 30 秒。 | int |
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 | 应装载卷的容器中的路径。不得包含“:”。 | 字符串 |
subPath | 应从中装载容器卷的卷中的路径。 默认为“” (卷的根) 。 | 字符串 |
volumeName | 这必须与卷的名称匹配。 | 字符串 |
InitContainer
名称 | 说明 | 值 |
---|---|---|
args | 容器启动命令参数。 | string[] |
命令 | 容器启动命令。 | string[] |
env | 容器环境变量。 | EnvironmentVar[] |
image | 容器映像标记。 | 字符串 |
name | 自定义容器名称。 | 字符串 |
resources | 容器资源要求。 | ContainerResources |
volumeMounts | 容器卷装载。 | VolumeMount[] |
缩放
名称 | 说明 | 值 |
---|---|---|
maxReplicas | 可选。 容器副本的最大数目。 如果未设置,则默认为 10。 | int |
minReplicas | 可选。 最小容器副本数。 | int |
规则 | 缩放规则。 | ScaleRule[] |
ScaleRule
名称 | 说明 | 值 |
---|---|---|
azureQueue | 基于 Azure 队列的缩放。 | QueueScaleRule |
自定义 | 自定义缩放规则。 | CustomScaleRule |
http | 基于 HTTP 请求的缩放。 | HttpScaleRule |
name | 缩放规则名称 | 字符串 |
tcp | 基于 Tcp 请求的缩放。 | TcpScaleRule |
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} | 字符串 |
TcpScaleRule
名称 | 说明 | 值 |
---|---|---|
auth | tcp 缩放规则的身份验证机密。 | ScaleRuleAuth[] |
metadata | 描述 tcp 缩放规则的元数据属性。 | TcpScaleRuleMetadata |
TcpScaleRuleMetadata
名称 | 说明 | 值 |
---|---|---|
{customized property} | 字符串 |
ServiceBind
名称 | 说明 | 值 |
---|---|---|
clientType | 要用于连接到服务的客户端的类型 | 字符串 |
customizedKeys | 用于自定义应用注入值的自定义密钥 | ServiceBindCustomizedKeys |
name | 服务绑定的名称 | 字符串 |
serviceId | 目标服务的资源 ID | 字符串 |
ServiceBindCustomizedKeys
名称 | 说明 | 值 |
---|---|---|
{customized property} | 字符串 |
数据量(Volume)
名称 | 说明 | 值 |
---|---|---|
mountOptions | 装载 AzureFile 时使用的装载选项。 必须是逗号分隔的字符串。 | 字符串 |
name | 卷名。 | 字符串 |
机密 | 要添加到卷中的机密列表。 如果未提供机密,则集合中的所有机密都将添加到卷中。 | SecretVolumeItem[] |
storageName | 存储资源的名称。 无需提供 EmptyDir 和 Secret。 | 字符串 |
storageType | 卷的存储类型。 如果未提供,请使用 EmptyDir。 | “AzureFile” “EmptyDir” “机密” |
SecretVolumeItem
名称 | 说明 | Value |
---|---|---|
path | 将机密投影到的路径。 如果未提供路径,则 path 默认为 secretRef 中列出的机密名称。 | 字符串 |
secretRef | 要从中提取机密值的容器应用机密的名称。 | 字符串 |
快速入门模板
以下快速入门模板部署此资源类型。
模板 | 说明 |
---|---|
使用注册表创建容器应用和环境 |
使用Azure 容器注册表的基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。 |
使用容器应用环境创建两个容器应用 |
使用基本容器应用创建两个容器应用环境。 它还部署 Log Analytics 工作区来存储日志。 |
在容器应用环境中创建容器应用 |
使用基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。 |
使用定义的 HTTP 缩放规则创建容器应用 |
使用基于 HTTP 流量缩放的基本容器应用创建容器应用环境。 |
使用 VNET 创建外部容器应用环境 |
使用 VNET 创建外部容器应用环境。 |
使用 VNET 创建内部容器应用环境 |
使用 VNET 创建内部容器应用环境。 |
Terraform (AzAPI 提供程序) 资源定义
containerApps 资源类型可以使用面向以下对象的操作进行部署:
- 资源组
有关每个 API 版本中更改的属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.App/containerApps 资源,请将以下 Terraform 添加到模板。
resource "azapi_resource" "symbolicname" {
type = "Microsoft.App/containerApps@2023-08-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"
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 = "decimal-as-string"
memory = "string"
}
volumeMounts = [
{
mountPath = "string"
subPath = "string"
volumeName = "string"
}
]
}
]
initContainers = [
{
args = [
"string"
]
command = [
"string"
]
env = [
{
name = "string"
secretRef = "string"
value = "string"
}
]
image = "string"
name = "string"
resources = {
cpu = "decimal-as-string"
memory = "string"
}
volumeMounts = [
{
mountPath = "string"
subPath = "string"
volumeName = "string"
}
]
}
]
revisionSuffix = "string"
scale = {
maxReplicas = int
minReplicas = int
rules = [
{
azureQueue = {
auth = [
{
secretRef = "string"
triggerParameter = "string"
}
]
queueLength = int
queueName = "string"
}
custom = {
auth = [
{
secretRef = "string"
triggerParameter = "string"
}
]
metadata = {
{customized property} = "string"
}
type = "string"
}
http = {
auth = [
{
secretRef = "string"
triggerParameter = "string"
}
]
metadata = {
{customized property} = "string"
}
}
name = "string"
tcp = {
auth = [
{
secretRef = "string"
triggerParameter = "string"
}
]
metadata = {
{customized property} = "string"
}
}
}
]
}
serviceBinds = [
{
clientType = "string"
customizedKeys = {
{customized property} = "string"
}
name = "string"
serviceId = "string"
}
]
terminationGracePeriodSeconds = int
volumes = [
{
mountOptions = "string"
name = "string"
secrets = [
{
path = "string"
secretRef = "string"
}
]
storageName = "string"
storageType = "string"
}
]
}
workloadProfileName = "string"
}
extendedLocation = {
name = "string"
type = "CustomLocation"
}
managedBy = "string"
})
}
属性值
containerApps
名称 | 说明 | Value |
---|---|---|
type | 资源类型 | “Microsoft.App/containerApps@2023-08-01-preview” |
name | 资源名称 | 字符串 (必需) 字符限制:2-32 有效字符: 小写字母、数字和连字符。 以字母开头且以字母数字结尾。 |
location | 资源所在的地理位置 | 字符串 (必需) |
parent_id | 若要部署到资源组,请使用该资源组的 ID。 | 字符串 (必需) |
标记 | 资源标记。 | 标记名称和值的字典。 |
extendedLocation | 扩展位置的复杂类型。 | ExtendedLocation |
标识 | 容器应用的托管标识,无需在代码中维护任何机密或凭据即可与其他 Azure 服务交互。 | ManagedServiceIdentity |
managedBy | 管理此资源的资源的完全限定资源 ID。 指示此资源是否由另一个 Azure 资源管理。 如果存在这种情况,如果从模板中删除资源,则完整模式部署不会删除该资源,因为它由其他资源管理。 | string |
properties | ContainerApp 资源特定的属性 | ContainerAppProperties |
ExtendedLocation
名称 | 说明 | 值 |
---|---|---|
name | 扩展位置的名称。 | 字符串 |
type | 扩展位置的类型。 | “CustomLocation” |
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
名称 | 说明 | 值 |
---|---|---|
配置 | 非版本控制容器应用配置属性。 | 配置 |
environmentId | 环境的资源 ID。 | 字符串 |
managedEnvironmentId | 已弃用。 容器应用环境的资源 ID。 | 字符串 |
template | 容器应用版本控制的应用程序定义。 | 模板 |
workloadProfileName | 要固定的工作负载配置文件名称,以便执行容器应用。 | 字符串 |
配置
名称 | 说明 | 值 |
---|---|---|
activeRevisionsMode | ActiveRevisionsMode 控制如何处理容器应用的活动修订: {list}{item}多个:多个修订可以处于活动状态。{/item}{item}单个:一次只能有一个修订处于活动状态。 修订权重不能在此模式下使用。 如果未提供任何值,则这是默认值。{/item}{/list} |
“Multiple” “Single” |
dapr | 容器应用的 Dapr 配置。 | Dapr |
入口 | 入口配置。 | 流入量 |
maxInactiveRevisions | 可选。 容器应用可以具有的最大非活动修订数。 | int |
registries | 容器应用使用的容器的专用容器注册表凭据集合 | RegistryCredentials[] |
机密 | 容器应用使用的机密集合 | 机密[] |
服务 | 容器应用成为开发容器App 服务 | 服务 |
Dapr
名称 | 说明 | 值 |
---|---|---|
appId | Dapr 应用程序标识符 | 字符串 |
appPort | 告知 Dapr 应用程序正在侦听哪个端口 | int |
appProtocol | 告知 Dapr 你的应用程序所使用的协议。 有效选项为 http 和 grpc。 默认值为 http | “grpc” “http” |
enableApiLogging | 为 Dapr 挎斗启用 API 日志记录 | bool |
enabled | 指示是否启用 Dapr 侧车的布尔值 | bool |
httpMaxRequestSize | 增加请求正文 http 和 grpc 服务器参数的最大大小(以 MB 为单位)以处理大文件的上传。 默认值为 4 MB。 | int |
httpReadBufferSize | 发送多 KB 标头时要处理的 http 标头读取缓冲区的最大 Dapr 大小(以 KB 为单位)。 默认值为 65KB。 | int |
logLevel | 设置 Dapr 挎斗的日志级别。 允许的值为 debug、info、warn、error。 默认值为信息。 | “debug” “error” “info” “warn” |
流入量
名称 | 说明 | 值 |
---|---|---|
additionalPortMappings | 用于在容器应用上公开其他端口的设置 | IngressPortMapping[] |
allowInsecure | Bool 指示是否允许与 的 HTTP 连接。 如果设置为 false,则 HTTP 连接会自动重定向到 HTTPS 连接 | bool |
clientCertificateMode | 用于 mTLS 身份验证的客户端证书模式。 Ignore 表示服务器在转发时丢弃客户端证书。 接受指示服务器转发客户端证书,但不需要客户端证书。 Require 表示服务器需要客户端证书。 | “accept” “ignore” “require” |
corsPolicy | 容器应用的 CORS 策略 | CorsPolicy |
customDomains | 容器应用的主机名的自定义域绑定。 | CustomDomain[] |
exposedPort | 容器中为来自入口的 TCP 流量公开的端口 | int |
external | 指示应用是否公开外部 http 终结点的布尔值 | bool |
ipSecurityRestrictions | 限制传入 IP 地址的规则。 | IpSecurityRestrictionRule[] |
stickySessions | 单修订模式的粘滞会话 | IngressStickySessions |
targetPort | 容器中来自入口的流量的目标端口 | int |
traffic | 应用修订的流量权重 | TrafficWeight[] |
运输 | 入口传输协议 | “auto” “http” “http2” “tcp” |
IngressPortMapping
名称 | 说明 | 值 |
---|---|---|
exposedPort | 指定目标端口的公开端口。 如果未指定,则默认为目标端口 | int |
external | 指定应用端口是否可在环境外部访问 | bool (必需) |
targetPort | 指定端口用户的容器侦听 | int (必需) |
CorsPolicy
名称 | 说明 | 值 |
---|---|---|
allowCredentials | 指定资源是否允许凭据 | bool |
allowedHeaders | 指定 access-control-allow-headers 标头的内容 | string[] |
allowedMethods | 指定 access-control-allow-methods 标头的内容 | string[] |
allowedOrigins | 指定 access-control-allow-origins 标头的内容 | string[] (必需的) |
exposeHeaders | 指定 access-control-expose-headers 标头的内容 | string[] |
maxAge | 指定 access-control-max-age 标头的内容 | int |
CustomDomain
名称 | 说明 | 值 |
---|---|---|
bindingType | Custom Domain绑定类型。 | “Disabled” “SniEnabled” |
certificateId | 要绑定到此主机名的证书的资源 ID。 必须存在于托管环境中。 | 字符串 |
name | 主机名 | 字符串 (必需) |
IpSecurityRestrictionRule
名称 | 说明 | 值 |
---|---|---|
action | 允许或拒绝规则来确定传入 IP。 注意:规则只能包含 ALL Allow 或 ALL Deny | “允许” 需要“拒绝” () |
description | 描述要发送到 container-app 的 IP 限制规则。 这是一个可选字段。 | 字符串 |
ipAddressRange | 用于匹配传入 IP 地址的 CIDR 表示法 | 字符串 (必需) |
name | IP 限制规则的名称。 | 字符串 (必需) |
IngressStickySessions
名称 | 说明 | 值 |
---|---|---|
affinity | 粘滞会话相关性 | “none” “粘滞” |
TrafficWeight
名称 | 说明 | 值 |
---|---|---|
label | 将流量标签与修订相关联 | 字符串 |
latestRevision | 指示流量权重属于最新的稳定修订 | bool |
revisionName | 修订的名称 | 字符串 |
重量 | 分配给修订的流量权重 | int |
RegistryCredentials
名称 | 说明 | 值 |
---|---|---|
标识 | 用于对Azure 容器注册表进行身份验证的托管标识。 对于用户分配的标识,请使用完整的用户分配标识资源 ID。 对于系统分配的标识,请使用“system” | 字符串 |
passwordSecretRef | 包含注册表登录密码的机密的名称 | 字符串 |
server | 容器注册表服务器 | 字符串 |
username | 容器注册表用户名 | 字符串 |
机密
名称 | 说明 | 值 |
---|---|---|
标识 | 使用 Azure 密钥保管库进行身份验证的托管标识的资源 ID,或者使用系统分配的标识。 | 字符串 |
keyVaultUrl | Azure 密钥保管库指向容器应用引用的机密的 URL。 | 字符串 |
name | 机密名称。 | string |
value | 机密值。 | 字符串 约束: 敏感值。 作为安全参数传入。 |
服务
名称 | 说明 | Value |
---|---|---|
type | Dev ContainerApp 服务类型 | 字符串 (必需) |
模板
名称 | 说明 | Value |
---|---|---|
containers | 容器应用的容器定义列表。 | Container[] |
initContainers | 在应用容器之前运行的专用容器列表。 | InitContainer[] |
revisionSuffix | 追加到修订名称的用户友好后缀 | 字符串 |
scale | 容器应用的缩放属性。 | 缩放 |
serviceBinds | 绑定到应用的容器应用服务列表 | ServiceBind[] |
terminationGracePeriodSeconds | 容器应用实例需要正常终止的可选持续时间(秒)。 值必须是非负整数。 值零表示通过终止信号立即停止, (没有机会关闭) 。 如果此值为 nil,则将改用默认宽限期。 请将此值设置为大于你的进程的预期清理时间。 默认值为 30 秒。 | int |
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 规范提供的值。值必须是非负整数。 值零表示通过终止信号立即停止, (没有机会关闭) 。 这是一个 alpha 字段,需要启用 ProbeTerminationGracePeriod 功能门。 最大值为 3600 秒 (1 小时) | int |
timeoutSeconds | 探测超时的秒数。默认为 1 秒。 最小值为 1。 最大值为 240。 | int |
类型 | 探测的类型。 | “活泼” “就绪性” “启动” |
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 | 应装载卷的容器中的路径。不得包含“:”。 | 字符串 |
subPath | 应从中装载容器卷的卷中的路径。 默认为“” (卷的根) 。 | 字符串 |
volumeName | 这必须与卷的名称匹配。 | 字符串 |
InitContainer
名称 | 说明 | 值 |
---|---|---|
args | 容器启动命令参数。 | string[] |
命令 | 容器启动命令。 | string[] |
env | 容器环境变量。 | EnvironmentVar[] |
image | 容器映像标记。 | 字符串 |
name | 自定义容器名称。 | 字符串 |
resources | 容器资源要求。 | ContainerResources |
volumeMounts | 容器卷装载。 | VolumeMount[] |
缩放
名称 | 说明 | 值 |
---|---|---|
maxReplicas | 可选。 容器副本的最大数目。 如果未设置,则默认为 10。 | int |
minReplicas | 可选。 最小容器副本数。 | int |
规则 | 缩放规则。 | ScaleRule[] |
ScaleRule
名称 | 说明 | 值 |
---|---|---|
azureQueue | 基于 Azure 队列的缩放。 | QueueScaleRule |
自定义 | 自定义缩放规则。 | CustomScaleRule |
http | 基于 HTTP 请求的缩放。 | HttpScaleRule |
name | 缩放规则名称 | 字符串 |
tcp | 基于 Tcp 请求的缩放。 | TcpScaleRule |
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} | 字符串 |
TcpScaleRule
名称 | 说明 | 值 |
---|---|---|
auth | tcp 缩放规则的身份验证机密。 | ScaleRuleAuth[] |
metadata | 描述 tcp 缩放规则的元数据属性。 | TcpScaleRuleMetadata |
TcpScaleRuleMetadata
名称 | 说明 | 值 |
---|---|---|
{customized property} | 字符串 |
ServiceBind
名称 | 说明 | 值 |
---|---|---|
clientType | 要用于连接到服务的客户端的类型 | 字符串 |
customizedKeys | 用于自定义应用注入值的自定义密钥 | ServiceBindCustomizedKeys |
name | 服务绑定的名称 | 字符串 |
serviceId | 目标服务的资源 ID | 字符串 |
ServiceBindCustomizedKeys
名称 | 说明 | 值 |
---|---|---|
{customized property} | 字符串 |
数据量(Volume)
名称 | 说明 | 值 |
---|---|---|
mountOptions | 装载 AzureFile 时使用的装载选项。 必须是逗号分隔的字符串。 | 字符串 |
name | 卷名。 | 字符串 |
机密 | 要添加到卷中的机密列表。 如果未提供机密,则集合中的所有机密都将添加到卷中。 | SecretVolumeItem[] |
storageName | 存储资源的名称。 无需提供 EmptyDir 和 Secret。 | 字符串 |
storageType | 卷的存储类型。 如果未提供,请使用 EmptyDir。 | “AzureFile” “EmptyDir” “机密” |
SecretVolumeItem
名称 | 说明 | Value |
---|---|---|
path | 项目机密的路径。 如果未提供路径,则 path 默认为 secretRef 中列出的机密名称。 | 字符串 |
secretRef | 要从中提取机密值的容器应用机密的名称。 | 字符串 |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈