你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Microsoft.App containerApps
Bicep 资源定义
可以使用目标操作部署 containerApps 资源类型:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.App/containerApps 资源,请将以下 Bicep 添加到模板。
resource symbolicname 'Microsoft.App/containerApps@2024-03-01' = {
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: [
{
name: 'string'
serviceId: 'string'
}
]
terminationGracePeriodSeconds: int
volumes: [
{
mountOptions: 'string'
name: 'string'
secrets: [
{
path: 'string'
secretRef: 'string'
}
]
storageName: 'string'
storageType: 'string'
}
]
}
workloadProfileName: 'string'
}
}
属性值
containerApps
名字 | 描述 | 价值 |
---|---|---|
名字 | 资源名称 | string (必需) 字符限制:2-32 有效字符: 小写字母、数字和连字符。 以字母开头,以字母数字结尾。 |
位置 | 资源所在的地理位置 | string (必需) |
标签 | 资源标记。 | 标记名称和值的字典。 请参阅模板 中的 |
extendedLocation | 扩展位置的复杂类型。 | ExtendedLocation |
身份 | 容器应用的托管标识可以与其他 Azure 服务交互,而无需在代码中维护任何机密或凭据。 | ManagedServiceIdentity |
managedBy | 管理此资源的资源的完全限定资源 ID。 指示此资源是否由另一个 Azure 资源管理。 如果存在,则完全模式部署不会删除资源(如果从模板中删除,因为它由另一个资源管理)。 | 字符串 |
性能 | ContainerApp 资源特定属性 | ContainerAppProperties |
ExtendedLocation
名字 | 描述 | 价值 |
---|---|---|
名字 | 扩展位置的名称。 | 字符串 |
类型 | 扩展位置的类型。 | “CustomLocation” |
ManagedServiceIdentity
名字 | 描述 | 价值 |
---|---|---|
类型 | 托管服务标识的类型(其中允许 SystemAssigned 和 UserAssigned 类型)。 | “None” “SystemAssigned” “SystemAssigned,UserAssigned” “UserAssigned”(必需) |
userAssignedIdentities | 与资源关联的用户分配标识集。 userAssignedIdentities 字典密钥将为 ARM 资源 ID,格式为“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 字典值可以是请求中的空对象({})。 | UserAssignedIdentities |
UserAssignedIdentities
名字 | 描述 | 价值 |
---|---|---|
{自定义属性} | UserAssignedIdentity |
UserAssignedIdentity
此对象不包含在部署期间设置的任何属性。 所有属性都是 ReadOnly。
ContainerAppProperties
名字 | 描述 | 价值 |
---|---|---|
配置 | 非版本控制容器应用配置属性。 | 配置 |
environmentId | 环境的资源 ID。 | 字符串 |
managedEnvironmentId | 荒废的。 容器应用环境的资源 ID。 | 字符串 |
模板 | 容器应用版本控制的应用程序定义。 | 模板 |
workloadProfileName | 用于固定容器应用执行的工作负荷配置文件名称。 | 字符串 |
配置
名字 | 描述 | 价值 |
---|---|---|
activeRevisionsMode | ActiveRevisionsMode 控制如何处理容器应用的活动修订: {list}{item}多个:多个修订可以处于活动状态。{/item}{item}单一:一次只能有一个修订处于活动状态。 无法在此模式下使用修订权重。 如果未提供任何值,则为默认值。{/item}{/list} |
“Multiple” “Single” |
dapr | 容器应用的 Dapr 配置。 | Dapr |
入口 | 入口配置。 | 入口 |
maxInactiveRevisions | 自选。 容器应用可以拥有的最大非活动修订。 | int |
登记处 | 容器应用使用的容器的专用容器注册表凭据的集合 | RegistryCredentials[] |
秘密 | 容器应用使用的机密集合 | 机密[] |
服务 | 容器应用作为开发容器应用服务 | 服务 |
Dapr
名字 | 描述 | 价值 |
---|---|---|
appId | Dapr 应用程序标识符 | 字符串 |
appPort | 告知 Dapr 应用程序正在侦听的端口 | int |
appProtocol | 告知 Dapr 应用程序使用的协议。 有效选项为 http 和 grpc。 默认值为 http | “grpc” “ http ” |
enableApiLogging | 为 Dapr sidecar 启用 API 日志记录 | bool |
启用 | 指示 Dapr 侧车是否已启用的布尔值 | bool |
httpMaxRequestSize | 增加请求正文 http 和 grpc 服务器参数的最大大小(以 MB 为单位)以处理大文件的上传。 默认值为 4 MB。 | int |
httpReadBufferSize | 发送多 KB 标头时要处理的 http 标头读取缓冲区的最大大小(以 KB 为单位)。 默认值为 65KB。 | int |
logLevel | 设置 Dapr sidecar 的日志级别。 允许的值是调试、信息、警告、错误。 默认值为信息。 | “debug” “error” “info” “warn” |
入口
名字 | 描述 | 价值 |
---|---|---|
additionalPortMappings | 用于在容器应用上公开其他端口的设置 | IngressPortMapping[] |
allowInsecure | 指示是否允许与 HTTP 连接的布尔值。 如果设置为 false HTTP 连接,则会自动重定向到 HTTPS 连接 | bool |
clientCertificateMode | 用于 mTLS 身份验证的客户端证书模式。 忽略指示服务器在转发时删除客户端证书。 Accept 表示服务器转发客户端证书,但不需要客户端证书。 要求指示服务器需要客户端证书。 | “accept” “ignore” “require” |
corsPolicy | 容器应用的 CORS 策略 | CorsPolicy |
customDomains | 容器应用的主机名的自定义域绑定。 | CustomDomain[] |
exposedPort | 容器中公开的端口,用于来自入口的 TCP 流量 | int |
外部 | 指示应用是否公开外部 http 终结点的布尔值 | bool |
ipSecurityRestrictions | 限制传入 IP 地址的规则。 | IpSecurityRestrictionRule[] |
stickySessions | 单一修订模式的粘滞会话 | IngressStickySessions |
targetPort | 用于来自入口的流量的容器中的目标端口 | int |
交通 | 应用修订的流量权重 | TrafficWeight[] |
运输 | 入口传输协议 | “auto” “ http ”“ http2 ”“tcp” |
IngressPortMapping
名字 | 描述 | 价值 |
---|---|---|
exposedPort | 指定目标端口的公开端口。 如果未指定,则默认为目标端口 | int |
外部 | 指定应用端口是否可在环境外部访问 | 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 | 自定义域绑定类型。 | “Disabled” 'SniEnabled' |
certificateId | 要绑定到此主机名的证书的资源 ID。 必须存在于托管环境中。 | 字符串 |
名字 | 主机名。 | string (必需) |
IpSecurityRestrictionRule
名字 | 描述 | 价值 |
---|---|---|
行动 | 允许或拒绝规则确定传入 IP。 注意:规则只能包含 ALL 允许或全部拒绝 | “允许” “拒绝”(必需) |
描述 | 描述要发送到容器应用的 IP 限制规则。 这是一个可选字段。 | 字符串 |
ipAddressRange | 与传入 IP 地址匹配的 CIDR 表示法 | string (必需) |
名字 | IP 限制规则的名称。 | string (必需) |
IngressStickySessions
名字 | 描述 | 价值 |
---|---|---|
亲和力 | 粘滞会话相关性 | “none” “粘性” |
TrafficWeight
名字 | 描述 | 价值 |
---|---|---|
标签 | 将流量标签与修订相关联 | 字符串 |
latestRevision | 指示流量权重属于最新的稳定修订 | bool |
revisionName | 修订的名称 | 字符串 |
重量 | 分配给修订的流量权重 | int |
RegistryCredentials
名字 | 描述 | 价值 |
---|---|---|
身份 | 用于通过 Azure 容器注册表进行身份验证的托管标识。 对于用户分配的标识,请使用完整的用户分配标识资源 ID。 对于系统分配的标识,请使用“system” | 字符串 |
passwordSecretRef | 包含注册表登录密码的机密的名称 | 字符串 |
服务器 | 容器注册表服务器 | 字符串 |
username | 容器注册表用户名 | 字符串 |
秘密
名字 | 描述 | 价值 |
---|---|---|
身份 | 使用 Azure Key Vault 进行身份验证的托管标识的资源 ID,或使用系统分配的标识。 | 字符串 |
keyVaultUrl | 指向容器应用引用的机密的 Azure Key Vault URL。 | 字符串 |
名字 | 机密名称。 | 字符串 |
价值 | 机密值。 | 字符串 约束: 敏感值。 以安全参数的形式传入。 |
服务
名字 | 描述 | 价值 |
---|---|---|
类型 | Dev ContainerApp 服务类型 | string (必需) |
模板
名字 | 描述 | 价值 |
---|---|---|
器皿 | 容器应用的容器定义列表。 | 容器[] |
initContainers | 在应用容器之前运行的专用容器列表。 | InitContainer[] |
revisionSuffix | 追加到修订名称的用户友好后缀 | 字符串 |
规模 | 缩放容器应用的属性。 | 缩放 |
serviceBinds | 绑定到应用的容器应用服务列表 | ServiceBind[] |
terminationGracePeriodSeconds | 容器应用实例需要正常终止的可选持续时间(以秒为单位)。 值必须是非负整数。 值零表示通过终止信号立即停止(没有关闭机会)。 如果此值为 nil,则会改用默认宽限期。 设置此值的时间超过进程的预期清理时间。 默认值为 30 秒。 | int |
卷 | 容器应用的卷定义列表。 | 卷[] |
容器
名字 | 描述 | 价值 |
---|---|---|
args | 容器启动命令参数。 | string[] |
命令 | 容器启动命令。 | string[] |
env | 容器环境变量。 | EnvironmentVar[] |
图像 | 容器映像标记。 | 字符串 |
名字 | 自定义容器名称。 | 字符串 |
探针 | 容器的探测列表。 | ContainerAppProbe[] |
资源 | 容器资源要求。 | ContainerResources |
volumeMounts | 容器卷装载。 | VolumeMount[] |
EnvironmentVar
名字 | 描述 | 价值 |
---|---|---|
名字 | 环境变量名称。 | 字符串 |
secretRef | 要从中拉取环境变量值的容器应用机密的名称。 | 字符串 |
价值 | 非机密环境变量值。 | 字符串 |
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 |
类型 | 探测的类型。 | “Liveness” “就绪情况” “Startup” |
ContainerAppProbeHttpGet
名字 | 描述 | 价值 |
---|---|---|
主机 | 要连接的主机名,默认为 Pod IP。 你可能想要改为在 httpHeaders 中设置“主机”。 | 字符串 |
httpHeaders | 在请求中设置的自定义标头。 HTTP 允许重复标头。 | ContainerAppProbeHttpGetHttpHeadersItem[] |
路径 | 在 HTTP 服务器上访问的路径。 | 字符串 |
港口 | 要在容器上访问的端口的名称或编号。 数字必须介于 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 | int (必需) |
方案 | 用于连接到主机的方案。 默认为 HTTP。 | “HTTP” “HTTPS” |
ContainerAppProbeHttpGetHttpHeadersItem
名字 | 描述 | 价值 |
---|---|---|
名字 | 标头字段名称 | string (必需) |
价值 | 标头字段值 | string (必需) |
ContainerAppProbeTcpSocket
名字 | 描述 | 价值 |
---|---|---|
主机 | 可选:要连接到的主机名,默认为 Pod IP。 | 字符串 |
港口 | 要在容器上访问的端口的编号或名称。 数字必须介于 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 | int (必需) |
ContainerResources
名字 | 描述 | 价值 |
---|---|---|
中央处理器 | 核心中所需的 CPU,例如 0.5 若要指定十进制值,请使用 json() 函数。 | int 或 json decimal |
记忆 | 所需的内存,例如“250Mb” | 字符串 |
VolumeMount
名字 | 描述 | 价值 |
---|---|---|
mountPath | 容器中应装载卷的路径。不得包含“:”。 | 字符串 |
subPath | 应从中装载容器卷的卷中的路径。 默认为“”(卷的根目录)。 | 字符串 |
volumeName | 这必须与卷的名称匹配。 | 字符串 |
InitContainer
名字 | 描述 | 价值 |
---|---|---|
args | 容器启动命令参数。 | string[] |
命令 | 容器启动命令。 | string[] |
env | 容器环境变量。 | EnvironmentVar[] |
图像 | 容器映像标记。 | 字符串 |
名字 | 自定义容器名称。 | 字符串 |
资源 | 容器资源要求。 | ContainerResources |
volumeMounts | 容器卷装载。 | VolumeMount[] |
规模
名字 | 描述 | 价值 |
---|---|---|
maxReplicas | 自选。 容器副本的最大数目。 如果未设置,则默认为 10。 | int |
minReplicas | 自选。 容器副本的最小数量。 | int |
规则 | 缩放规则。 | ScaleRule[] |
ScaleRule
名字 | 描述 | 价值 |
---|---|---|
azureQueue | 基于 Azure 队列的缩放。 | QueueScaleRule |
习惯 | 自定义缩放规则。 | CustomScaleRule |
http | 基于 HTTP 请求的缩放。 | HttpScaleRule |
名字 | 缩放规则名称 | 字符串 |
tcp | 基于 Tcp 请求的缩放。 | TcpScaleRule |
QueueScaleRule
名字 | 描述 | 价值 |
---|---|---|
认证 | 队列缩放规则的身份验证机密。 | ScaleRuleAuth[] |
queueLength | 队列长度。 | int |
queueName | 队列名称。 | 字符串 |
ScaleRuleAuth
名字 | 描述 | 价值 |
---|---|---|
secretRef | 要从中提取身份验证参数的机密的名称。 | 字符串 |
triggerParameter | 使用机密的触发器参数 | 字符串 |
CustomScaleRule
名字 | 描述 | 价值 |
---|---|---|
认证 | 自定义缩放规则的身份验证机密。 | ScaleRuleAuth[] |
元数据 | 用于描述自定义缩放规则的元数据属性。 | CustomScaleRuleMetadata |
类型 | 自定义缩放规则的类型 例如:azure-servicebus、redis 等。 |
字符串 |
CustomScaleRuleMetadata
名字 | 描述 | 价值 |
---|---|---|
{自定义属性} | 字符串 |
HttpScaleRule
名字 | 描述 | 价值 |
---|---|---|
认证 | 自定义缩放规则的身份验证机密。 | ScaleRuleAuth[] |
元数据 | 描述 http 缩放规则的元数据属性。 | HttpScaleRuleMetadata |
HttpScaleRuleMetadata
名字 | 描述 | 价值 |
---|---|---|
{自定义属性} | 字符串 |
TcpScaleRule
名字 | 描述 | 价值 |
---|---|---|
认证 | tcp 缩放规则的身份验证机密。 | ScaleRuleAuth[] |
元数据 | 用于描述 tcp 缩放规则的元数据属性。 | TcpScaleRuleMetadata |
TcpScaleRuleMetadata
名字 | 描述 | 价值 |
---|---|---|
{自定义属性} | 字符串 |
ServiceBind
名字 | 描述 | 价值 |
---|---|---|
名字 | 服务绑定的名称 | 字符串 |
serviceId | 目标服务的资源 ID | 字符串 |
卷
名字 | 描述 | 价值 |
---|---|---|
mountOptions | 装载 AzureFile 时使用的装载选项。 必须是逗号分隔的字符串。 | 字符串 |
名字 | 卷名称。 | 字符串 |
秘密 | 要添加到卷中的机密列表。 如果未提供机密,集合中的所有机密都将添加到卷中。 | SecretVolumeItem[] |
storageName | 存储资源的名称。 无需提供 EmptyDir 和 Secret。 | 字符串 |
storageType | 卷的存储类型。 如果未提供,请使用 EmptyDir。 | “AzureFile” “EmptyDir” “Secret” |
SecretVolumeItem
名字 | 描述 | 价值 |
---|---|---|
路径 | 项目机密的路径。 如果未提供路径,则路径默认为 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": "2024-03-01",
"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": [
{
"name": "string",
"serviceId": "string"
}
],
"terminationGracePeriodSeconds": "int",
"volumes": [
{
"mountOptions": "string",
"name": "string",
"secrets": [
{
"path": "string",
"secretRef": "string"
}
],
"storageName": "string",
"storageType": "string"
}
]
},
"workloadProfileName": "string"
}
}
属性值
containerApps
名字 | 描述 | 价值 |
---|---|---|
类型 | 资源类型 | “Microsoft.App/containerApps” |
apiVersion | 资源 API 版本 | '2024-03-01' |
名字 | 资源名称 | string (必需) 字符限制:2-32 有效字符: 小写字母、数字和连字符。 以字母开头,以字母数字结尾。 |
位置 | 资源所在的地理位置 | string (必需) |
标签 | 资源标记。 | 标记名称和值的字典。 请参阅模板 中的 |
extendedLocation | 扩展位置的复杂类型。 | ExtendedLocation |
身份 | 容器应用的托管标识可以与其他 Azure 服务交互,而无需在代码中维护任何机密或凭据。 | ManagedServiceIdentity |
managedBy | 管理此资源的资源的完全限定资源 ID。 指示此资源是否由另一个 Azure 资源管理。 如果存在,则完全模式部署不会删除资源(如果从模板中删除,因为它由另一个资源管理)。 | 字符串 |
性能 | ContainerApp 资源特定属性 | ContainerAppProperties |
ExtendedLocation
名字 | 描述 | 价值 |
---|---|---|
名字 | 扩展位置的名称。 | 字符串 |
类型 | 扩展位置的类型。 | “CustomLocation” |
ManagedServiceIdentity
名字 | 描述 | 价值 |
---|---|---|
类型 | 托管服务标识的类型(其中允许 SystemAssigned 和 UserAssigned 类型)。 | “None” “SystemAssigned” “SystemAssigned,UserAssigned” “UserAssigned”(必需) |
userAssignedIdentities | 与资源关联的用户分配标识集。 userAssignedIdentities 字典密钥将为 ARM 资源 ID,格式为“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 字典值可以是请求中的空对象({})。 | UserAssignedIdentities |
UserAssignedIdentities
名字 | 描述 | 价值 |
---|---|---|
{自定义属性} | UserAssignedIdentity |
UserAssignedIdentity
此对象不包含在部署期间设置的任何属性。 所有属性都是 ReadOnly。
ContainerAppProperties
名字 | 描述 | 价值 |
---|---|---|
配置 | 非版本控制容器应用配置属性。 | 配置 |
environmentId | 环境的资源 ID。 | 字符串 |
managedEnvironmentId | 荒废的。 容器应用环境的资源 ID。 | 字符串 |
模板 | 容器应用版本控制的应用程序定义。 | 模板 |
workloadProfileName | 用于固定容器应用执行的工作负荷配置文件名称。 | 字符串 |
配置
名字 | 描述 | 价值 |
---|---|---|
activeRevisionsMode | ActiveRevisionsMode 控制如何处理容器应用的活动修订: {list}{item}多个:多个修订可以处于活动状态。{/item}{item}单一:一次只能有一个修订处于活动状态。 无法在此模式下使用修订权重。 如果未提供任何值,则为默认值。{/item}{/list} |
“Multiple” “Single” |
dapr | 容器应用的 Dapr 配置。 | Dapr |
入口 | 入口配置。 | 入口 |
maxInactiveRevisions | 自选。 容器应用可以拥有的最大非活动修订。 | int |
登记处 | 容器应用使用的容器的专用容器注册表凭据的集合 | RegistryCredentials[] |
秘密 | 容器应用使用的机密集合 | 机密[] |
服务 | 容器应用作为开发容器应用服务 | 服务 |
Dapr
名字 | 描述 | 价值 |
---|---|---|
appId | Dapr 应用程序标识符 | 字符串 |
appPort | 告知 Dapr 应用程序正在侦听的端口 | int |
appProtocol | 告知 Dapr 应用程序使用的协议。 有效选项为 http 和 grpc。 默认值为 http | “grpc” “ http ” |
enableApiLogging | 为 Dapr sidecar 启用 API 日志记录 | bool |
启用 | 指示 Dapr 侧车是否已启用的布尔值 | bool |
httpMaxRequestSize | 增加请求正文 http 和 grpc 服务器参数的最大大小(以 MB 为单位)以处理大文件的上传。 默认值为 4 MB。 | int |
httpReadBufferSize | 发送多 KB 标头时要处理的 http 标头读取缓冲区的最大大小(以 KB 为单位)。 默认值为 65KB。 | int |
logLevel | 设置 Dapr sidecar 的日志级别。 允许的值是调试、信息、警告、错误。 默认值为信息。 | “debug” “error” “info” “warn” |
入口
名字 | 描述 | 价值 |
---|---|---|
additionalPortMappings | 用于在容器应用上公开其他端口的设置 | IngressPortMapping[] |
allowInsecure | 指示是否允许与 HTTP 连接的布尔值。 如果设置为 false HTTP 连接,则会自动重定向到 HTTPS 连接 | bool |
clientCertificateMode | 用于 mTLS 身份验证的客户端证书模式。 忽略指示服务器在转发时删除客户端证书。 Accept 表示服务器转发客户端证书,但不需要客户端证书。 要求指示服务器需要客户端证书。 | “accept” “ignore” “require” |
corsPolicy | 容器应用的 CORS 策略 | CorsPolicy |
customDomains | 容器应用的主机名的自定义域绑定。 | CustomDomain[] |
exposedPort | 容器中公开的端口,用于来自入口的 TCP 流量 | int |
外部 | 指示应用是否公开外部 http 终结点的布尔值 | bool |
ipSecurityRestrictions | 限制传入 IP 地址的规则。 | IpSecurityRestrictionRule[] |
stickySessions | 单一修订模式的粘滞会话 | IngressStickySessions |
targetPort | 用于来自入口的流量的容器中的目标端口 | int |
交通 | 应用修订的流量权重 | TrafficWeight[] |
运输 | 入口传输协议 | “auto” “ http ”“ http2 ”“tcp” |
IngressPortMapping
名字 | 描述 | 价值 |
---|---|---|
exposedPort | 指定目标端口的公开端口。 如果未指定,则默认为目标端口 | int |
外部 | 指定应用端口是否可在环境外部访问 | 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 | 自定义域绑定类型。 | “Disabled” 'SniEnabled' |
certificateId | 要绑定到此主机名的证书的资源 ID。 必须存在于托管环境中。 | 字符串 |
名字 | 主机名。 | string (必需) |
IpSecurityRestrictionRule
名字 | 描述 | 价值 |
---|---|---|
行动 | 允许或拒绝规则确定传入 IP。 注意:规则只能包含 ALL 允许或全部拒绝 | “允许” “拒绝”(必需) |
描述 | 描述要发送到容器应用的 IP 限制规则。 这是一个可选字段。 | 字符串 |
ipAddressRange | 与传入 IP 地址匹配的 CIDR 表示法 | string (必需) |
名字 | IP 限制规则的名称。 | string (必需) |
IngressStickySessions
名字 | 描述 | 价值 |
---|---|---|
亲和力 | 粘滞会话相关性 | “none” “粘性” |
TrafficWeight
名字 | 描述 | 价值 |
---|---|---|
标签 | 将流量标签与修订相关联 | 字符串 |
latestRevision | 指示流量权重属于最新的稳定修订 | bool |
revisionName | 修订的名称 | 字符串 |
重量 | 分配给修订的流量权重 | int |
RegistryCredentials
名字 | 描述 | 价值 |
---|---|---|
身份 | 用于通过 Azure 容器注册表进行身份验证的托管标识。 对于用户分配的标识,请使用完整的用户分配标识资源 ID。 对于系统分配的标识,请使用“system” | 字符串 |
passwordSecretRef | 包含注册表登录密码的机密的名称 | 字符串 |
服务器 | 容器注册表服务器 | 字符串 |
username | 容器注册表用户名 | 字符串 |
秘密
名字 | 描述 | 价值 |
---|---|---|
身份 | 使用 Azure Key Vault 进行身份验证的托管标识的资源 ID,或使用系统分配的标识。 | 字符串 |
keyVaultUrl | 指向容器应用引用的机密的 Azure Key Vault URL。 | 字符串 |
名字 | 机密名称。 | 字符串 |
价值 | 机密值。 | 字符串 约束: 敏感值。 以安全参数的形式传入。 |
服务
名字 | 描述 | 价值 |
---|---|---|
类型 | Dev ContainerApp 服务类型 | string (必需) |
模板
名字 | 描述 | 价值 |
---|---|---|
器皿 | 容器应用的容器定义列表。 | 容器[] |
initContainers | 在应用容器之前运行的专用容器列表。 | InitContainer[] |
revisionSuffix | 追加到修订名称的用户友好后缀 | 字符串 |
规模 | 缩放容器应用的属性。 | 缩放 |
serviceBinds | 绑定到应用的容器应用服务列表 | ServiceBind[] |
terminationGracePeriodSeconds | 容器应用实例需要正常终止的可选持续时间(以秒为单位)。 值必须是非负整数。 值零表示通过终止信号立即停止(没有关闭机会)。 如果此值为 nil,则会改用默认宽限期。 设置此值的时间超过进程的预期清理时间。 默认值为 30 秒。 | int |
卷 | 容器应用的卷定义列表。 | 卷[] |
容器
名字 | 描述 | 价值 |
---|---|---|
args | 容器启动命令参数。 | string[] |
命令 | 容器启动命令。 | string[] |
env | 容器环境变量。 | EnvironmentVar[] |
图像 | 容器映像标记。 | 字符串 |
名字 | 自定义容器名称。 | 字符串 |
探针 | 容器的探测列表。 | ContainerAppProbe[] |
资源 | 容器资源要求。 | ContainerResources |
volumeMounts | 容器卷装载。 | VolumeMount[] |
EnvironmentVar
名字 | 描述 | 价值 |
---|---|---|
名字 | 环境变量名称。 | 字符串 |
secretRef | 要从中拉取环境变量值的容器应用机密的名称。 | 字符串 |
价值 | 非机密环境变量值。 | 字符串 |
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 |
类型 | 探测的类型。 | “Liveness” “就绪情况” “Startup” |
ContainerAppProbeHttpGet
名字 | 描述 | 价值 |
---|---|---|
主机 | 要连接的主机名,默认为 Pod IP。 你可能想要改为在 httpHeaders 中设置“主机”。 | 字符串 |
httpHeaders | 在请求中设置的自定义标头。 HTTP 允许重复标头。 | ContainerAppProbeHttpGetHttpHeadersItem[] |
路径 | 在 HTTP 服务器上访问的路径。 | 字符串 |
港口 | 要在容器上访问的端口的名称或编号。 数字必须介于 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 | int (必需) |
方案 | 用于连接到主机的方案。 默认为 HTTP。 | “HTTP” “HTTPS” |
ContainerAppProbeHttpGetHttpHeadersItem
名字 | 描述 | 价值 |
---|---|---|
名字 | 标头字段名称 | string (必需) |
价值 | 标头字段值 | string (必需) |
ContainerAppProbeTcpSocket
名字 | 描述 | 价值 |
---|---|---|
主机 | 可选:要连接到的主机名,默认为 Pod IP。 | 字符串 |
港口 | 要在容器上访问的端口的编号或名称。 数字必须介于 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 | int (必需) |
ContainerResources
名字 | 描述 | 价值 |
---|---|---|
中央处理器 | 核心中所需的 CPU,例如 0.5 若要指定十进制值,请使用 json() 函数。 | int 或 json decimal |
记忆 | 所需的内存,例如“250Mb” | 字符串 |
VolumeMount
名字 | 描述 | 价值 |
---|---|---|
mountPath | 容器中应装载卷的路径。不得包含“:”。 | 字符串 |
subPath | 应从中装载容器卷的卷中的路径。 默认为“”(卷的根目录)。 | 字符串 |
volumeName | 这必须与卷的名称匹配。 | 字符串 |
InitContainer
名字 | 描述 | 价值 |
---|---|---|
args | 容器启动命令参数。 | string[] |
命令 | 容器启动命令。 | string[] |
env | 容器环境变量。 | EnvironmentVar[] |
图像 | 容器映像标记。 | 字符串 |
名字 | 自定义容器名称。 | 字符串 |
资源 | 容器资源要求。 | ContainerResources |
volumeMounts | 容器卷装载。 | VolumeMount[] |
规模
名字 | 描述 | 价值 |
---|---|---|
maxReplicas | 自选。 容器副本的最大数目。 如果未设置,则默认为 10。 | int |
minReplicas | 自选。 容器副本的最小数量。 | int |
规则 | 缩放规则。 | ScaleRule[] |
ScaleRule
名字 | 描述 | 价值 |
---|---|---|
azureQueue | 基于 Azure 队列的缩放。 | QueueScaleRule |
习惯 | 自定义缩放规则。 | CustomScaleRule |
http | 基于 HTTP 请求的缩放。 | HttpScaleRule |
名字 | 缩放规则名称 | 字符串 |
tcp | 基于 Tcp 请求的缩放。 | TcpScaleRule |
QueueScaleRule
名字 | 描述 | 价值 |
---|---|---|
认证 | 队列缩放规则的身份验证机密。 | ScaleRuleAuth[] |
queueLength | 队列长度。 | int |
queueName | 队列名称。 | 字符串 |
ScaleRuleAuth
名字 | 描述 | 价值 |
---|---|---|
secretRef | 要从中提取身份验证参数的机密的名称。 | 字符串 |
triggerParameter | 使用机密的触发器参数 | 字符串 |
CustomScaleRule
名字 | 描述 | 价值 |
---|---|---|
认证 | 自定义缩放规则的身份验证机密。 | ScaleRuleAuth[] |
元数据 | 用于描述自定义缩放规则的元数据属性。 | CustomScaleRuleMetadata |
类型 | 自定义缩放规则的类型 例如:azure-servicebus、redis 等。 |
字符串 |
CustomScaleRuleMetadata
名字 | 描述 | 价值 |
---|---|---|
{自定义属性} | 字符串 |
HttpScaleRule
名字 | 描述 | 价值 |
---|---|---|
认证 | 自定义缩放规则的身份验证机密。 | ScaleRuleAuth[] |
元数据 | 描述 http 缩放规则的元数据属性。 | HttpScaleRuleMetadata |
HttpScaleRuleMetadata
名字 | 描述 | 价值 |
---|---|---|
{自定义属性} | 字符串 |
TcpScaleRule
名字 | 描述 | 价值 |
---|---|---|
认证 | tcp 缩放规则的身份验证机密。 | ScaleRuleAuth[] |
元数据 | 用于描述 tcp 缩放规则的元数据属性。 | TcpScaleRuleMetadata |
TcpScaleRuleMetadata
名字 | 描述 | 价值 |
---|---|---|
{自定义属性} | 字符串 |
ServiceBind
名字 | 描述 | 价值 |
---|---|---|
名字 | 服务绑定的名称 | 字符串 |
serviceId | 目标服务的资源 ID | 字符串 |
卷
名字 | 描述 | 价值 |
---|---|---|
mountOptions | 装载 AzureFile 时使用的装载选项。 必须是逗号分隔的字符串。 | 字符串 |
名字 | 卷名称。 | 字符串 |
秘密 | 要添加到卷中的机密列表。 如果未提供机密,集合中的所有机密都将添加到卷中。 | SecretVolumeItem[] |
storageName | 存储资源的名称。 无需提供 EmptyDir 和 Secret。 | 字符串 |
storageType | 卷的存储类型。 如果未提供,请使用 EmptyDir。 | “AzureFile” “EmptyDir” “Secret” |
SecretVolumeItem
名字 | 描述 | 价值 |
---|---|---|
路径 | 项目机密的路径。 如果未提供路径,则路径默认为 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@2024-03-01"
name = "string"
location = "string"
parent_id = "string"
tags = {
tagName1 = "tagValue1"
tagName2 = "tagValue2"
}
identity {
type = "string"
identity_ids = []
}
body = jsonencode({
properties = {
configuration = {
activeRevisionsMode = "string"
dapr = {
appId = "string"
appPort = int
appProtocol = "string"
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 = [
{
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
名字 | 描述 | 价值 |
---|---|---|
类型 | 资源类型 | “Microsoft.App/containerApps@2024-03-01” |
名字 | 资源名称 | string (必需) 字符限制:2-32 有效字符: 小写字母、数字和连字符。 以字母开头,以字母数字结尾。 |
位置 | 资源所在的地理位置 | string (必需) |
parent_id | 若要部署到资源组,请使用该资源组的 ID。 | string (必需) |
标签 | 资源标记。 | 标记名称和值的字典。 |
extendedLocation | 扩展位置的复杂类型。 | ExtendedLocation |
身份 | 容器应用的托管标识可以与其他 Azure 服务交互,而无需在代码中维护任何机密或凭据。 | ManagedServiceIdentity |
managedBy | 管理此资源的资源的完全限定资源 ID。 指示此资源是否由另一个 Azure 资源管理。 如果存在,则完全模式部署不会删除资源(如果从模板中删除,因为它由另一个资源管理)。 | 字符串 |
性能 | ContainerApp 资源特定属性 | ContainerAppProperties |
ExtendedLocation
名字 | 描述 | 价值 |
---|---|---|
名字 | 扩展位置的名称。 | 字符串 |
类型 | 扩展位置的类型。 | “CustomLocation” |
ManagedServiceIdentity
名字 | 描述 | 价值 |
---|---|---|
类型 | 托管服务标识的类型(其中允许 SystemAssigned 和 UserAssigned 类型)。 | “SystemAssigned” “SystemAssigned,UserAssigned” “UserAssigned”(必需) |
identity_ids | 与资源关联的用户分配标识集。 userAssignedIdentities 字典密钥将为 ARM 资源 ID,格式为“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 字典值可以是请求中的空对象({})。 | 用户标识 ID 的数组。 |
UserAssignedIdentities
名字 | 描述 | 价值 |
---|---|---|
{自定义属性} | UserAssignedIdentity |
UserAssignedIdentity
此对象不包含在部署期间设置的任何属性。 所有属性都是 ReadOnly。
ContainerAppProperties
名字 | 描述 | 价值 |
---|---|---|
配置 | 非版本控制容器应用配置属性。 | 配置 |
environmentId | 环境的资源 ID。 | 字符串 |
managedEnvironmentId | 荒废的。 容器应用环境的资源 ID。 | 字符串 |
模板 | 容器应用版本控制的应用程序定义。 | 模板 |
workloadProfileName | 用于固定容器应用执行的工作负荷配置文件名称。 | 字符串 |
配置
名字 | 描述 | 价值 |
---|---|---|
activeRevisionsMode | ActiveRevisionsMode 控制如何处理容器应用的活动修订: {list}{item}多个:多个修订可以处于活动状态。{/item}{item}单一:一次只能有一个修订处于活动状态。 无法在此模式下使用修订权重。 如果未提供任何值,则为默认值。{/item}{/list} |
“Multiple” “Single” |
dapr | 容器应用的 Dapr 配置。 | Dapr |
入口 | 入口配置。 | 入口 |
maxInactiveRevisions | 自选。 容器应用可以拥有的最大非活动修订。 | int |
登记处 | 容器应用使用的容器的专用容器注册表凭据的集合 | RegistryCredentials[] |
秘密 | 容器应用使用的机密集合 | 机密[] |
服务 | 容器应用作为开发容器应用服务 | 服务 |
Dapr
名字 | 描述 | 价值 |
---|---|---|
appId | Dapr 应用程序标识符 | 字符串 |
appPort | 告知 Dapr 应用程序正在侦听的端口 | int |
appProtocol | 告知 Dapr 应用程序使用的协议。 有效选项为 http 和 grpc。 默认值为 http | “grpc” “ http ” |
enableApiLogging | 为 Dapr sidecar 启用 API 日志记录 | bool |
启用 | 指示 Dapr 侧车是否已启用的布尔值 | bool |
httpMaxRequestSize | 增加请求正文 http 和 grpc 服务器参数的最大大小(以 MB 为单位)以处理大文件的上传。 默认值为 4 MB。 | int |
httpReadBufferSize | 发送多 KB 标头时要处理的 http 标头读取缓冲区的最大大小(以 KB 为单位)。 默认值为 65KB。 | int |
logLevel | 设置 Dapr sidecar 的日志级别。 允许的值是调试、信息、警告、错误。 默认值为信息。 | “debug” “error” “info” “warn” |
入口
名字 | 描述 | 价值 |
---|---|---|
additionalPortMappings | 用于在容器应用上公开其他端口的设置 | IngressPortMapping[] |
allowInsecure | 指示是否允许与 HTTP 连接的布尔值。 如果设置为 false HTTP 连接,则会自动重定向到 HTTPS 连接 | bool |
clientCertificateMode | 用于 mTLS 身份验证的客户端证书模式。 忽略指示服务器在转发时删除客户端证书。 Accept 表示服务器转发客户端证书,但不需要客户端证书。 要求指示服务器需要客户端证书。 | “accept” “ignore” “require” |
corsPolicy | 容器应用的 CORS 策略 | CorsPolicy |
customDomains | 容器应用的主机名的自定义域绑定。 | CustomDomain[] |
exposedPort | 容器中公开的端口,用于来自入口的 TCP 流量 | int |
外部 | 指示应用是否公开外部 http 终结点的布尔值 | bool |
ipSecurityRestrictions | 限制传入 IP 地址的规则。 | IpSecurityRestrictionRule[] |
stickySessions | 单一修订模式的粘滞会话 | IngressStickySessions |
targetPort | 用于来自入口的流量的容器中的目标端口 | int |
交通 | 应用修订的流量权重 | TrafficWeight[] |
运输 | 入口传输协议 | “auto” “ http ”“ http2 ”“tcp” |
IngressPortMapping
名字 | 描述 | 价值 |
---|---|---|
exposedPort | 指定目标端口的公开端口。 如果未指定,则默认为目标端口 | int |
外部 | 指定应用端口是否可在环境外部访问 | 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 | 自定义域绑定类型。 | “Disabled” “SniEnabled” |
certificateId | 要绑定到此主机名的证书的资源 ID。 必须存在于托管环境中。 | 字符串 |
名字 | 主机名。 | string (必需) |
IpSecurityRestrictionRule
名字 | 描述 | 价值 |
---|---|---|
行动 | 允许或拒绝规则确定传入 IP。 注意:规则只能包含 ALL 允许或全部拒绝 | “允许” “拒绝”(必需) |
描述 | 描述要发送到容器应用的 IP 限制规则。 这是一个可选字段。 | 字符串 |
ipAddressRange | 与传入 IP 地址匹配的 CIDR 表示法 | string (必需) |
名字 | IP 限制规则的名称。 | string (必需) |
IngressStickySessions
名字 | 描述 | 价值 |
---|---|---|
亲和力 | 粘滞会话相关性 | “none” “粘性” |
TrafficWeight
名字 | 描述 | 价值 |
---|---|---|
标签 | 将流量标签与修订相关联 | 字符串 |
latestRevision | 指示流量权重属于最新的稳定修订 | bool |
revisionName | 修订的名称 | 字符串 |
重量 | 分配给修订的流量权重 | int |
RegistryCredentials
名字 | 描述 | 价值 |
---|---|---|
身份 | 用于通过 Azure 容器注册表进行身份验证的托管标识。 对于用户分配的标识,请使用完整的用户分配标识资源 ID。 对于系统分配的标识,请使用“system” | 字符串 |
passwordSecretRef | 包含注册表登录密码的机密的名称 | 字符串 |
服务器 | 容器注册表服务器 | 字符串 |
username | 容器注册表用户名 | 字符串 |
秘密
名字 | 描述 | 价值 |
---|---|---|
身份 | 使用 Azure Key Vault 进行身份验证的托管标识的资源 ID,或使用系统分配的标识。 | 字符串 |
keyVaultUrl | 指向容器应用引用的机密的 Azure Key Vault URL。 | 字符串 |
名字 | 机密名称。 | 字符串 |
价值 | 机密值。 | 字符串 约束: 敏感值。 以安全参数的形式传入。 |
服务
名字 | 描述 | 价值 |
---|---|---|
类型 | Dev ContainerApp 服务类型 | string (必需) |
模板
名字 | 描述 | 价值 |
---|---|---|
器皿 | 容器应用的容器定义列表。 | 容器[] |
initContainers | 在应用容器之前运行的专用容器列表。 | InitContainer[] |
revisionSuffix | 追加到修订名称的用户友好后缀 | 字符串 |
规模 | 缩放容器应用的属性。 | 缩放 |
serviceBinds | 绑定到应用的容器应用服务列表 | ServiceBind[] |
terminationGracePeriodSeconds | 容器应用实例需要正常终止的可选持续时间(以秒为单位)。 值必须是非负整数。 值零表示通过终止信号立即停止(没有关闭机会)。 如果此值为 nil,则会改用默认宽限期。 设置此值的时间超过进程的预期清理时间。 默认值为 30 秒。 | int |
卷 | 容器应用的卷定义列表。 | 卷[] |
容器
名字 | 描述 | 价值 |
---|---|---|
args | 容器启动命令参数。 | string[] |
命令 | 容器启动命令。 | string[] |
env | 容器环境变量。 | EnvironmentVar[] |
图像 | 容器映像标记。 | 字符串 |
名字 | 自定义容器名称。 | 字符串 |
探针 | 容器的探测列表。 | ContainerAppProbe[] |
资源 | 容器资源要求。 | ContainerResources |
volumeMounts | 容器卷装载。 | VolumeMount[] |
EnvironmentVar
名字 | 描述 | 价值 |
---|---|---|
名字 | 环境变量名称。 | 字符串 |
secretRef | 要从中拉取环境变量值的容器应用机密的名称。 | 字符串 |
价值 | 非机密环境变量值。 | 字符串 |
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 |
类型 | 探测的类型。 | “活泼” “就绪情况” “Startup” |
ContainerAppProbeHttpGet
名字 | 描述 | 价值 |
---|---|---|
主机 | 要连接的主机名,默认为 Pod IP。 你可能想要改为在 httpHeaders 中设置“主机”。 | 字符串 |
httpHeaders | 在请求中设置的自定义标头。 HTTP 允许重复标头。 | ContainerAppProbeHttpGetHttpHeadersItem[] |
路径 | 在 HTTP 服务器上访问的路径。 | 字符串 |
港口 | 要在容器上访问的端口的名称或编号。 数字必须介于 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 | int (必需) |
方案 | 用于连接到主机的方案。 默认为 HTTP。 | “HTTP” “HTTPS” |
ContainerAppProbeHttpGetHttpHeadersItem
名字 | 描述 | 价值 |
---|---|---|
名字 | 标头字段名称 | string (必需) |
价值 | 标头字段值 | string (必需) |
ContainerAppProbeTcpSocket
名字 | 描述 | 价值 |
---|---|---|
主机 | 可选:要连接到的主机名,默认为 Pod IP。 | 字符串 |
港口 | 要在容器上访问的端口的编号或名称。 数字必须介于 1 到 65535 的范围内。 名称必须是IANA_SVC_NAME。 | int (必需) |
ContainerResources
名字 | 描述 | 价值 |
---|---|---|
中央处理器 | 核心中所需的 CPU,例如 0.5 将十进制值指定为字符串。 | int 或 json decimal |
记忆 | 所需的内存,例如“250Mb” | 字符串 |
VolumeMount
名字 | 描述 | 价值 |
---|---|---|
mountPath | 容器中应装载卷的路径。不得包含“:”。 | 字符串 |
subPath | 应从中装载容器卷的卷中的路径。 默认为“”(卷的根目录)。 | 字符串 |
volumeName | 这必须与卷的名称匹配。 | 字符串 |
InitContainer
名字 | 描述 | 价值 |
---|---|---|
args | 容器启动命令参数。 | string[] |
命令 | 容器启动命令。 | string[] |
env | 容器环境变量。 | EnvironmentVar[] |
图像 | 容器映像标记。 | 字符串 |
名字 | 自定义容器名称。 | 字符串 |
资源 | 容器资源要求。 | ContainerResources |
volumeMounts | 容器卷装载。 | VolumeMount[] |
规模
名字 | 描述 | 价值 |
---|---|---|
maxReplicas | 自选。 容器副本的最大数目。 如果未设置,则默认为 10。 | int |
minReplicas | 自选。 容器副本的最小数量。 | int |
规则 | 缩放规则。 | ScaleRule[] |
ScaleRule
名字 | 描述 | 价值 |
---|---|---|
azureQueue | 基于 Azure 队列的缩放。 | QueueScaleRule |
习惯 | 自定义缩放规则。 | CustomScaleRule |
http | 基于 HTTP 请求的缩放。 | HttpScaleRule |
名字 | 缩放规则名称 | 字符串 |
tcp | 基于 Tcp 请求的缩放。 | TcpScaleRule |
QueueScaleRule
名字 | 描述 | 价值 |
---|---|---|
认证 | 队列缩放规则的身份验证机密。 | ScaleRuleAuth[] |
queueLength | 队列长度。 | int |
queueName | 队列名称。 | 字符串 |
ScaleRuleAuth
名字 | 描述 | 价值 |
---|---|---|
secretRef | 要从中提取身份验证参数的机密的名称。 | 字符串 |
triggerParameter | 使用机密的触发器参数 | 字符串 |
CustomScaleRule
名字 | 描述 | 价值 |
---|---|---|
认证 | 自定义缩放规则的身份验证机密。 | ScaleRuleAuth[] |
元数据 | 用于描述自定义缩放规则的元数据属性。 | CustomScaleRuleMetadata |
类型 | 自定义缩放规则的类型 例如:azure-servicebus、redis 等。 |
字符串 |
CustomScaleRuleMetadata
名字 | 描述 | 价值 |
---|---|---|
{自定义属性} | 字符串 |
HttpScaleRule
名字 | 描述 | 价值 |
---|---|---|
认证 | 自定义缩放规则的身份验证机密。 | ScaleRuleAuth[] |
元数据 | 描述 http 缩放规则的元数据属性。 | HttpScaleRuleMetadata |
HttpScaleRuleMetadata
名字 | 描述 | 价值 |
---|---|---|
{自定义属性} | 字符串 |
TcpScaleRule
名字 | 描述 | 价值 |
---|---|---|
认证 | tcp 缩放规则的身份验证机密。 | ScaleRuleAuth[] |
元数据 | 用于描述 tcp 缩放规则的元数据属性。 | TcpScaleRuleMetadata |
TcpScaleRuleMetadata
名字 | 描述 | 价值 |
---|---|---|
{自定义属性} | 字符串 |
ServiceBind
名字 | 描述 | 价值 |
---|---|---|
名字 | 服务绑定的名称 | 字符串 |
serviceId | 目标服务的资源 ID | 字符串 |
卷
名字 | 描述 | 价值 |
---|---|---|
mountOptions | 装载 AzureFile 时使用的装载选项。 必须是逗号分隔的字符串。 | 字符串 |
名字 | 卷名称。 | 字符串 |
秘密 | 要添加到卷中的机密列表。 如果未提供机密,集合中的所有机密都将添加到卷中。 | SecretVolumeItem[] |
storageName | 存储资源的名称。 无需提供 EmptyDir 和 Secret。 | 字符串 |
storageType | 卷的存储类型。 如果未提供,请使用 EmptyDir。 | “AzureFile” “EmptyDir” “Secret” |
SecretVolumeItem
名字 | 描述 | 价值 |
---|---|---|
路径 | 项目机密的路径。 如果未提供路径,则路径默认为 secretRef 中列出的机密的名称。 | 字符串 |
secretRef | 要从中拉取机密值的容器应用机密的名称。 | 字符串 |