Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Container Apps-distributioner drivs av en ARM-mall (Azure Resource Manager). Vissa CLI-kommandon för Container Apps stöder också användning av en YAML-mall för att ange en resurs.
Den här artikeln innehåller exempel på ARM- och YAML-konfigurationer för resurser för containerappar som används ofta. En fullständig lista över Container Apps-resurser finns i Azure Resource Manager-mallar för Container Apps. Koden som anges i den här artikeln är endast i exempelsyfte. Fullständig schema- och typinformation finns i JSON-definitionerna för din nödvändiga API-version. För information om API-versioner, se API-versioner.
Container Apps-miljö
I följande tabeller beskrivs vanliga egenskaper som är tillgängliga i miljöresursen Container Apps. En fullständig lista över egenskaper finns i REST API-referensen för Azure Container Apps.
Resurs
En Container Apps-miljöresurs innehåller följande egenskaper:
| Fastighet | beskrivning | Datatyp | Skrivskyddad |
|---|---|---|---|
daprAIInstrumentationKey |
Application Insights-instrumentationsnyckeln som används av Dapr. | sträng | Nej |
appLogsConfiguration |
Miljöns loggningskonfiguration. | Objekt | Nej |
peerAuthentication |
Så här aktiverar du mTLS-kryptering. | Objekt | Nej |
Exempel
Följande exempel på ARM-mallfragment distribuerar en Container Apps-miljö.
Kommentar
Kommandona för att skapa containerappmiljöer stöder inte YAML-konfigurationsindata.
{
"location": "East US",
"properties": {
"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"
}
}
Containerapp
I följande tabeller beskrivs de vanligaste egenskaperna i containerappresursen. En fullständig lista över egenskaper finns i REST API-referensen för Azure Container Apps.
Resurs
En konfiguration av containerappen innehåller en toppnivåegenskap kind , som är en valfri sträng som används för att skapa antingen en Functions- eller arbetsflödesapp.
| Fastighet | beskrivning | Datatyp | Skrivskyddad |
|---|---|---|---|
kind |
Den typ av app som ska skapas.
functionapp Stöder för närvarande och workflowapp. Ytterligare värden kan stödjas i framtiden. Om den utelämnas skapas en standardcontainerapp som standard. |
sträng | Nej |
Objektet för en containerappresurs properties innehåller följande egenskaper:
| Fastighet | beskrivning | Datatyp | Skrivskyddad |
|---|---|---|---|
provisioningState |
Tillståndet för en tidskrävande åtgärd, till exempel när ny containerrevision skapas. Möjliga värden är: etablering, etablerad, misslyckad. Kontrollera om appen är igång. | sträng | Ja |
environmentId |
Miljö-ID för din containerapp. Det här är en obligatorisk egenskap för att skapa en containerapp. Om du använder YAML kan du ange miljö-ID:t med hjälp av --environment alternativet i Azure CLI i stället. |
sträng | Nej |
latestRevisionName |
Namnet på den senaste revisionen. | sträng | Ja |
latestRevisionFqdn |
Den senaste revisionens URL. | sträng | Ja |
Värdet environmentId har följande formulär:
/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/environmentId/<ENVIRONMENT_NAME>
I det här exemplet placerar du dina värden i stället för platshållartoken omgivna av <> hakparenteser.
properties.configuration
Ett resursobjekt properties.configuration innehåller följande egenskaper:
| Fastighet | beskrivning | Datatyp |
|---|---|---|
activeRevisionsMode |
Inställningen inaktiverar single automatiskt gamla revisioner och håller bara den senaste revisionen aktiv. Med inställningen kan multiple du underhålla flera revisioner. |
sträng |
secrets |
Definierar hemliga värden i containerappen. | objekt |
ingress |
Objekt som definierar offentlig tillgänglighetskonfiguration för en containerapp. | objekt |
registries |
Konfigurationsobjekt som refererar till autentiseringsuppgifter för privata containerregister. Poster som definierats med secretref referens till konfigurationsobjektet hemligheter. |
objekt |
dapr |
Konfigurationsobjekt som definierar Dapr-inställningarna för containerappen. | objekt |
Ändringar som görs i configuration avsnittet är ändringar i programomfattningen som inte utlöser en ny revision.
properties.template
Ett resursobjekt properties.template innehåller följande egenskaper:
| Fastighet | beskrivning | Datatyp |
|---|---|---|
revisionSuffix |
Ett eget namn för en revision. Det här värdet måste vara unikt eftersom körningen avvisar eventuella konflikter med befintliga suffixvärden för revisionsnamn. | sträng |
containers |
Konfigurationsobjekt som definierar vilka containeravbildningar som ingår i containerappen. | objekt |
scale |
Konfigurationsobjekt som definierar skalningsregler för containerappen. | objekt |
Ändringar som görs i template avsnittet är ändringar i revisionsomfattningen, vilket utlöser en ny revision.
Exempel
Mer information om hälsoavsökningar finns i Hälsoavsökningar i Azure Container Apps.
Följande exempel på ARM-mallfragment distribuerar en containerapp.
{
"identity": {
"userAssignedIdentities": {
"/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_NAME>": {}
},
"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.contoso.com",
"https://b.contoso.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,
"appHealth": {
"enabled": true,
"path": "/health",
"probeIntervalSeconds": 3,
"probeTimeoutMilliseconds": 1000,
"threshold": 3
},
"maxConcurrency": 10
},
"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"
}
],
"env": [
{
"name": "non-secret-env-var",
"value": "non-secret env var value"
},
{
"name": "secret-env-var",
"secretRef": "mysecret"
}
]
}
],
"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"
],
"env": [
{
"name": "non-secret-env-var",
"value": "non-secret env var value"
},
{
"name": "secret-env-var",
"secretRef": "mysecret"
}
]
}
],
"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"
}
]
}
}
}
Följande exempel på ARM-mallexempel visar hur du distribuerar en Azure Functions-app i Container Apps.
{
"kind": "functionapp",
"identity": {
"userAssignedIdentities": {
"/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_NAME>": {}
},
"type": "UserAssigned"
},
"properties": {
// same as regular container app properties
}
}
Container Apps-jobb
I följande tabeller beskrivs de vanliga egenskaperna i jobbresursen Container Apps. En fullständig lista över egenskaper finns i REST API-referensen för Azure Container Apps.
Resurs
Objektet för en Container Apps-jobbresurs properties innehåller följande egenskaper:
| Fastighet | beskrivning | Datatyp | Skrivskyddad |
|---|---|---|---|
environmentId |
Miljö-ID:t för ditt Container Apps-jobb. Den här egenskapen krävs för att skapa ett Container Apps-jobb. Om du använder YAML kan du ange miljö-ID:t med hjälp av --environment alternativet i Azure CLI i stället. |
sträng | Nej |
Värdet environmentId har följande formulär:
/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/environmentId/<ENVIRONMENT_NAME>
I det här exemplet placerar du dina värden i stället för platshållartoken omgivna av <> hakparenteser.
properties.configuration
Ett resursobjekt properties.configuration innehåller följande egenskaper:
| Fastighet | beskrivning | Datatyp |
|---|---|---|
triggerType |
Typen av utlösare för ett Container Apps-jobb. Specifik konfiguration för varje utlösartyp finns i Jobbutlösartyper | sträng |
replicaTimeout |
Tidsgränsen i sekunder för ett Container Apps-jobb. | heltal |
replicaRetryLimit |
Antal gånger som ett Container Apps-jobb ska försöka igen. | heltal |
properties.template
Ett resursobjekt properties.template innehåller följande egenskaper:
| Fastighet | beskrivning | Datatyp |
|---|---|---|
containers |
Konfigurationsobjekt som definierar vilka containeravbildningar som ingår i jobbet. | objekt |
scale |
Konfigurationsobjekt som definierar skalningsregler för jobbet. | objekt |
Exempel
I följande exempel distribuerar ARM-mallfragmentet ett Container Apps-jobb.
{
"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"
}
]
}
]
}
}
}