Microsoft.App containerApps 2023-11-02-preview
Bicep 資源定義
containerApps 資源類型可以使用目標作業來部署:
- 資源群組 - 請參閱 資源群組部署命令
如需每個 API 版本中已變更屬性的清單,請參閱 變更記錄檔。
資源格式
若要建立 Microsoft.App/containerApps 資源,請將下列 Bicep 新增至範本。
resource symbolicname 'Microsoft.App/containerApps@2023-11-02-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
targetPortHttpScheme: 'string'
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
名字 | 描述 | 價值 |
---|---|---|
名字 | 資源名稱 | 字串 (必要) 字元限制:2-32 合法字元: 小寫字母、數位和連字元。。 以字母開頭,並以英數位元結尾。 |
位置 | 資源所在的地理位置 | 字串 (必要) |
標籤 | 資源標籤。 | 標記名稱和值的字典。 請參閱範本中的 標籤 |
extendedLocation | 擴充位置的複雜類型。 | ExtendedLocation |
身份 | 容器應用程式的受控識別可與其他 Azure 服務互動,而不需在程式碼中維護任何秘密或認證。 | ManagedServiceIdentity |
managedBy | 管理此資源之資源的完整資源標識碼。 指出此資源是否由另一個 Azure 資源管理。 如果存在,如果從範本中移除,則完整模式部署將不會刪除資源,因為該資源是由另一個資源管理。 | 字串 |
性能 | ContainerApp 資源特定屬性 | ContainerAppProperties |
ExtendedLocation
名字 | 描述 | 價值 |
---|---|---|
名字 | 擴充位置的名稱。 | 字串 |
類型 | 擴充位置的類型。 | 'CustomLocation' |
ManagedServiceIdentity
名字 | 描述 | 價值 |
---|---|---|
類型 | 受控服務識別的類型(允許 SystemAssigned 和 UserAssigned 類型)。 | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (必要) |
userAssignedIdentities | 與資源相關聯的使用者指派身分識別集。 userAssignedIdentities 字典索引鍵的格式為 ARM 資源標識符:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}。 字典值可以是要求中的空白物件({})。 | UserAssignedIdentities |
UserAssignedIdentities
名字 | 描述 | 價值 |
---|---|---|
{自定義屬性} | UserAssignedIdentity |
UserAssignedIdentity
此物件不包含在部署期間設定的任何屬性。 所有屬性都是 ReadOnly。
ContainerAppProperties
名字 | 描述 | 價值 |
---|---|---|
配置 | 非版本設定的容器應用程式組態屬性。 | 組態 |
environmentId | 環境的資源標識碼。 | 字串 |
managedEnvironmentId | 荒廢的。 容器應用程式環境的資源標識碼。 | 字串 |
範本 | 容器應用程式已建立版本的應用程式定義。 | 範本 |
workloadProfileName | 要釘選以進行容器應用程式執行的工作負載配置檔名稱。 | 字串 |
配置
名字 | 描述 | 價值 |
---|---|---|
activeRevisionsMode | ActiveRevisionsMode 控制容器應用程式的使用中修訂處理方式: {list}{item}多個:多個修訂可以作用中。{/item}{item}單一:一次只能有一個修訂作用中。 無法在此模式中使用修訂權數。 如果未提供任何值,則這是預設值。{/item}{/list} |
'Multiple' 'Single' |
dapr | 容器應用程式的 Dapr 組態。 | 達普 |
入口 | 輸入組態。 | 輸入 |
maxInactiveRevisions | 自選。 容器應用程式可以擁有的最大非使用中修訂。 | int |
登記處 | 容器應用程式所使用的容器的私人容器登錄認證集合 | RegistryCredentials[] |
秘密 | 容器應用程式所使用的秘密集合 | 秘密[] |
服務 | 作為開發容器 App Service 的容器應用程式 | Service |
Dapr
名字 | 描述 | 價值 |
---|---|---|
appId | Dapr 應用程式識別碼 | 字串 |
appPort | 告知 Dapr 您的應用程式正在接聽哪個埠 | int |
appProtocol | 告知 Dapr 您的應用程式所使用的通訊協定。 有效的選項為 HTTP 和 grpc。 預設值為 HTTP | 'grpc' ' http ' |
enableApiLogging | 啟用 Dapr Sidecar 的 API 記錄 | bool |
啟用 | 布爾值,指出 Dapr 側車是否已啟用 | bool |
httpMaxRequestSize | 增加 MB 中要求本文 HTTP 和 grpc 伺服器參數的大小上限,以處理大型檔案上傳。 預設值為 4 MB。 | int |
httpReadBufferSize | 在傳送多 KB 標頭標頭時,要處理之 HTTP 標頭讀取緩衝區的大小上限。 預設值為 65KB。 | int |
logLevel | 設定 Dapr 側車的記錄層級。 允許的值為偵錯、資訊、警告、錯誤。 預設值為 info。 | 'debug' 'error' 'info' 'warn' |
入口
名字 | 描述 | 價值 |
---|---|---|
additionalPortMappings | 在容器應用程式上公開其他埠的設定 | IngressPortMapping[] |
allowInsecure | 布爾,指出是否允許 HTTP 連線。 如果設定為 false HTTP 連線,則會自動重新導向至 HTTPS 連線 | bool |
clientCertificateMode | mTLS 驗證的客戶端憑證模式。 Ignore 表示伺服器在轉送時卸除客戶端憑證。 Accept 表示伺服器轉送客戶端憑證,但不需要客戶端憑證。 Require 表示伺服器需要客戶端憑證。 | 'accept' 'ignore' 'require' |
corsPolicy | 容器應用程式的 CORS 原則 | CorsPolicy |
customDomains | Container Apps 主機名的自定義網域系結。 | CustomDomain[] |
exposedPort | 容器中公開的埠,用於來自輸入的 TCP 流量 | int |
外部 | 布爾值,指出應用程式是否公開外部 HTTP 端點 | bool |
ipSecurityRestrictions | 限制連入IP位址的規則。 | IpSecurityRestrictionRule[] |
stickySessions | 單一修訂模式的黏性會話 | IngressStickySessions |
targetPort | 來自輸入流量的容器中目標埠 | int |
targetPortHttpScheme | HTTP 應用程式是否接聽 HTTP 或 HTTPs | 'http '' https ' |
交通 | 應用程式修訂的流量權數 | TrafficWeight[] |
運輸 | 輸入傳輸通訊協定 | 'auto' ' http '' http2 ''tcp' |
IngressPortMapping
名字 | 描述 | 價值 |
---|---|---|
exposedPort | 指定目標埠的公開埠。 如果未指定,則會預設為目標埠 | int |
外部 | 指定應用程式埠是否可在環境外部存取 | 布林 (必要) |
targetPort | 指定埠使用者的容器接聽 | int (必要) |
CorsPolicy
名字 | 描述 | 價值 |
---|---|---|
allowCredentials | 指定資源是否允許認證 | bool |
allowedHeaders | 指定 access-control-allow-headers 標頭的內容 | string[] |
allowedMethods | 指定 access-control-allow-methods 標頭的內容 | string[] |
allowedOrigins | 指定 access-control-allow-origins 標頭的內容 | string[] (必要) |
publicHeaders | 指定 access-control-expose-headers 標頭的內容 | string[] |
maxAge | 指定 access-control-max-age 標頭的內容 | int |
CustomDomain
名字 | 描述 | 價值 |
---|---|---|
bindingType | 自定義網域系結類型。 | 'Disabled' 'SniEnabled' |
certificateId | 要系結至此主機名之憑證的資源標識符。 必須存在於受控環境中。 | 字串 |
名字 | 主機名。 | 字串 (必要) |
IpSecurityRestrictionRule
名字 | 描述 | 價值 |
---|---|---|
行動 | 允許或拒絕規則來判斷傳入IP。 注意:規則只能包含 ALL 允許或全部拒絕 | 'Allow' '拒絕' (必要) |
描述 | 描述要傳送至 container-app 的IP限制規則。 這是選擇性欄位。 | 字串 |
ipAddressRange | 符合連入IP位址的CIDR表示法 | 字串 (必要) |
名字 | IP 限制規則的名稱。 | 字串 (必要) |
IngressStickySessions
名字 | 描述 | 價值 |
---|---|---|
親和力 | 黏性會話親和性 | 'none' '粘性' |
TrafficWeight
名字 | 描述 | 價值 |
---|---|---|
標籤 | 將流量標籤與修訂產生關聯 | 字串 |
latestRevision | 表示流量權數屬於最新的穩定修訂 | bool |
revisionName | 修訂的名稱 | 字串 |
重量 | 指派給修訂的流量權數 | int |
RegistryCredentials
名字 | 描述 | 價值 |
---|---|---|
身份 | 用來向 Azure Container Registry 進行驗證的受控識別。 針對使用者指派的身分識別,請使用使用者指派的完整身分識別資源標識碼。 針對系統指派的身分識別,請使用 'system' | 字串 |
passwordSecretRef | 包含登錄登入密碼的秘密名稱 | 字串 |
伺服器 | Container Registry Server | 字串 |
username | Container Registry 用戶名稱 | 字串 |
秘密
名字 | 描述 | 價值 |
---|---|---|
身份 | 要向 Azure Key Vault 進行驗證的受控識別資源識別碼,或使用系統指派的身分識別。 | 字串 |
keyVaultUrl | 指向容器應用程式所參考秘密的 Azure Key Vault URL。 | 字串 |
名字 | 秘密名稱。 | 字串 |
價值 | 秘密值。 | 字串 約束: 敏感性值。 以安全參數的形式傳入。 |
服務
名字 | 描述 | 價值 |
---|---|---|
類型 | Dev ContainerApp 服務類型 | 字串 (必要) |
範本
名字 | 描述 | 價值 |
---|---|---|
器皿 | 容器應用程式的容器定義清單。 | 容器[] |
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 的終止GracePeriodSeconds。 否則,此值會覆寫Pod規格所提供的值。值必須是非負整數。 值零表示透過終止訊號立即停止(沒有機會關閉)。 這是Alpha字段,需要啟用 ProbeTerminationGracePeriod 功能閘道。 最大值為 3600 秒(1 小時) | int |
timeoutSeconds | 探查逾時後的秒數。預設值為 1 秒。 最小值為 1。 最大值為 240。 | int |
類型 | 探查的類型。 | '活潑' 「整備」 'Startup' |
ContainerAppProbeHttpGet
名字 | 描述 | 價值 |
---|---|---|
主機 | 要連線的主機名,預設為 Pod IP。 您可能想要改為在 HTTPHeaders 中設定 「Host」。 | 字串 |
httpHeaders | 在要求中設定的自定義標頭。 HTTP 允許重複的標頭。 | ContainerAppProbeHttpGetHttpHeadersItem[] |
路徑 | HTTP 伺服器上存取的路徑。 | 字串 |
港口 | 要存取容器的埠名稱或號碼。 數字必須介於 1 到 65535 的範圍內。 名稱必須是IANA_SVC_NAME。 | int (必要) |
方案 | 用於連線到主機的配置。 默認為 HTTP。 | 'HTTP' 'HTTPS' |
ContainerAppProbeHttpGetHttpHeadersItem
名字 | 描述 | 價值 |
---|---|---|
名字 | 標頭功能變數名稱 | 字串 (必要) |
價值 | 標頭域值 | 字串 (必要) |
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
名字 | 描述 | 價值 |
---|---|---|
clientType | 要用來連線至服務的客戶端類型 | 字串 |
customizedKeys | 自訂將插入值自定義至應用程式的自定義金鑰 | ServiceBindCustomizedKeys |
名字 | 服務系結的名稱 | 字串 |
serviceId | 目標服務的資源標識碼 | 字串 |
ServiceBindCustomizedKeys
名字 | 描述 | 價值 |
---|---|---|
{自定義屬性} | 字串 |
卷
名字 | 描述 | 價值 |
---|---|---|
mountOptions | 掛接 Azure 檔案共用或 NFS Azure 檔案共享時所使用的掛接選項。 必須是逗號分隔字串。 | 字串 |
名字 | 磁碟區名稱。 | 字串 |
秘密 | 要加入磁碟區中的秘密清單。 如果未提供秘密,集合中的所有秘密都會新增至磁碟區。 | SecretVolumeItem[] |
storageName | 記憶體資源的名稱。 不需要提供 EmptyDir 和 Secret。 | 字串 |
storageType | 磁碟區的儲存類型。 如果未提供,請使用 EmptyDir。 | 'AzureFile' 'EmptyDir' 'NfsAzureFile' 'Secret' |
SecretVolumeItem
名字 | 描述 | 價值 |
---|---|---|
路徑 | 專案秘密的路徑。 如果未提供路徑,則path預設為secretRef中列出的秘密名稱。 | 字串 |
secretRef | 要從中提取秘密值的容器應用程式秘密名稱。 | 字串 |
快速入門範本
下列快速入門範本會部署此資源類型。
範本 | 描述 |
---|---|
使用登錄建立容器應用程式和環境 |
使用 Azure Container Registry 的基本容器應用程式建立容器應用程式環境。 它也會部署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-11-02-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",
"targetPortHttpScheme": "string",
"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
名字 | 描述 | 價值 |
---|---|---|
類型 | 資源類型 | 'Microsoft.App/containerApps' |
apiVersion | 資源 API 版本 | '2023-11-02-preview' |
名字 | 資源名稱 | 字串 (必要) 字元限制:2-32 合法字元: 小寫字母、數位和連字元。。 以字母開頭,並以英數位元結尾。 |
位置 | 資源所在的地理位置 | 字串 (必要) |
標籤 | 資源標籤。 | 標記名稱和值的字典。 請參閱範本中的 標籤 |
extendedLocation | 擴充位置的複雜類型。 | ExtendedLocation |
身份 | 容器應用程式的受控識別可與其他 Azure 服務互動,而不需在程式碼中維護任何秘密或認證。 | ManagedServiceIdentity |
managedBy | 管理此資源之資源的完整資源標識碼。 指出此資源是否由另一個 Azure 資源管理。 如果存在,如果從範本中移除,則完整模式部署將不會刪除資源,因為該資源是由另一個資源管理。 | 字串 |
性能 | ContainerApp 資源特定屬性 | ContainerAppProperties |
ExtendedLocation
名字 | 描述 | 價值 |
---|---|---|
名字 | 擴充位置的名稱。 | 字串 |
類型 | 擴充位置的類型。 | 'CustomLocation' |
ManagedServiceIdentity
名字 | 描述 | 價值 |
---|---|---|
類型 | 受控服務識別的類型(允許 SystemAssigned 和 UserAssigned 類型)。 | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (必要) |
userAssignedIdentities | 與資源相關聯的使用者指派身分識別集。 userAssignedIdentities 字典索引鍵的格式為 ARM 資源標識符:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}。 字典值可以是要求中的空白物件({})。 | UserAssignedIdentities |
UserAssignedIdentities
名字 | 描述 | 價值 |
---|---|---|
{自定義屬性} | UserAssignedIdentity |
UserAssignedIdentity
此物件不包含在部署期間設定的任何屬性。 所有屬性都是 ReadOnly。
ContainerAppProperties
名字 | 描述 | 價值 |
---|---|---|
配置 | 非版本設定的容器應用程式組態屬性。 | 組態 |
environmentId | 環境的資源標識碼。 | 字串 |
managedEnvironmentId | 荒廢的。 容器應用程式環境的資源標識碼。 | 字串 |
範本 | 容器應用程式已建立版本的應用程式定義。 | 範本 |
workloadProfileName | 要釘選以進行容器應用程式執行的工作負載配置檔名稱。 | 字串 |
配置
名字 | 描述 | 價值 |
---|---|---|
activeRevisionsMode | ActiveRevisionsMode 控制容器應用程式的使用中修訂處理方式: {list}{item}多個:多個修訂可以作用中。{/item}{item}單一:一次只能有一個修訂作用中。 無法在此模式中使用修訂權數。 如果未提供任何值,則這是預設值。{/item}{/list} |
'Multiple' 'Single' |
dapr | 容器應用程式的 Dapr 組態。 | 達普 |
入口 | 輸入組態。 | 輸入 |
maxInactiveRevisions | 自選。 容器應用程式可以擁有的最大非使用中修訂。 | int |
登記處 | 容器應用程式所使用的容器的私人容器登錄認證集合 | RegistryCredentials[] |
秘密 | 容器應用程式所使用的秘密集合 | 秘密[] |
服務 | 作為開發容器 App Service 的容器應用程式 | Service |
Dapr
名字 | 描述 | 價值 |
---|---|---|
appId | Dapr 應用程式識別碼 | 字串 |
appPort | 告知 Dapr 您的應用程式正在接聽哪個埠 | int |
appProtocol | 告知 Dapr 您的應用程式所使用的通訊協定。 有效的選項為 HTTP 和 grpc。 預設值為 HTTP | 'grpc' ' http ' |
enableApiLogging | 啟用 Dapr Sidecar 的 API 記錄 | bool |
啟用 | 布爾值,指出 Dapr 側車是否已啟用 | bool |
httpMaxRequestSize | 增加 MB 中要求本文 HTTP 和 grpc 伺服器參數的大小上限,以處理大型檔案上傳。 預設值為 4 MB。 | int |
httpReadBufferSize | 在傳送多 KB 標頭標頭時,要處理之 HTTP 標頭讀取緩衝區的大小上限。 預設值為 65KB。 | int |
logLevel | 設定 Dapr 側車的記錄層級。 允許的值為偵錯、資訊、警告、錯誤。 預設值為 info。 | 'debug' 'error' 'info' 'warn' |
入口
名字 | 描述 | 價值 |
---|---|---|
additionalPortMappings | 在容器應用程式上公開其他埠的設定 | IngressPortMapping[] |
allowInsecure | 布爾,指出是否允許 HTTP 連線。 如果設定為 false HTTP 連線,則會自動重新導向至 HTTPS 連線 | bool |
clientCertificateMode | mTLS 驗證的客戶端憑證模式。 Ignore 表示伺服器在轉送時卸除客戶端憑證。 Accept 表示伺服器轉送客戶端憑證,但不需要客戶端憑證。 Require 表示伺服器需要客戶端憑證。 | 'accept' 'ignore' 'require' |
corsPolicy | 容器應用程式的 CORS 原則 | CorsPolicy |
customDomains | Container Apps 主機名的自定義網域系結。 | CustomDomain[] |
exposedPort | 容器中公開的埠,用於來自輸入的 TCP 流量 | int |
外部 | 布爾值,指出應用程式是否公開外部 HTTP 端點 | bool |
ipSecurityRestrictions | 限制連入IP位址的規則。 | IpSecurityRestrictionRule[] |
stickySessions | 單一修訂模式的黏性會話 | IngressStickySessions |
targetPort | 來自輸入流量的容器中目標埠 | int |
targetPortHttpScheme | HTTP 應用程式是否接聽 HTTP 或 HTTPs | 'http '' https ' |
交通 | 應用程式修訂的流量權數 | TrafficWeight[] |
運輸 | 輸入傳輸通訊協定 | 'auto' ' http '' http2 ''tcp' |
IngressPortMapping
名字 | 描述 | 價值 |
---|---|---|
exposedPort | 指定目標埠的公開埠。 如果未指定,則會預設為目標埠 | int |
外部 | 指定應用程式埠是否可在環境外部存取 | 布林 (必要) |
targetPort | 指定埠使用者的容器接聽 | int (必要) |
CorsPolicy
名字 | 描述 | 價值 |
---|---|---|
allowCredentials | 指定資源是否允許認證 | bool |
allowedHeaders | 指定 access-control-allow-headers 標頭的內容 | string[] |
allowedMethods | 指定 access-control-allow-methods 標頭的內容 | string[] |
allowedOrigins | 指定 access-control-allow-origins 標頭的內容 | string[] (必要) |
publicHeaders | 指定 access-control-expose-headers 標頭的內容 | string[] |
maxAge | 指定 access-control-max-age 標頭的內容 | int |
CustomDomain
名字 | 描述 | 價值 |
---|---|---|
bindingType | 自定義網域系結類型。 | 'Disabled' 'SniEnabled' |
certificateId | 要系結至此主機名之憑證的資源標識符。 必須存在於受控環境中。 | 字串 |
名字 | 主機名。 | 字串 (必要) |
IpSecurityRestrictionRule
名字 | 描述 | 價值 |
---|---|---|
行動 | 允許或拒絕規則來判斷傳入IP。 注意:規則只能包含 ALL 允許或全部拒絕 | 'Allow' '拒絕' (必要) |
描述 | 描述要傳送至 container-app 的IP限制規則。 這是選擇性欄位。 | 字串 |
ipAddressRange | 符合連入IP位址的CIDR表示法 | 字串 (必要) |
名字 | IP 限制規則的名稱。 | 字串 (必要) |
IngressStickySessions
名字 | 描述 | 價值 |
---|---|---|
親和力 | 黏性會話親和性 | 'none' '粘性' |
TrafficWeight
名字 | 描述 | 價值 |
---|---|---|
標籤 | 將流量標籤與修訂產生關聯 | 字串 |
latestRevision | 表示流量權數屬於最新的穩定修訂 | bool |
revisionName | 修訂的名稱 | 字串 |
重量 | 指派給修訂的流量權數 | int |
RegistryCredentials
名字 | 描述 | 價值 |
---|---|---|
身份 | 用來向 Azure Container Registry 進行驗證的受控識別。 針對使用者指派的身分識別,請使用使用者指派的完整身分識別資源標識碼。 針對系統指派的身分識別,請使用 'system' | 字串 |
passwordSecretRef | 包含登錄登入密碼的秘密名稱 | 字串 |
伺服器 | Container Registry Server | 字串 |
username | Container Registry 用戶名稱 | 字串 |
秘密
名字 | 描述 | 價值 |
---|---|---|
身份 | 要向 Azure Key Vault 進行驗證的受控識別資源識別碼,或使用系統指派的身分識別。 | 字串 |
keyVaultUrl | 指向容器應用程式所參考秘密的 Azure Key Vault URL。 | 字串 |
名字 | 秘密名稱。 | 字串 |
價值 | 秘密值。 | 字串 約束: 敏感性值。 以安全參數的形式傳入。 |
服務
名字 | 描述 | 價值 |
---|---|---|
類型 | Dev ContainerApp 服務類型 | 字串 (必要) |
範本
名字 | 描述 | 價值 |
---|---|---|
器皿 | 容器應用程式的容器定義清單。 | 容器[] |
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 的終止GracePeriodSeconds。 否則,此值會覆寫Pod規格所提供的值。值必須是非負整數。 值零表示透過終止訊號立即停止(沒有機會關閉)。 這是Alpha字段,需要啟用 ProbeTerminationGracePeriod 功能閘道。 最大值為 3600 秒(1 小時) | int |
timeoutSeconds | 探查逾時後的秒數。預設值為 1 秒。 最小值為 1。 最大值為 240。 | int |
類型 | 探查的類型。 | '活潑' 「整備」 'Startup' |
ContainerAppProbeHttpGet
名字 | 描述 | 價值 |
---|---|---|
主機 | 要連線的主機名,預設為 Pod IP。 您可能想要改為在 HTTPHeaders 中設定 「Host」。 | 字串 |
httpHeaders | 在要求中設定的自定義標頭。 HTTP 允許重複的標頭。 | ContainerAppProbeHttpGetHttpHeadersItem[] |
路徑 | HTTP 伺服器上存取的路徑。 | 字串 |
港口 | 要存取容器的埠名稱或號碼。 數字必須介於 1 到 65535 的範圍內。 名稱必須是IANA_SVC_NAME。 | int (必要) |
方案 | 用於連線到主機的配置。 默認為 HTTP。 | 'HTTP' 'HTTPS' |
ContainerAppProbeHttpGetHttpHeadersItem
名字 | 描述 | 價值 |
---|---|---|
名字 | 標頭功能變數名稱 | 字串 (必要) |
價值 | 標頭域值 | 字串 (必要) |
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
名字 | 描述 | 價值 |
---|---|---|
clientType | 要用來連線至服務的客戶端類型 | 字串 |
customizedKeys | 自訂將插入值自定義至應用程式的自定義金鑰 | ServiceBindCustomizedKeys |
名字 | 服務系結的名稱 | 字串 |
serviceId | 目標服務的資源標識碼 | 字串 |
ServiceBindCustomizedKeys
名字 | 描述 | 價值 |
---|---|---|
{自定義屬性} | 字串 |
卷
名字 | 描述 | 價值 |
---|---|---|
mountOptions | 掛接 Azure 檔案共用或 NFS Azure 檔案共享時所使用的掛接選項。 必須是逗號分隔字串。 | 字串 |
名字 | 磁碟區名稱。 | 字串 |
秘密 | 要加入磁碟區中的秘密清單。 如果未提供秘密,集合中的所有秘密都會新增至磁碟區。 | SecretVolumeItem[] |
storageName | 記憶體資源的名稱。 不需要提供 EmptyDir 和 Secret。 | 字串 |
storageType | 磁碟區的儲存類型。 如果未提供,請使用 EmptyDir。 | 'AzureFile' 'EmptyDir' 'NfsAzureFile' 'Secret' |
SecretVolumeItem
名字 | 描述 | 價值 |
---|---|---|
路徑 | 專案秘密的路徑。 如果未提供路徑,則path預設為secretRef中列出的秘密名稱。 | 字串 |
secretRef | 要從中提取秘密值的容器應用程式秘密名稱。 | 字串 |
快速入門範本
下列快速入門範本會部署此資源類型。
範本 | 描述 |
---|---|
使用登錄建立容器應用程式和環境 |
使用 Azure Container Registry 的基本容器應用程式建立容器應用程式環境。 它也會部署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-11-02-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
targetPortHttpScheme = "string"
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
名字 | 描述 | 價值 |
---|---|---|
類型 | 資源類型 | “Microsoft.App/containerApps@2023-11-02-preview” |
名字 | 資源名稱 | 字串 (必要) 字元限制:2-32 合法字元: 小寫字母、數位和連字元。。 以字母開頭,並以英數位元結尾。 |
位置 | 資源所在的地理位置 | 字串 (必要) |
parent_id | 若要部署至資源群組,請使用該資源群組的標識碼。 | 字串 (必要) |
標籤 | 資源標籤。 | 標記名稱和值的字典。 |
extendedLocation | 擴充位置的複雜類型。 | ExtendedLocation |
身份 | 容器應用程式的受控識別可與其他 Azure 服務互動,而不需在程式碼中維護任何秘密或認證。 | ManagedServiceIdentity |
managedBy | 管理此資源之資源的完整資源標識碼。 指出此資源是否由另一個 Azure 資源管理。 如果存在,如果從範本中移除,則完整模式部署將不會刪除資源,因為該資源是由另一個資源管理。 | 字串 |
性能 | ContainerApp 資源特定屬性 | ContainerAppProperties |
ExtendedLocation
名字 | 描述 | 價值 |
---|---|---|
名字 | 擴充位置的名稱。 | 字串 |
類型 | 擴充位置的類型。 | “CustomLocation” |
ManagedServiceIdentity
名字 | 描述 | 價值 |
---|---|---|
類型 | 受控服務識別的類型(允許 SystemAssigned 和 UserAssigned 類型)。 | “SystemAssigned” “SystemAssigned,UserAssigned” “UserAssigned” (必要) |
identity_ids | 與資源相關聯的使用者指派身分識別集。 userAssignedIdentities 字典索引鍵的格式為 ARM 資源標識符:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}。 字典值可以是要求中的空白物件({})。 | 使用者身分識別標識碼的陣列。 |
UserAssignedIdentities
名字 | 描述 | 價值 |
---|---|---|
{自定義屬性} | UserAssignedIdentity |
UserAssignedIdentity
此物件不包含在部署期間設定的任何屬性。 所有屬性都是 ReadOnly。
ContainerAppProperties
名字 | 描述 | 價值 |
---|---|---|
配置 | 非版本設定的容器應用程式組態屬性。 | 組態 |
environmentId | 環境的資源標識碼。 | 字串 |
managedEnvironmentId | 荒廢的。 容器應用程式環境的資源標識碼。 | 字串 |
範本 | 容器應用程式已建立版本的應用程式定義。 | 範本 |
workloadProfileName | 要釘選以進行容器應用程式執行的工作負載配置檔名稱。 | 字串 |
配置
名字 | 描述 | 價值 |
---|---|---|
activeRevisionsMode | ActiveRevisionsMode 控制容器應用程式的使用中修訂處理方式: {list}{item}多個:多個修訂可以作用中。{/item}{item}單一:一次只能有一個修訂作用中。 無法在此模式中使用修訂權數。 如果未提供任何值,則這是預設值。{/item}{/list} |
“Multiple” “Single” |
dapr | 容器應用程式的 Dapr 組態。 | 達普 |
入口 | 輸入組態。 | 輸入 |
maxInactiveRevisions | 自選。 容器應用程式可以擁有的最大非使用中修訂。 | int |
登記處 | 容器應用程式所使用的容器的私人容器登錄認證集合 | RegistryCredentials[] |
秘密 | 容器應用程式所使用的秘密集合 | 秘密[] |
服務 | 作為開發容器 App Service 的容器應用程式 | Service |
Dapr
名字 | 描述 | 價值 |
---|---|---|
appId | Dapr 應用程式識別碼 | 字串 |
appPort | 告知 Dapr 您的應用程式正在接聽哪個埠 | int |
appProtocol | 告知 Dapr 您的應用程式所使用的通訊協定。 有效的選項為 HTTP 和 grpc。 預設值為 HTTP | “grpc” “ http ” |
enableApiLogging | 啟用 Dapr Sidecar 的 API 記錄 | bool |
啟用 | 布爾值,指出 Dapr 側車是否已啟用 | bool |
httpMaxRequestSize | 增加 MB 中要求本文 HTTP 和 grpc 伺服器參數的大小上限,以處理大型檔案上傳。 預設值為 4 MB。 | int |
httpReadBufferSize | 在傳送多 KB 標頭標頭時,要處理之 HTTP 標頭讀取緩衝區的大小上限。 預設值為 65KB。 | int |
logLevel | 設定 Dapr 側車的記錄層級。 允許的值為偵錯、資訊、警告、錯誤。 預設值為 info。 | “debug” “error” “info” “warn” |
入口
名字 | 描述 | 價值 |
---|---|---|
additionalPortMappings | 在容器應用程式上公開其他埠的設定 | IngressPortMapping[] |
allowInsecure | 布爾,指出是否允許 HTTP 連線。 如果設定為 false HTTP 連線,則會自動重新導向至 HTTPS 連線 | bool |
clientCertificateMode | mTLS 驗證的客戶端憑證模式。 Ignore 表示伺服器在轉送時卸除客戶端憑證。 Accept 表示伺服器轉送客戶端憑證,但不需要客戶端憑證。 Require 表示伺服器需要客戶端憑證。 | “accept” “ignore” “require” |
corsPolicy | 容器應用程式的 CORS 原則 | CorsPolicy |
customDomains | Container Apps 主機名的自定義網域系結。 | CustomDomain[] |
exposedPort | 容器中公開的埠,用於來自輸入的 TCP 流量 | int |
外部 | 布爾值,指出應用程式是否公開外部 HTTP 端點 | bool |
ipSecurityRestrictions | 限制連入IP位址的規則。 | IpSecurityRestrictionRule[] |
stickySessions | 單一修訂模式的黏性會話 | IngressStickySessions |
targetPort | 來自輸入流量的容器中目標埠 | int |
targetPortHttpScheme | HTTP 應用程式是否接聽 HTTP 或 HTTPs | “http ”“ https ” |
交通 | 應用程式修訂的流量權數 | TrafficWeight[] |
運輸 | 輸入傳輸通訊協定 | “auto” “ http ”“ http2 ”“tcp” |
IngressPortMapping
名字 | 描述 | 價值 |
---|---|---|
exposedPort | 指定目標埠的公開埠。 如果未指定,則會預設為目標埠 | int |
外部 | 指定應用程式埠是否可在環境外部存取 | 布林 (必要) |
targetPort | 指定埠使用者的容器接聽 | int (必要) |
CorsPolicy
名字 | 描述 | 價值 |
---|---|---|
allowCredentials | 指定資源是否允許認證 | bool |
allowedHeaders | 指定 access-control-allow-headers 標頭的內容 | string[] |
allowedMethods | 指定 access-control-allow-methods 標頭的內容 | string[] |
allowedOrigins | 指定 access-control-allow-origins 標頭的內容 | string[] (必要) |
publicHeaders | 指定 access-control-expose-headers 標頭的內容 | string[] |
maxAge | 指定 access-control-max-age 標頭的內容 | int |
CustomDomain
名字 | 描述 | 價值 |
---|---|---|
bindingType | 自定義網域系結類型。 | “Disabled” “SniEnabled” |
certificateId | 要系結至此主機名之憑證的資源標識符。 必須存在於受控環境中。 | 字串 |
名字 | 主機名。 | 字串 (必要) |
IpSecurityRestrictionRule
名字 | 描述 | 價值 |
---|---|---|
行動 | 允許或拒絕規則來判斷傳入IP。 注意:規則只能包含 ALL 允許或全部拒絕 | “Allow” “拒絕” (必要) |
描述 | 描述要傳送至 container-app 的IP限制規則。 這是選擇性欄位。 | 字串 |
ipAddressRange | 符合連入IP位址的CIDR表示法 | 字串 (必要) |
名字 | IP 限制規則的名稱。 | 字串 (必要) |
IngressStickySessions
名字 | 描述 | 價值 |
---|---|---|
親和力 | 黏性會話親和性 | “none” “粘性” |
TrafficWeight
名字 | 描述 | 價值 |
---|---|---|
標籤 | 將流量標籤與修訂產生關聯 | 字串 |
latestRevision | 表示流量權數屬於最新的穩定修訂 | bool |
revisionName | 修訂的名稱 | 字串 |
重量 | 指派給修訂的流量權數 | int |
RegistryCredentials
名字 | 描述 | 價值 |
---|---|---|
身份 | 用來向 Azure Container Registry 進行驗證的受控識別。 針對使用者指派的身分識別,請使用使用者指派的完整身分識別資源標識碼。 針對系統指派的身分識別,請使用 'system' | 字串 |
passwordSecretRef | 包含登錄登入密碼的秘密名稱 | 字串 |
伺服器 | Container Registry Server | 字串 |
username | Container Registry 用戶名稱 | 字串 |
秘密
名字 | 描述 | 價值 |
---|---|---|
身份 | 要向 Azure Key Vault 進行驗證的受控識別資源識別碼,或使用系統指派的身分識別。 | 字串 |
keyVaultUrl | 指向容器應用程式所參考秘密的 Azure Key Vault URL。 | 字串 |
名字 | 秘密名稱。 | 字串 |
價值 | 秘密值。 | 字串 約束: 敏感性值。 以安全參數的形式傳入。 |
服務
名字 | 描述 | 價值 |
---|---|---|
類型 | Dev ContainerApp 服務類型 | 字串 (必要) |
範本
名字 | 描述 | 價值 |
---|---|---|
器皿 | 容器應用程式的容器定義清單。 | 容器[] |
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 的終止GracePeriodSeconds。 否則,此值會覆寫Pod規格所提供的值。值必須是非負整數。 值零表示透過終止訊號立即停止(沒有機會關閉)。 這是Alpha字段,需要啟用 ProbeTerminationGracePeriod 功能閘道。 最大值為 3600 秒(1 小時) | int |
timeoutSeconds | 探查逾時後的秒數。預設值為 1 秒。 最小值為 1。 最大值為 240。 | int |
類型 | 探查的類型。 | “活潑” “整備程度” “Startup” |
ContainerAppProbeHttpGet
名字 | 描述 | 價值 |
---|---|---|
主機 | 要連線的主機名,預設為 Pod IP。 您可能想要改為在 HTTPHeaders 中設定 「Host」。 | 字串 |
httpHeaders | 在要求中設定的自定義標頭。 HTTP 允許重複的標頭。 | ContainerAppProbeHttpGetHttpHeadersItem[] |
路徑 | HTTP 伺服器上存取的路徑。 | 字串 |
港口 | 要存取容器的埠名稱或號碼。 數字必須介於 1 到 65535 的範圍內。 名稱必須是IANA_SVC_NAME。 | int (必要) |
方案 | 用於連線到主機的配置。 默認為 HTTP。 | “HTTP” “HTTPS” |
ContainerAppProbeHttpGetHttpHeadersItem
名字 | 描述 | 價值 |
---|---|---|
名字 | 標頭功能變數名稱 | 字串 (必要) |
價值 | 標頭域值 | 字串 (必要) |
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
名字 | 描述 | 價值 |
---|---|---|
clientType | 要用來連線至服務的客戶端類型 | 字串 |
customizedKeys | 自訂將插入值自定義至應用程式的自定義金鑰 | ServiceBindCustomizedKeys |
名字 | 服務系結的名稱 | 字串 |
serviceId | 目標服務的資源標識碼 | 字串 |
ServiceBindCustomizedKeys
名字 | 描述 | 價值 |
---|---|---|
{自定義屬性} | 字串 |
卷
名字 | 描述 | 價值 |
---|---|---|
mountOptions | 掛接 Azure 檔案共用或 NFS Azure 檔案共享時所使用的掛接選項。 必須是逗號分隔字串。 | 字串 |
名字 | 磁碟區名稱。 | 字串 |
秘密 | 要加入磁碟區中的秘密清單。 如果未提供秘密,集合中的所有秘密都會新增至磁碟區。 | SecretVolumeItem[] |
storageName | 記憶體資源的名稱。 不需要提供 EmptyDir 和 Secret。 | 字串 |
storageType | 磁碟區的儲存類型。 如果未提供,請使用 EmptyDir。 | “AzureFile” “EmptyDir” “NfsAzureFile” “Secret” |
SecretVolumeItem
名字 | 描述 | 價值 |
---|---|---|
路徑 | 專案秘密的路徑。 如果未提供路徑,則path預設為secretRef中列出的秘密名稱。 | 字串 |
secretRef | 要從中提取秘密值的容器應用程式秘密名稱。 | 字串 |