Az Azure Container Apps ARM- és YAML-sablon specifikációi
Az Azure Container Apps üzembe helyezéseit egy Azure Resource Manager-sablon (ARM) működteti. Egyes Container Apps CLI-parancsok yaML-sablon használatával is támogatják az erőforrások megadását.
Ez a cikk a gyakran használt Container Apps-erőforrások ARM- és YAML-konfigurációit ismerteti. A Container Apps-erőforrások teljes listáját a Container Apps Azure Resource Manager-sablonjaiban találja.
API-verziók
Az Azure Container Apps legújabb felügyeleti API-verziói a következők:
2023-05-01
(stabil)2023-08-01-preview
(előzetes verzió)
Az API-verziók közötti különbségekről további információt Microsoft.App változásnaplóban talál.
API-verziók frissítése
Ha egy adott API-verziót szeretne használni az ARM-ben vagy a Bicepben, frissítse a sablonokban hivatkozott verziót. Ha az Azure CLI vagy az Azure PowerShell legújabb API-verzióját szeretné használni, frissítse őket a legújabb verzióra.
Frissítse az Azure CLI-t és az Azure Container Apps bővítményt az alábbi parancsok futtatásával:
az upgrade
az extension add -n containerapp --upgrade
Az Azure PowerShell frissítéséről az Azure PowerShell telepítése című témakörben olvashat.
Ha az Azure Container Appst a legújabb API-verzióval szeretné programozott módon kezelni, használja a felügyeleti SDK legújabb verzióit:
Container Apps-környezet
Az alábbi táblázatok a Container Apps környezeti erőforrásban gyakran használt tulajdonságokat ismertetik. A tulajdonságok teljes listájáért tekintse meg az Azure Container Apps REST API-referenciáját.
Resource
A Container Apps környezeti erőforrás a következő tulajdonságokat tartalmazza:
Property | Leírás | Adattípus | Csak olvasás |
---|---|---|---|
daprAIInstrumentationKey |
Az alkalmazás Elemzések a Dapr által használt rendszerállapot-kulcsot. | karakterlánc | Nem |
appLogsConfiguration |
A környezet naplózási konfigurációja. | Object | Nem |
peerAuthentication |
MTLS-titkosítás engedélyezése. | Object | Nem |
Példák
Az alábbi ARM-sablonrészlet egy Container Apps-környezetet helyez üzembe.
Megjegyzés:
A tárolóalkalmazás-környezetek létrehozására szolgáló parancsok nem támogatják a YAML konfigurációs bemenetét.
{
"location": "East US",
"properties": {
"daprAIConnectionString": "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://northcentralus-0.in.applicationinsights.azure.com/",
"appLogsConfiguration": {
"logAnalyticsConfiguration": {
"customerId": "string",
"sharedKey": "string"
}
},
"zoneRedundant": true,
"vnetConfiguration": {
"infrastructureSubnetId": "/subscriptions/<subscription_id>/resourceGroups/RGName/providers/Microsoft.Network/virtualNetworks/VNetName/subnets/subnetName1"
},
"customDomainConfiguration": {
"dnsSuffix": "www.my-name.com",
"certificateValue": "Y2VydA==",
"certificatePassword": "1234"
},
"workloadProfiles": [
{
"name": "My-GP-01",
"workloadProfileType": "GeneralPurpose",
"minimumCount": 3,
"maximumCount": 12
},
{
"name": "My-MO-01",
"workloadProfileType": "MemoryOptimized",
"minimumCount": 3,
"maximumCount": 6
},
{
"name": "My-CO-01",
"workloadProfileType": "ComputeOptimized",
"minimumCount": 3,
"maximumCount": 6
},
{
"name": "My-consumption-01",
"workloadProfileType": "Consumption"
}
],
"infrastructureResourceGroup": "myInfrastructureRgName"
}
}
Tárolóalkalmazás
Az alábbi táblázatok a tárolóalkalmazás-erőforrásban gyakran használt tulajdonságokat ismertetik. A tulajdonságok teljes listájáért tekintse meg az Azure Container Apps REST API-referenciáját.
Resource
A tárolóalkalmazás-erőforrás objektuma properties
a következő tulajdonságokat tartalmazza:
Property | Leírás | Adattípus | Csak olvasás |
---|---|---|---|
provisioningState |
Egy hosszú ideig futó művelet állapota, például új tároló változatának létrehozásakor. A lehetséges értékek a következők: kiépítés, kiépítés, sikertelen. Ellenőrizze, hogy az alkalmazás működik-e. | sztring | Igen |
environmentId |
A tárolóalkalmazás környezeti azonosítója. Ez egy tárolóalkalmazás létrehozásához szükséges tulajdonság. HA YAML-et használ, a környezeti azonosítót az Azure CLI-ben található lehetőséggel --environment adhatja meg. |
karakterlánc | Nem |
latestRevisionName |
A legújabb változat neve. | sztring | Igen |
latestRevisionFqdn |
A legújabb változat URL-címe. | sztring | Igen |
Az environmentId
érték a következő formában történik:
/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/environmentId/<ENVIRONMENT_NAME>
Ebben a példában az értékeket szögletes zárójelekkel körülvett <>
helyőrző jogkivonatok helyére helyezi.
properties.configuration
Az erőforrás objektuma properties.configuration
a következő tulajdonságokat tartalmazza:
Property | Leírás | Adattípus |
---|---|---|
activeRevisionsMode |
A régi változatok automatikus inaktiválásának single beállítása, és csak a legújabb változat aktív marad. multiple A beállítás lehetővé teszi több változat karbantartását. |
sztring |
secrets |
Titkos értékeket határoz meg a tárolóalkalmazásban. | object |
ingress |
Tárolóalkalmazás nyilvános akadálymentességi konfigurációját meghatározó objektum. | object |
registries |
A privát tárolóregisztrációs adatbázisok hitelesítő adataira hivatkozó konfigurációs objektum. A titkos kulcsok konfigurációs objektumára hivatkozva secretref definiált bejegyzések. |
object |
dapr |
A tárolóalkalmazás Dapr-beállításait meghatározó konfigurációs objektum. | object |
A szakasz módosításai az configuration
alkalmazás hatókörének módosításai, amelyek nem váltanak ki új változatot.
properties.template
Az erőforrás objektuma properties.template
a következő tulajdonságokat tartalmazza:
Property | Leírás | Adattípus |
---|---|---|
revisionSuffix |
Egy korrektúra rövid neve. Ennek az értéknek egyedinek kell lennie, mivel a futtatókörnyezet elutasítja a meglévő változatnév-utótagértékekkel való ütközéseket. | sztring |
containers |
Konfigurációs objektum, amely meghatározza, hogy mely tárolólemezképek szerepelnek a tárolóalkalmazásban. | object |
scale |
A tárolóalkalmazás méretezési szabályait meghatározó konfigurációs objektum. | object |
A szakasz módosításai a template
korrektúra hatókörének módosításai, amelyek új változatot aktiválnak.
Példák
Az állapotadat-mintavételekkel kapcsolatos részletekért tekintse meg az Azure Container Apps állapotmintáit.
Az alábbi példa ARM-sablonrészlet egy tárolóalkalmazást helyez üzembe.
{
"identity": {
"userAssignedIdentities": {
"/subscriptions/<subscription_id>/resourcegroups/my-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-user": {
}
},
"type": "UserAssigned"
},
"properties": {
"environmentId": "/subscriptions/<subscription_id>/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube",
"workloadProfileName": "My-GP-01",
"configuration": {
"ingress": {
"external": true,
"targetPort": 3000,
"customDomains": [
{
"name": "www.my-name.com",
"bindingType": "SniEnabled",
"certificateId": "/subscriptions/<subscription_id>/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube/certificates/my-certificate-for-my-name-dot-com"
},
{
"name": "www.my-other-name.com",
"bindingType": "SniEnabled",
"certificateId": "/subscriptions/<subscription_id>/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube/certificates/my-certificate-for-my-other-name-dot-com"
}
],
"traffic": [
{
"weight": 100,
"revisionName": "testcontainerApp0-ab1234",
"label": "production"
}
],
"ipSecurityRestrictions": [
{
"name": "Allow work IP A subnet",
"description": "Allowing all IP's within the subnet below to access containerapp",
"ipAddressRange": "192.168.1.1/32",
"action": "Allow"
},
{
"name": "Allow work IP B subnet",
"description": "Allowing all IP's within the subnet below to access containerapp",
"ipAddressRange": "192.168.1.1/8",
"action": "Allow"
}
],
"stickySessions": {
"affinity": "sticky"
},
"clientCertificateMode": "accept",
"corsPolicy": {
"allowedOrigins": [
"https://a.test.com",
"https://b.test.com"
],
"allowedMethods": [
"GET",
"POST"
],
"allowedHeaders": [
"HEADER1",
"HEADER2"
],
"exposeHeaders": [
"HEADER3",
"HEADER4"
],
"maxAge": 1234,
"allowCredentials": true
}
},
"dapr": {
"enabled": true,
"appPort": 3000,
"appProtocol": "http",
"httpReadBufferSize": 30,
"httpMaxRequestSize": 10,
"logLevel": "debug",
"enableApiLogging": true
},
"maxInactiveRevisions": 10,
"service": {
"type": "redis"
}
},
"template": {
"containers": [
{
"image": "repo/testcontainerApp0:v1",
"name": "testcontainerApp0",
"probes": [
{
"type": "Liveness",
"httpGet": {
"path": "/health",
"port": 8080,
"httpHeaders": [
{
"name": "Custom-Header",
"value": "Awesome"
}
]
},
"initialDelaySeconds": 3,
"periodSeconds": 3
}
],
"volumeMounts": [
{
"mountPath": "/myempty",
"volumeName": "myempty"
},
{
"mountPath": "/myfiles",
"volumeName": "azure-files-volume"
},
{
"mountPath": "/mysecrets",
"volumeName": "mysecrets"
}
]
}
],
"initContainers": [
{
"image": "repo/testcontainerApp0:v4",
"name": "testinitcontainerApp0",
"resources": {
"cpu": 0.2,
"memory": "100Mi"
},
"command": [
"/bin/sh"
],
"args": [
"-c",
"while true; do echo hello; sleep 10;done"
]
}
],
"scale": {
"minReplicas": 1,
"maxReplicas": 5,
"rules": [
{
"name": "httpscalingrule",
"custom": {
"type": "http",
"metadata": {
"concurrentRequests": "50"
}
}
}
]
},
"volumes": [
{
"name": "myempty",
"storageType": "EmptyDir"
},
{
"name": "azure-files-volume",
"storageType": "AzureFile",
"storageName": "myazurefiles"
},
{
"name": "mysecrets",
"storageType": "Secret",
"secrets": [
{
"secretRef": "mysecret",
"path": "mysecret.txt"
}
]
}
],
"serviceBinds": [
{
"serviceId": "/subscriptions/<subscription_id>/resourceGroups/rg/providers/Microsoft.App/containerApps/redisService",
"name": "redisService"
}
]
}
}
}
Container Apps-feladat
Az alábbi táblázatok a Container Apps feladaterőforrásban gyakran használt tulajdonságokat ismertetik. A tulajdonságok teljes listájáért tekintse meg az Azure Container Apps REST API-referenciáját.
Resource
A Container Apps-feladaterőforrás objektuma properties
a következő tulajdonságokat tartalmazza:
Property | Leírás | Adattípus | Csak olvasás |
---|---|---|---|
environmentId |
A Container Apps-feladat környezeti azonosítója. Ez a tulajdonság egy Container Apps-feladat létrehozásához szükséges. HA YAML-et használ, a környezeti azonosítót az Azure CLI-ben található lehetőséggel --environment adhatja meg. |
karakterlánc | Nem |
Az environmentId
érték a következő formában történik:
/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/environmentId/<ENVIRONMENT_NAME>
Ebben a példában az értékeket szögletes zárójelekkel körülvett <>
helyőrző jogkivonatok helyére helyezi.
properties.configuration
Az erőforrás objektuma properties.configuration
a következő tulajdonságokat tartalmazza:
Property | Leírás | Adattípus |
---|---|---|
triggerType |
A Container Apps-feladatok eseményindítójának típusa. Az egyes eseményindító-típusokhoz tartozó konkrét konfigurációt a Feladatok eseményindító-típusai című témakörben találhatja meg . | sztring |
replicaTimeout |
A Container Apps-feladatok időtúllépése másodpercben. | egész szám |
replicaRetryLimit |
A Container Apps-feladatok újrapróbálkozásának száma. | egész szám |
properties.template
Az erőforrás objektuma properties.template
a következő tulajdonságokat tartalmazza:
Property | Leírás | Adattípus |
---|---|---|
containers |
Konfigurációs objektum, amely meghatározza, hogy mely tárolólemezképek szerepelnek a feladatban. | object |
scale |
A feladat méretezési szabályait meghatározó konfigurációs objektum. | object |
Példák
Az alábbi ARM-sablonrészlet egy Container Apps-feladatot helyez üzembe.
{
"identity": {
"userAssignedIdentities": {
"/subscriptions/<subscription_id>/resourcegroups/my-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-user": {
}
},
"type": "UserAssigned"
},
"properties": {
"environmentId": "/subscriptions/<subscription_id>/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube",
"configuration": {
"replicaTimeout": 10,
"replicaRetryLimit": 10,
"manualTriggerConfig": {
"replicaCompletionCount": 1,
"parallelism": 4
},
"triggerType": "Manual"
},
"template": {
"containers": [
{
"image": "repo/testcontainerAppsJob0:v1",
"name": "testcontainerAppsJob0",
"probes": [
{
"type": "Liveness",
"httpGet": {
"path": "/health",
"port": 8080,
"httpHeaders": [
{
"name": "Custom-Header",
"value": "Awesome"
}
]
},
"initialDelaySeconds": 5,
"periodSeconds": 3
}
],
"volumeMounts": [
{
"mountPath": "/myempty",
"volumeName": "myempty"
},
{
"mountPath": "/myfiles",
"volumeName": "azure-files-volume"
},
{
"mountPath": "/mysecrets",
"volumeName": "mysecrets"
}
]
}
],
"initContainers": [
{
"image": "repo/testcontainerAppsJob0:v4",
"name": "testinitcontainerAppsJob0",
"resources": {
"cpu": 0.2,
"memory": "100Mi"
},
"command": [
"/bin/sh"
],
"args": [
"-c",
"while true; do echo hello; sleep 10;done"
]
}
],
"volumes": [
{
"name": "myempty",
"storageType": "EmptyDir"
},
{
"name": "azure-files-volume",
"storageType": "AzureFile",
"storageName": "myazurefiles"
},
{
"name": "mysecrets",
"storageType": "Secret",
"secrets": [
{
"secretRef": "mysecret",
"path": "mysecret.txt"
}
]
}
]
}
}
}