Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Azure Container Apps dağıtımları bir Azure Resource Manager (ARM) şablonuyla desteklenir. Bazı Container Apps CLI komutları, kaynak belirtmek için YAML şablonu kullanmayı da destekler.
Bu makale, sık kullanılan Container Apps kaynakları için ARM ve YAML yapılandırmalarının örneklerini içerir. Container Apps kaynaklarının tam listesi için bkz . Container Apps için Azure Resource Manager şablonları. Bu makalede listelenen kod yalnızca örnek amaçlıdır. Tam şema ve tür bilgileri için gerekli API sürümünüz için JSON tanımlarına bakın.
Azure Container Apps için en son yönetim API'sinin sürümleri şunlardır:
2024-03-01
(kararlı)2024-10-02-preview
(Önizleme)API sürümleri arasındaki farklar hakkında daha fazla bilgi edinmek için bkz . değişiklik günlüğünü Microsoft.App.
ARM veya Bicep'te belirli bir API sürümünü kullanmak için şablonlarınızda başvuruda bulunan sürümü güncelleştirin. Azure CLI veya Azure PowerShell'de en son API sürümünü kullanmak için bunları en son sürüme güncelleştirin.
Aşağıdaki komutları çalıştırarak Azure CLI'yi ve Azure Container Apps uzantısını güncelleştirin:
az upgrade
az extension add -n containerapp --upgrade
Azure PowerShell'i güncelleştirmek için bkz . Azure PowerShell'i yükleme.
Azure Container Apps'i en son API sürümüyle program aracılığıyla yönetmek için yönetim SDK'sının en son sürümlerini kullanın:
Aşağıdaki tablolarda, Container Apps ortam kaynağında yaygın olarak kullanılan özellikler açıklanmaktadır. Özelliklerin tam listesi için bkz . Azure Container Apps REST API başvurusu.
Container Apps ortam kaynağı aşağıdaki özellikleri içerir:
Özellik | Açıklama | Veri türü | Salt Okunur |
---|---|---|---|
daprAIInstrumentationKey |
Dapr tarafından kullanılan Application Insights izleme anahtarı. | Dize | Hayır |
appLogsConfiguration |
Ortamın günlük yapılandırması. | Object | Hayır |
peerAuthentication |
mTLS şifrelemesini etkinleştirme. | Object | Hayır |
Aşağıdaki örnek ARM şablonu parçacığı bir Container Apps ortamı dağıtır.
Not
Kapsayıcı uygulaması ortamları oluşturma komutları YAML yapılandırma girişini desteklemez.
{
"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"
}
}
Aşağıdaki tablolarda kapsayıcı uygulaması kaynağında yaygın olarak kullanılan özellikler açıklanmaktadır. Özelliklerin tam listesi için bkz . Azure Container Apps REST API başvurusu.
Kapsayıcı uygulaması kaynağının properties
nesnesi aşağıdaki özellikleri içerir:
Özellik | Açıklama | Veri türü | Salt Okunur |
---|---|---|---|
provisioningState |
Uzun süre çalışan bir işlemin durumu, örneğin yeni kapsayıcı düzeltmesi oluşturulduğunda. Olası değerler şunlardır: sağlama, sağlandı, başarısız. Uygulamanın çalışır durumda olup olmadığını denetleyin. | string | Yes |
environmentId |
Kapsayıcı uygulamanızın ortam kimliği. Bu, kapsayıcı uygulaması oluşturmak için gerekli bir özelliktir. YAML kullanıyorsanız, bunun yerine Azure CLI'daki seçeneği kullanarak --environment ortam kimliğini belirtebilirsiniz. |
Dize | Hayır |
latestRevisionName |
En son düzeltmenin adı. | string | Yes |
latestRevisionFqdn |
En son düzeltmenin URL'si. | string | Yes |
Değer environmentId
aşağıdaki biçimi alır:
/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/environmentId/<ENVIRONMENT_NAME>
Bu örnekte, değerlerinizi köşeli ayraçlarla çevrili <>
yer tutucu belirteçlerin yerine koyarsınız.
Kaynağın properties.configuration
nesnesi aşağıdaki özellikleri içerir:
Özellik | Açıklama | Veri türü |
---|---|---|
activeRevisionsMode |
ayarı single eski düzeltmeleri otomatik olarak devre dışı bırakır ve yalnızca en son düzeltmeyi etkin tutar. ayarı multiple , birden çok düzeltmeyi korumanıza olanak tanır. |
Dize |
secrets |
Kapsayıcı uygulamanızdaki gizli dizi değerlerini tanımlar. | nesne |
ingress |
Kapsayıcı uygulamasının genel erişilebilirlik yapılandırmasını tanımlayan nesne. | nesne |
registries |
Özel kapsayıcı kayıt defterleri için kimlik bilgilerine başvuran yapılandırma nesnesi. ile secretref tanımlanan girdiler gizli dizi yapılandırma nesnesine başvurur. |
nesne |
dapr |
Kapsayıcı uygulaması için Dapr ayarlarını tanımlayan yapılandırma nesnesi. | nesne |
Bölümünde yapılan configuration
değişiklikler uygulama kapsamı değişiklikleridir ve yeni bir düzeltme tetiklemez.
Kaynağın properties.template
nesnesi aşağıdaki özellikleri içerir:
Özellik | Açıklama | Veri türü |
---|---|---|
revisionSuffix |
Düzeltme için kolay ad. Çalışma zamanı var olan düzeltme adı soneki değerleriyle çakışmaları reddettiği için bu değer benzersiz olmalıdır. | Dize |
containers |
Kapsayıcı uygulamasına hangi kapsayıcı görüntülerinin dahil olduğunu tanımlayan yapılandırma nesnesi. | nesne |
scale |
Kapsayıcı uygulaması için ölçek kurallarını tanımlayan yapılandırma nesnesi. | nesne |
bölümünde yapılan template
değişiklikler, yeni bir düzeltmeyi tetikleyen düzeltme kapsamı değişiklikleridir.
Sistem durumu yoklamaları hakkında ayrıntılı bilgi için bkz. Azure Container Apps'te sistem durumu yoklamaları.
Aşağıdaki örnek ARM şablonu parçacığı bir kapsayıcı uygulaması dağıtır.
{
"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"
}
],
"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"
}
]
}
}
}
Aşağıdaki tablolarda, Container Apps iş kaynağında yaygın olarak kullanılan özellikler açıklanmaktadır. Özelliklerin tam listesi için bkz . Azure Container Apps REST API başvurusu.
Container Apps iş kaynağının properties
nesnesi aşağıdaki özellikleri içerir:
Özellik | Açıklama | Veri türü | Salt Okunur |
---|---|---|---|
environmentId |
Container Apps işinizin ortam kimliği. Bu özellik bir Container Apps işi oluşturmak için gereklidir. YAML kullanıyorsanız, bunun yerine Azure CLI'daki seçeneği kullanarak --environment ortam kimliğini belirtebilirsiniz. |
Dize | Hayır |
Değer environmentId
aşağıdaki biçimi alır:
/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/environmentId/<ENVIRONMENT_NAME>
Bu örnekte, değerlerinizi köşeli ayraçlarla çevrili <>
yer tutucu belirteçlerin yerine koyarsınız.
Kaynağın properties.configuration
nesnesi aşağıdaki özellikleri içerir:
Özellik | Açıklama | Veri türü |
---|---|---|
triggerType |
Container Apps işinin tetikleyici türü. Her tetikleyici türü için belirli bir yapılandırma için bkz . İşler tetikleyici türleri | Dize |
replicaTimeout |
Bir Container Apps işi için saniyeler içinde zaman aşımı. | integer |
replicaRetryLimit |
Container Apps işini yeniden deneme sayısı. | integer |
Kaynağın properties.template
nesnesi aşağıdaki özellikleri içerir:
Özellik | Açıklama | Veri türü |
---|---|---|
containers |
İşe hangi kapsayıcı görüntülerinin dahil olduğunu tanımlayan yapılandırma nesnesi. | nesne |
scale |
İş için ölçek kurallarını tanımlayan yapılandırma nesnesi. | nesne |
Aşağıdaki örnek ARM şablonu parçacığı bir Container Apps işi dağıtır.
{
"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"
}
]
}
]
}
}
}
Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolun