Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Container Apps işleri, sınırlı bir süre boyunca çalışan kapsayıcılı görevleri çalıştırmanızı ve ardından durdurmanızı sağlar. veri işleme, makine öğrenmesi veya isteğe bağlı işlemenin gerekli olduğu herhangi bir senaryo gibi görevleri gerçekleştirmek için işleri kullanabilirsiniz.
Kapsayıcı uygulamalar ve işler aynı ortamda çalışır ve bu sayede ağ ve günlük kaydı gibi yetenekleri paylaşabilirler.
Kapsayıcı uygulamalarını ve işlerini karşılaştırma
Azure Container Apps'te iki tür işlem kaynağı vardır: uygulamalar ve işler.
Uygulamalar sürekli çalışan hizmetlerdir. Uygulamadaki bir kapsayıcı başarısız olursa otomatik olarak yeniden başlatılır. Uygulamalara örnek olarak HTTP API'leri, web uygulamaları ve girdileri sürekli işleyen arka plan hizmetleri verilebilir.
İşler, başlayan, sınırlı bir süre boyunca çalışan ve bittiğinde duran görevlerdir. Her iş yürütümü genellikle tek bir iş birimi gerçekleştirir. İş yürütmeleri el ile, zamanlamaya göre veya olaylara yanıt olarak başlar. İşlere örnek olarak isteğe bağlı olarak çalışan toplu işlemler ve zamanlanmış görevler verilebilir.
Örnek senaryolar
Aşağıdaki tablo, uygulamalar ve işler için yaygın senaryoları karşılaştırır:
| Kapsayıcı | Hesaplama kaynağı | Notlar |
|---|---|---|
| Web içeriği ve API istekleri sunan bir HTTP sunucusu | Uygulama | Bir HTTP ölçek kuralı yapılandırın. |
| Her gece finansal raporlar oluşturan bir süreç | İş | Zamanlama iş türünü kullanın ve bir cron ifadesi yapılandırın. |
| Azure Service Bus kuyruğundan gelen iletileri işleyen sürekli çalışan bir hizmet | Uygulama | Özel bir ölçek kuralı yapılandırın. |
| Azure kuyruğundan tek bir iletiyi veya küçük bir toplu iletiyi işleyen ve ardından durduran bir iş | İş | Olay iş türünü kullanın ve kuyrukta iletiler olduğunda iş yürütmelerini tetiklemek için özel bir ölçek kuralı yapılandırın. |
| İsteğe bağlı olarak tetiklenen ve bittiğinde durdurulan bir arka plan görevi | İş | Manuel iş türünü kullanın ve yürütmeleri API kullanarak el ile veya programatik olarak başlatın. |
| Kendi sunucusunda barındırılan GitHub Actions çalıştırıcısı veya Azure Pipelines aracısı | İş | Olay iş türünü kullanın ve bir GitHub Actions veya Azure Pipelines ölçek kuralı yapılandırın. |
| Azure İşlevleri uygulaması | Uygulama | Azure İşlevleri Container Apps'e dağıtın. |
| Azure Webjobs SDK'sını kullanan olay temelli bir uygulama | Uygulama | Her olay kaynağı için bir ölçek kuralı yapılandırın. |
Kavramlar
Bir Container Apps ortamı, bir veya daha fazla container uygulaması ve işi etrafında güvenli bir sınırdır. Bazı önemli kavramlar aşağıdadır:
- Iş: İş, her iş yürütmesi için kullanılan varsayılan yapılandırmayı tanımlar. Yapılandırma, kullanılacak kapsayıcı görüntüsünü, ayrılacak kaynakları ve çalıştırılacak komutu içerir.
- İş yürütme: İş yürütme, el ile, zamanlamaya göre veya bir olaya yanıt olarak tetiklenen tek bir iş çalıştırmasıdır.
- İş çoğaltması: Tipik bir görev yürütümü, işin yapılandırması tarafından tanımlanan bir kopyayı çalıştırır. Gelişmiş senaryolarda, bir görev yürütme birden fazla çoğaltma çalıştırabilir.
İzinler
Kapsayıcı uygulaması işini başlatmak için uygun izinlere sahip olmanız gerekir. Kullanıcı hesabınıza veya hizmet sorumlunuza aşağıdaki rollerin atandığından emin olun:
- Container Apps Katkıda Bulunucu: Container uygulamaları ve işleri oluşturma ve yönetme izni verir.
- İzleme Okuyucusu (isteğe bağlı): İşler için izleme verilerini görüntülemeyi etkinleştirir.
- Özel Rol: Daha ayrıntılı izinler için aşağıdaki eylemlerle özel bir rol oluşturabilirsiniz:
- microsoft.uygulama/işler/başlat/eylem
- microsoft.app/jobs/read
- microsoft.app/jobs/execution/read
Rol ve izin atama hakkında daha fazla bilgi için bkz. Azure rol tabanlı erişim denetimi.
İş tetikleyici türleri
İşin tetikleyici türü, işin nasıl başlatileceğini belirler. Aşağıdaki tetikleyici türleri kullanılabilir:
- El ile: El ile yapılan işler isteğe bağlı olarak tetiklenir.
- Zamanlama: Zamanlanmış işler belirli zamanlarda tetiklenir ve tekrar tekrar çalıştırılabilir.
- Olay: Olay temelli işler, kuyruğa gelen bir ileti gibi olaylar tarafından tetiklenir.
El ile yapılan işler
El ile yapılan işler, Azure CLI, Azure portalı veya Azure Resource Manager API'sine yönelik bir istek aracılığıyla isteğe bağlı olarak tetiklenir.
El ile yapılan işlere örnek olarak şunlar verilebilir:
- Verileri bir sistemden diğerine geçirme gibi tek seferlik bir işleme görevi.
- Kapsayıcı uygulaması olarak çalışan bir e-ticaret sitesi, sipariş verildiğinde envanteri işlemek için bir iş yürütmesi başlatır.
El ile iş oluşturmak için iş türünü Manualkullanın.
Azure CLI kullanarak manuel iş oluşturmak için az containerapp job create komutunu kullanın. Aşağıdaki örnek, my-job adlı manuel bir işi, my-resource-group adlı bir kaynak grubunda ve my-environment adlı bir Container Apps ortamında oluşturur.
az containerapp job create \
--name "my-job" --resource-group "my-resource-group" --environment "my-environment" \
--trigger-type "Manual" \
--replica-timeout 1800 \
--replica-retry-limit 0 \
--replica-completion-count 1 \
--parallelism 1 \
--image "mcr.microsoft.com/k8se/quickstart-jobs:latest" \
--cpu "0.25" --memory "0.5Gi"
Genel bir örnek kapsayıcı görüntüsü olan mcr.microsoft.com/k8se/quickstart-jobs:latest görüntü, birkaç saniye bekleyen, konsola bir mesaj yazdıran ve sonra durdurulan bir işi çalıştırır. Özel kapsayıcı görüntüsünün kimliğini doğrulama ve kullanma hakkında bilgi için bkz. Kapsayıcılar.
Önceki komut yalnızca işi oluşturur. İş yürütmeyi başlatmak için, bkz. İsteğe bağlı iş yürütme başlatma.
Zamanlanan işler
Zamanlanmış bir iş oluşturmak için iş türünü Schedulekullanın.
Container Apps işleri zamanlamaları tanımlamak için cron ifadelerini kullanır. Dakika, saat, ayın günü, ay ve haftanın günü için beş alan içeren standart cron ifade biçimini destekler. Aşağıda cron ifadelerine bazı örnekler verilmiştir:
| İfade | Açıklama |
|---|---|
*/5 * * * * |
Her 5 dakikada bir çalışır. |
0 */2 * * * |
İki saatte bir çalışır. |
0 0 * * * |
Her gün gece yarısı çalışır. |
0 0 * * 0 |
Her Pazar gece yarısı çalışır. |
0 0 1 * * |
Her ayın ilk gününde gece yarısı çalışır. |
Zamanlanmış işlerdeki cron ifadeleri Eşgüdümlü Evrensel Saat (UTC) içinde değerlendirilir.
Azure CLI kullanarak zamanlanmış iş oluşturmak için komutunu kullanın az containerapp job create . Aşağıdaki örnek, my-job adlı bir zamanlanmış işi, my-resource-group adlı bir kaynak grubunda ve my-environment adlı bir Container Apps ortamında oluşturur.
az containerapp job create \
--name "my-job" --resource-group "my-resource-group" --environment "my-environment" \
--trigger-type "Schedule" \
--replica-timeout 1800 \
--replica-retry-limit 0 \
--parallelism 1 \
--replica-completion-count 1 \
--image "mcr.microsoft.com/k8se/quickstart-jobs:latest" \
--cpu "0.25" --memory "0.5Gi" \
--cron-expression "*/1 * * * *"
Genel bir örnek kapsayıcı görüntüsü olan mcr.microsoft.com/k8se/quickstart-jobs:latest görüntü, birkaç saniye bekleyen, konsola bir mesaj yazdıran ve sonra durdurulan bir işi çalıştırır. Özel kapsayıcı görüntüsünün kimliğini doğrulama ve kullanma hakkında bilgi için bkz. Kapsayıcılar.
Cron ifadesi */1 * * * * işi dakikada bir çalıştırır.
Olay temelli işler
Desteklenen özel ölçekleyicilerden gelen olaylar, olay odaklı işleri tetikler. Olay odaklı işlere örnek olarak şunlar verilebilir:
- Azure Service Bus, Kafka veya RabbitMQ gibi bir kuyruğa yeni bir ileti eklendiğinde çalışan bir iş.
- Bir iş akışında veya işlem hattında yeni bir iş kuyruğa alındığında çalıştırılan, şirket içinde barındırılan github actions çalıştırıcısı veya Azure DevOps aracısı.
Kapsayıcı uygulamalar ve olay odaklı işler KEDA ölçeklendiricilerini kullanır. Her ikisi de bir olay kaynağının olay hacmini ölçmek için bir yoklama aralığında ölçeklendirme kurallarını değerlendirir, ancak sonuçları kullanma şekli farklıdır.
Bir uygulamada, her kopya birimi olayları sürekli işler ve bir ölçeklendirme kuralı, talebi karşılamak adına çalıştırılacak kopyaların sayısını belirler. Olay temelli işlerde, her iş yürütmesi genellikle tek bir olayı işler ve bir ölçeklendirme kuralı çalıştırılacak iş yürütme sayısını belirler.
Her olay ayrılmış kaynaklara sahip kapsayıcının yeni bir örneğini gerektirdiğinde veya uzun süre çalışması gerektiğinde işleri kullanın. Olay odaklı işler kavramsal olarak KEDA ölçeklendirme işlerine benzer.
Olay temelli bir iş oluşturmak için iş türünü Eventkullanın.
Azure CLI kullanarak olay odaklı bir iş oluşturmak için komutunu kullanın az containerapp job create . Aşağıdaki örnek, my-job adlı bir olayı tetikleyen işi, my-resource-group adlı bir kaynak grubunda ve my-environment adlı bir Container Apps ortamında oluşturur:
az containerapp job create \
--name "my-job" --resource-group "my-resource-group" --environment "my-environment" \
--trigger-type "Event" \
--replica-timeout 1800 \
--image "docker.io/myuser/my-event-driven-job:latest" \
--cpu "0.25" --memory "0.5Gi" \
--min-executions "0" \
--max-executions "10" \
--scale-rule-name "queue" \
--scale-rule-type "azure-queue" \
--scale-rule-metadata "accountName=mystorage" "queueName=myqueue" "queueLength=1" \
--scale-rule-auth "connection=connection-string-secret" \
--secrets "connection-string-secret=<QUEUE_CONNECTION_STRING>"
Örnekte bir Azure Depolama kuyruğu ölçekleme kuralı yapılandırılır.
Eksiksiz bir öğretici için bkz Olay temelli bir işi dağıtma.
Talep üzerine bir iş yürütmesi başlatma.
Herhangi bir iş türü için, talep üzerine bir iş yürütme başlatabilirsiniz.
Azure CLI kullanarak bir iş yürütme başlatmak için komutunu kullanın az containerapp job start . Aşağıdaki örnek my-job adlı bir işin my-resource-group adlı kaynak grubunda yürütülmesini başlatır.
az containerapp job start --name "my-job" --resource-group "my-resource-group"
Bir iş yürütmeyi başlattığınızda, işin yapılandırmasını geçersiz kılmayı seçebilirsiniz. Örneğin, aynı işi farklı girişlerle çalıştırmak için bir ortam değişkenini veya başlangıç komutunu geçersiz kılabilirsiniz. Geçersiz kılınan yapılandırma yalnızca mevcut çalışma için kullanılır ve işin yapılandırmasını değiştirmez.
Önemli
Bir yapılandırmayı geçersiz kıldığınızda, işin şablon yapılandırmasının tamamı yeni yapılandırmayla değiştirilir. Yeni yapılandırmanın tüm gerekli ayarları içerdiğinden emin olun.
Yürütmeyi başlattığınızda işin yapılandırmasını geçersiz kılmak için komutunu kullanın az containerapp job start ve yürütme için kullanılacak şablonu içeren bir YAML dosyası geçirin. Aşağıdaki örnek, my-job adlı bir kaynak grubunda my-resource-group adlı bir işin yürütülmesine başlanır.
komutuyla az containerapp job show işin geçerli yapılandırmasını alın ve şablonu adlı my-job-template.yamlbir dosyaya kaydedin:
az containerapp job show --name "my-job" --resource-group "my-resource-group" --query "properties.template" --output yaml > my-job-template.yaml
--query "properties.template" seçeneği yalnızca işin şablon yapılandırmasını döndürür.
my-job-template.yaml dosyasını düzenleyerek görevin yapılandırmasını geçersiz kılın. Örneğin, ortam değişkenlerini geçersiz kılmak için bölümünü değiştirin env :
containers:
- name: print-hello
image: ubuntu
resources:
cpu: 1
memory: 2Gi
env:
- name: MY_NAME
value: Azure Container Apps jobs
args:
- /bin/bash
- -c
- echo "Hello, $MY_NAME!"
şablonu kullanarak işi başlatın:
az containerapp job start --name "my-job" --resource-group "my-resource-group" \
--yaml my-job-template.yaml
İş yürütme geçmişini alma
Her bir Container Apps görevi, son görev yürütmelerinin geçmişini tutar.
Azure CLI kullanarak iş yürütmelerinin durumlarını almak için komutunu kullanın az containerapp job execution list . Aşağıdaki örnek, adlı my-jobkaynak grubunda adlı my-resource-group bir işin en son yürütülmesinin durumunu döndürür:
az containerapp job execution list --name "my-job" --resource-group "my-resource-group"
Zamanlanmış ve olay tabanlı işler için yürütme geçmişi en son 100 başarılı ve başarısız iş yürütmesi ile sınırlıdır.
bir işin tüm yürütmelerini listelemek veya bir işten ayrıntılı çıktı almak için, Container Apps ortamınız için yapılandırılan günlük sağlayıcısını sorgulayın.
Gelişmiş iş yapılandırması
Container Apps işleri kapsayıcı ayarları, yeniden denemeler, zaman aşımları ve paralellik gibi gelişmiş yapılandırma seçeneklerini destekler.
Kapsayıcı ayarları
Kapsayıcı ayarları, bir iş yürütmesinin her çoğaltmasında çalıştırılacak kapsayıcıları tanımlar. Ortam değişkenlerini, gizli dizileri ve kaynak sınırlarını içerir. Daha fazla bilgi için bkz . Kapsayıcılar. Tek bir işte birden çok kapsayıcı çalıştırmak gelişmiş bir senaryodur. Çoğu iş tek bir kapsayıcı çalıştırır.
İş ayarları
Aşağıdaki tablo yapılandırabileceğiniz iş ayarlarını içerir:
| Ayar | Azure Resource Manager özelliği | CLI parametresi | Açıklama |
|---|---|---|---|
| İş türü | triggerType |
--trigger-type |
İşin türü (Manual, Scheduleveya Event). |
| Çoğaltma zaman aşımı | replicaTimeout |
--replica-timeout |
Saniye cinsinden bir replikayı tamamlanmasını beklemek için maksimum süre. |
| Yoklama aralığı | pollingInterval |
--polling-interval |
Olayları yoklama arasında beklenmesi gereken süre, saniye olarak belirtilmiştir. Varsayılan değer 30 saniyedir. |
| Yedek yeniden deneme sınırı | replicaRetryLimit |
--replica-retry-limit |
Başarısız olmuş bir çoğaltmayı yeniden deneme azami sayısı. Çoğaltmayı yeniden denemeden başarısız olması için değeri 0 olarak ayarlayın. Ayarın süresi, tüm replicaTimeout yeniden denemeler gerçekleşmeden önce dolarsa öncelik ona verilir. |
| Paralellik | parallelism |
--parallelism |
Yürütme başına çalıştırılacak replika sayısı. Çoğu iş için değerini olarak 1ayarlayın. |
| Replika tamamlanma sayısı | replicaCompletionCount |
--replica-completion-count |
Yürütmenin başarılı olabilmesi için başarıyla tamamlanması gereken kopya sayısı. Çoğu paralelliğe eşit veya ondan küçük olmalıdır. Çoğu iş için değerini olarak 1ayarlayın. |
Örnek
Aşağıdaki örnek, gelişmiş yapılandırma seçeneklerine sahip bir iş oluşturur:
az containerapp job create \
--name "my-job" --resource-group "my-resource-group" --environment "my-environment" \
--trigger-type "Schedule" \
--replica-timeout 1800 --replica-retry-limit 3 --replica-completion-count 5 --parallelism 5 \
--image "myregistry.azurecr.io/quickstart-jobs:latest" \
--cpu "0.25" --memory "0.5Gi" \
--command "/startup.sh" \
--env-vars "MY_ENV_VAR=my-value" \
--cron-expression "0 0 * * *" \
--registry-server "myregistry.azurecr.io" \
--registry-username "myregistry" \
--registry-password "myregistrypassword"
İş ağı ve uygulamadan uygulamaya iletişim
Bir iş podu başlatıldığında, yan kapsayıcılar (Envoy proxy'si gibi) ana iş kapsayıcısı yürütülmeye başlamadan önce hazır hale getirilmesi garanti edilir. Bu, işin başlangıcında yapılan uygulamadan uygulamaya çağrıların bağlantı hatası olmadan başarılı olmasını sağlar.
Uyarı
İşiniz başlangıçta diğer kapsayıcı uygulamalara çağrılar yapıyorsa, başlangıçtaki "sidecar" hazır olma durumu için yeniden deneme mantığı eklemeniz gerekmez. Platform bunu otomatik olarak işler.
İş kısıtlamaları
Aşağıdaki özellikler desteklenmez:
- Dapr
- Giriş ve özel etki alanları ve SSL sertifikaları gibi ilgili özellikler