Aracılığıyla paylaş


Öğretici: Azure Container Apps işleri ile şirket içinde barındırılan CI/CD çalıştırıcılarını ve aracılarını dağıtma

GitHub Actions ve Azure Pipelines, şirket içinde barındırılan çalıştırıcılar ve aracılarla CI/CD iş akışlarını çalıştırmanıza olanak tanır. Olay odaklı Azure Container Apps işlerini kullanarak şirket içinde barındırılan çalıştırıcıları ve aracıları çalıştırabilirsiniz.

Şirket içinde barındırılan çalıştırıcılar, bulutta barındırılan bir çalıştırıcı tarafından kullanılamayen yerel kaynaklara veya araçlara erişim gerektiren iş akışlarını çalıştırmanız gerektiğinde kullanışlıdır. Örneğin, bir Container Apps işinde şirket içinde barındırılan bir çalıştırıcı, iş akışınızın işin sanal ağı içinde bulunan ve bulutta barındırılan bir çalıştırıcı tarafından erişilmeyen kaynaklara erişmesine olanak tanır.

Olay odaklı işler olarak şirket içinde barındırılan çalıştırıcıları çalıştırmak, Azure Container Apps'in sunucusuz doğasından yararlanmanızı sağlar. İş akışı tetiklendiğinde işler otomatik olarak yürütülür ve iş tamamlandığında çıkış yapılır.

Yalnızca işin çalıştığı süre için ödeme alırsınız.

Bu öğreticide GitHub Actions çalıştırıcılarını olay odaklı Container Apps işi olarak çalıştırmayı öğreneceksiniz.

  • Şirket içinde barındırılan çalıştırıcınızı dağıtmak için bir Container Apps ortamı oluşturma
  • Şirket içinde barındırılan çalıştırıcı kullanan bir iş akışını çalıştırmak için GitHub deposu oluşturma
  • GitHub Actions çalıştırıcısı çalıştıran bir kapsayıcı görüntüsü oluşturma
  • Çalıştırıcıyı Container Apps ortamına iş olarak dağıtma
  • Şirket içinde barındırılan çalıştırıcıyı kullanan bir iş akışı oluşturun ve çalıştığını doğrulayın

Önemli

Şirket içinde barındırılan koşucular yalnızca özel depolar için önerilir. Bunları genel depolarla kullanmak, şirket içinde barındırılan çalıştırıcınızda tehlikeli kodun yürütülmesine izin verebilir. Daha fazla bilgi için bkz . Şirket içinde barındırılan çalıştırıcı güvenliği.

Bu öğreticide Azure Pipelines aracılarını olay odaklı Container Apps işi olarak çalıştırmayı öğreneceksiniz.

  • Şirket içinde barındırılan aracınızı dağıtmak için bir Container Apps ortamı oluşturma
  • Azure DevOps kuruluşu ve projesi oluşturma
  • Azure Pipelines aracısı çalıştıran bir kapsayıcı görüntüsü oluşturma
  • Container Apps ortamında yer tutucu aracı oluşturmak için el ile iş kullanma
  • Aracıyı Container Apps ortamına iş olarak dağıtma
  • Şirket içinde barındırılan aracıyı kullanan bir işlem hattı oluşturun ve çalıştığını doğrulayın

Önemli

Şirket içinde barındırılan aracılar yalnızca özel projeler için önerilir. Bunları genel projelerle kullanmak, şirket içinde barındırılan aracınızda tehlikeli kodun yürütülmesine izin verebilir. Daha fazla bilgi için bkz . Şirket içinde barındırılan aracı güvenliği.

Not

Kapsayıcı uygulamaları ve işleri, Docker'ın kapsayıcılarda çalıştırılmasını desteklemez. İş akışlarınızda Docker komutlarını kullanan tüm adımlar, Container Apps işinde şirket içinde barındırılan bir çalıştırıcıda veya aracıda çalıştırıldığında başarısız olur.

Önkoşullar

  • Azure DevOps kuruluşu: Etkin aboneliği olan bir DevOps kuruluşunuz yoksa ücretsiz olarak oluşturabilirsiniz.

Sınırlama listesi için iş kısıtlamalarına bakın.

Ayarlama

CLI'dan Azure'da oturum açmak için aşağıdaki komutu çalıştırın ve istemleri izleyerek kimlik doğrulama işlemini tamamlayın.

az login

CLI'nın en son sürümünü çalıştırdığınızdan emin olmak için yükseltme komutunu çalıştırın.

az upgrade

Ardından CLI için Azure Container Apps uzantısını yükleyin veya güncelleştirin.

az extension add --name containerapp --upgrade

Geçerli uzantı veya modül yüklendikten sonra ve Microsoft.OperationalInsights ad alanlarını kaydedinMicrosoft.App.

Not

Azure Container Apps kaynakları ad alanından Microsoft.Web ad alanına Microsoft.App geçirildi. Daha fazla ayrıntı için Microsoft.Web'den Mart 2022'de Microsoft.App ad alanı geçişi bölümüne bakın.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Ortam değişkenlerini oluşturma

Azure CLI kurulumunuz tamamlandıktan sonra bu makalenin tamamında kullanılan ortam değişkenlerini tanımlayabilirsiniz.

RESOURCE_GROUP="jobs-sample"
LOCATION="northcentralus"
ENVIRONMENT="env-jobs-sample"
JOB_NAME="github-actions-runner-job"
RESOURCE_GROUP="jobs-sample"
LOCATION="northcentralus"
ENVIRONMENT="env-jobs-sample"
JOB_NAME="azure-pipelines-agent-job"
PLACEHOLDER_JOB_NAME="placeholder-agent-job"

Container Apps ortamı oluşturma

Azure Container Apps ortamı, aynı ağı paylaşabilmeleri ve birbirleriyle iletişim kurabilmeleri için kapsayıcı uygulamaları ve işleri çevresinde güvenli bir sınır işlevi görür.

Not

Mevcut bir sanal ağ ile tümleştirilmiş bir Container Apps ortamı oluşturmak için bkz . İç Azure Container Apps ortamına sanal ağ sağlama.

  1. Aşağıdaki komutu kullanarak bir kaynak grubu oluşturun.

    az group create \
        --name "$RESOURCE_GROUP" \
        --location "$LOCATION"
    
  2. Aşağıdaki komutu kullanarak Container Apps ortamını oluşturun.

    az containerapp env create \
        --name "$ENVIRONMENT" \
        --resource-group "$RESOURCE_GROUP" \
        --location "$LOCATION"
    

İş akışını çalıştırmak için GitHub deposu oluşturma

bir iş akışını yürütmek için iş akışı tanımını içeren bir GitHub deposu oluşturmanız gerekir.

  1. GitHub'a gidin ve oturum açın.

  2. Aşağıdaki değerleri girerek yeni bir depo oluşturun.

    Ayar Value
    Sahip GitHub kullanıcı adınızı seçin.
    Depo adı Deponuz için bir ad girin.
    Görünürlük Özel’i seçin.
    Bu deposunu ile başlatın BENİOKU dosyası ekle'yi seçin.

    Kalan değerleri varsayılan seçimleri olarak bırakın.

  3. Create repository (Depo oluştur) öğesine tıklayın.

  4. Yeni deponuzda Eylemler'i seçin.

  5. Basit iş akışı şablonunu arayın ve Yapılandır'ı seçin.

  6. İş akışını deponuza eklemek için Değişiklikleri işle'yi seçin.

İş akışı GitHub tarafından barındırılan ubuntu-latest çalıştırıcıda çalışır ve konsola bir ileti yazdırır. Daha sonra GitHub'da barındırılan çalıştırıcıyı şirket içinde barındırılan bir çalıştırıcıyla değiştirirsiniz.

GitHub kişisel erişim belirteci alma

Şirket içinde barındırılan bir çalıştırıcı çalıştırmak için GitHub'da bir kişisel erişim belirteci (PAT) oluşturmanız gerekir. Bir çalıştırıcı her başlatıldığında PAT, çalıştırıcıyı GitHub'a kaydetmek üzere bir belirteç oluşturmak için kullanılır. PAT ayrıca GitHub Actions çalıştırıcı ölçek kuralı tarafından deponun iş akışı kuyruğunun izlenmesi ve gerektiğinde çalıştırıcıların başlatılması için kullanılır.

  1. GitHub'da sağ üst köşedeki profil resminizi seçin ve Ayarlar seçin.

  2. Geliştirici ayarları'nı seçin.

  3. Kişisel erişim belirteçleri'nin altında Ayrıntılı belirteçler'i seçin.

  4. Yeni belirteç oluştur'a tıklayın.

  5. Yeni ayrıntılı kişisel erişim belirteci ekranında aşağıdaki değerleri girin.

    Ayar Value
    Belirteç adı Belirteciniz için bir ad girin.
    Süre Sonu 30 gün seçin.
    Depo erişimi Yalnızca depoları seçin'i seçin ve oluşturduğunuz depoyu seçin.

    Depo izinleri için aşağıdaki değerleri girin.

    Ayar Value
    Eylemler Salt okunur'a tıklayın.
    Yönetim Oku ve yaz'ı seçin.
    Meta veri Salt okunur'a tıklayın.
  6. Belirteç oluştur'a tıklayın.

  7. Belirteç değerini kopyalayın.

  8. Daha sonra çalıştırıcıyı ve ölçek kuralını yapılandırmak için kullanılan değişkenleri tanımlayın.

    GITHUB_PAT="<GITHUB_PAT>"
    REPO_OWNER="<REPO_OWNER>"
    REPO_NAME="<REPO_NAME>"
    

    Yer tutucuları aşağıdaki değerlerle değiştirin:

    Yer tutucu Değer
    <GITHUB_PAT> Oluşturduğunuz GitHub PAT.
    <REPO_OWNER> Daha önce oluşturduğunuz deponun sahibi. Bu değer genellikle GitHub kullanıcı adınızdır.
    <REPO_NAME> Daha önce oluşturduğunuz deponun adı. Bu değer, Depo adı alanına girdiğiniz adla aynıdır.

GitHub Actions çalıştırıcı kapsayıcı görüntüsünü oluşturma

Şirket içinde barındırılan bir çalıştırıcı oluşturmak için çalıştırıcıyı yürüten bir kapsayıcı görüntüsü oluşturmanız gerekir. Bu bölümde kapsayıcı görüntüsünü derleyip bir kapsayıcı kayıt defterine gönderirsiniz.

Not

Bu öğreticide oluşturduğunuz görüntü, Container Apps işi olarak çalışmaya uygun, şirket içinde barındırılan temel bir çalıştırıcı içerir. İş akışlarınızın gerektirdiği ek araçları veya bağımlılıkları içerecek şekilde özelleştirebilirsiniz.

  1. Kapsayıcı görüntünüz ve kayıt defteriniz için bir ad tanımlayın.

    CONTAINER_IMAGE_NAME="github-actions-runner:1.0"
    CONTAINER_REGISTRY_NAME="<CONTAINER_REGISTRY_NAME>"
    

    değerini kapsayıcı kayıt defteri oluşturmak için benzersiz bir adla değiştirin <CONTAINER_REGISTRY_NAME> . Kapsayıcı kayıt defteri adları Azure içinde benzersiz olmalı ve yalnızca sayı ve küçük harf içeren 5 ila 50 karakter uzunluğunda olmalıdır.

  2. Kapsayıcı kayıt defteri oluşturun.

    az acr create \
        --name "$CONTAINER_REGISTRY_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --location "$LOCATION" \
        --sku Basic \
        --admin-enabled true
    
  3. Çalıştırıcı görüntüsünü oluşturmaya yönelik Dockerfile, GitHub'da kullanılabilir. Depoyu kopyalamak ve komutunu kullanarak az acr build bulutta kapsayıcı görüntüsünü oluşturmak için aşağıdaki komutu çalıştırın.

    az acr build \
        --registry "$CONTAINER_REGISTRY_NAME" \
        --image "$CONTAINER_IMAGE_NAME" \
        --file "Dockerfile.github" \
        "https://github.com/Azure-Samples/container-apps-ci-cd-runner-tutorial.git"
    

    Görüntü artık kapsayıcı kayıt defterinde kullanılabilir.

Şirket içinde barındırılan çalıştırıcıyı iş olarak dağıtma

Artık kapsayıcı görüntüsünü kullanmak için kullanan bir iş oluşturabilirsiniz. Bu bölümde, şirket içinde barındırılan çalıştırıcıyı yürüten ve daha önce oluşturduğunuz PAT'yi kullanarak GitHub ile kimlik doğrulaması yapan bir iş oluşturacaksınız. İş, bekleyen iş akışı çalıştırmalarının sayısına göre iş yürütmeleri oluşturmak için ölçek kuralını kullanırgithub-runner.

  1. Container Apps ortamında bir iş oluşturun.

    az containerapp job create -n "$JOB_NAME" -g "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \
        --trigger-type Event \
        --replica-timeout 1800 \
        --replica-retry-limit 0 \
        --replica-completion-count 1 \
        --parallelism 1 \
        --image "$CONTAINER_REGISTRY_NAME.azurecr.io/$CONTAINER_IMAGE_NAME" \
        --min-executions 0 \
        --max-executions 10 \
        --polling-interval 30 \
        --scale-rule-name "github-runner" \
        --scale-rule-type "github-runner" \
        --scale-rule-metadata "githubAPIURL=https://api.github.com" "owner=$REPO_OWNER" "runnerScope=repo" "repos=$REPO_NAME" "targetWorkflowQueueLength=1" \
        --scale-rule-auth "personalAccessToken=personal-access-token" \
        --cpu "2.0" \
        --memory "4Gi" \
        --secrets "personal-access-token=$GITHUB_PAT" \
        --env-vars "GITHUB_PAT=secretref:personal-access-token" "GH_URL=https://github.com/$REPO_OWNER/$REPO_NAME" "REGISTRATION_TOKEN_API_URL=https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/actions/runners/registration-token" \
        --registry-server "$CONTAINER_REGISTRY_NAME.azurecr.io"
    

    Aşağıdaki tabloda, komutunda kullanılan anahtar parametreleri açıklanmaktadır.

    Parametre Açıklama
    --replica-timeout Bir çoğaltmanın yürütebileceği en uzun süre.
    --replica-retry-limit Başarısız çoğaltmayı yeniden deneme sayısı.
    --replica-completion-count bir iş yürütmesi başarılı olarak kabul edilmeden önce başarıyla tamamlayacak çoğaltma sayısı.
    --parallelism İş yürütme başına başlatılabilir çoğaltma sayısı.
    --min-executions Yoklama aralığı başına çalıştırılacak en az iş yürütme sayısı.
    --max-executions Yoklama aralığı başına çalıştırılacak en fazla iş yürütme sayısı.
    --polling-interval Ölçek kuralının değerlendirildiği yoklama aralığı.
    --scale-rule-name Ölçek kuralının adı.
    --scale-rule-type Kullanılacak ölçek kuralı türü. GitHub çalıştırıcı ölçeklendiricisi hakkında daha fazla bilgi edinmek için KEDA belgelerine bakın.
    --scale-rule-metadata Ölçek kuralının meta verileri. GitHub Enterprise kullanıyorsanız API URL'si ile güncelleştirin githubAPIURL .
    --scale-rule-auth Ölçek kuralı için kimlik doğrulaması.
    --secrets İş için kullanılacak gizli diziler.
    --env-vars İş için kullanılacak ortam değişkenleri.
    --registry-server İş için kullanılacak kapsayıcı kayıt defteri sunucusu. Azure Container Registry için komut kimlik doğrulamasını otomatik olarak yapılandırır.

    Ölçek kuralı yapılandırması, izlenecek olay kaynağını tanımlar. Her yoklama aralığında değerlendirilir ve tetiklenmesi gereken iş yürütme sayısını belirler. Daha fazla bilgi edinmek için bkz . Ölçeklendirme kurallarını ayarlama.

Olay temelli iş artık Container Apps ortamında oluşturulur.

İş akışı çalıştırma ve işi doğrulama

İş, ölçek kuralını her 30 saniyede bir değerlendirecek şekilde yapılandırılır. Her değerlendirme sırasında, şirket içinde barındırılan bir çalıştırıcı gerektiren bekleyen iş akışı çalıştırmalarının sayısını denetler ve bekleyen iş akışı için yapılandırılan en fazla 10 yürütmeye kadar yeni bir iş yürütmesi başlatır.

İşin doğru yapılandırıldığını doğrulamak için iş akışını şirket içinde barındırılan bir çalıştırıcı kullanacak şekilde değiştirir ve bir iş akışı çalıştırması tetiklersiniz. Ardından iş akışı çalıştırmasını görmek için iş yürütme günlüklerini görüntüleyebilirsiniz.

  1. GitHub deposunda, daha önce oluşturduğunuz iş akışına gidin. Dizindeki .github/workflows bir YAML dosyası.

  2. Yerinde düzenle'yi seçin.

  3. özelliğini olarak self-hostedgüncelleştirinruns-on:

    runs-on: self-hosted
    
  4. Değişiklikleri işle'yi seçin ....

  5. Değişiklikleri işle'yi seçin.

  6. Eylemler sekmesine gidin.

    Artık yeni bir iş akışı kuyruğa alındı. 30 saniye içinde iş yürütme başlatılır ve iş akışı kısa süre sonra tamamlanır.

    Sonraki adıma geçmeden önce eylemin tamamlanmasını bekleyin.

  7. bir iş yürütmesinin oluşturulduğunu ve başarıyla tamamlandığını onaylamak için işin yürütmelerini listeleyin.

    az containerapp job execution list \
        --name "$JOB_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --output table \
        --query '[].{Status: properties.status, Name: name, StartTime: properties.startTime}'
    

Azure DevOps projesi ve deposu oluşturma

İşlem hattını yürütmek için bir Azure DevOps projesine ve deposuna ihtiyacınız vardır.

  1. Azure DevOps'a gidin ve hesabınızda oturum açın.

  2. Mevcut bir kuruluşu seçin veya yeni bir kuruluş oluşturun.

  3. Kuruluşa genel bakış sayfasında Yeni proje'yi seçin ve aşağıdaki değerleri girin.

    Ayar Value
    Proje adı Projeniz için bir ad girin.
    Görünürlük Özel’i seçin.
  4. Oluştur'u belirleyin.

  5. Yan gezinti bölmesinde Depolar'ı seçin.

  6. Ana dalı BENİOKU veya .gitignore ile başlat'ın altında BENIOKU ekle'yi seçin.

  7. Kalan değerleri varsayılan olarak bırakın ve Başlat'ı seçin.

Yeni aracı havuzu oluşturma

Şirket içinde barındırılan çalıştırıcıyı çalıştırmak için yeni bir aracı havuzu oluşturun.

  1. Azure DevOps projenizde sol gezinti çubuğunu genişletin ve Proje ayarları'nı seçin.

    Azure DevOps proje ayarları düğmesinin ekran görüntüsü.

  2. Proje ayarları gezinti menüsündeki İşlem Hatları bölümünde Aracı havuzları'nı seçin.

    Azure DevOps aracı havuzları düğmesinin ekran görüntüsü.

  3. Havuz ekle'yi seçin ve aşağıdaki değerleri girin.

    Ayar Value
    Bağlanacak havuz Yeni'yi seçin.
    Havuz türü Şirket içinde barındırılan'ı seçin.
    Ad Container-apps girin.
    Tüm işlem hatlarına erişim izni verme Bu onay kutusunu seçin.
  4. Oluştur'u belirleyin.

Azure DevOps kişisel erişim belirteci alma

Şirket içinde barındırılan bir çalıştırıcı çalıştırmak için Azure DevOps'ta bir kişisel erişim belirteci (PAT) oluşturmanız gerekir. PAT, Azure DevOps ile çalıştırıcının kimliğini doğrulamak için kullanılır. Ayrıca, bekleyen işlem hattı çalıştırmalarının sayısını belirlemek ve yeni iş yürütmelerini tetiklemek için ölçek kuralı tarafından kullanılır.

  1. Azure DevOps'ta, sağ üst köşedeki profil resminizin yanındaki Kullanıcı ayarları'nı seçin.

  2. Kişisel erişim belirteçleri'ni seçin.

  3. Kişisel erişim belirteçleri sayfasında Yeni Belirteç'i seçin ve aşağıdaki değerleri girin.

    Ayar Değer
    Ad Belirteciniz için bir ad girin.
    Kuruluş Seçtiğiniz veya daha önce oluşturduğunuz kuruluşu seçin.
    Kapsamlar Özel tanımlı'ı seçin.
    Tüm kapsamları göster Tüm kapsamları göster'i seçin.
    Aracı Havuzları (Okuma ve yönetme) Aracı Havuzları (Okuma ve yönetme) seçeneğini belirleyin.

    Diğer tüm kapsamları seçilmemiş olarak bırakın.

  4. Oluştur'u belirleyin.

  5. Belirteç değerini güvenli bir konuma kopyalayın.

    Sayfadan ayrıldıktan sonra belirteci alamazsınız.

  6. Container Apps işlerini daha sonra yapılandırmak için kullanılan değişkenleri tanımlayın.

    AZP_TOKEN="<AZP_TOKEN>"
    ORGANIZATION_URL="<ORGANIZATION_URL>"
    AZP_POOL="container-apps"
    

    Yer tutucuları aşağıdaki değerlerle değiştirin:

    Yer tutucu Değer Açıklamalar
    <AZP_TOKEN> Oluşturduğunuz Azure DevOps PAT.
    <ORGANIZATION_URL> Azure DevOps kuruluşunuzun URL'si. URL'nin sonunda sonda / hiçbir iz olmadığından emin olun. Örneğin, https://dev.azure.com/myorg veya https://myorg.visualstudio.com.

Azure Pipelines aracısı kapsayıcı görüntüsünü oluşturma

Şirket içinde barındırılan bir aracı oluşturmak için aracıyı çalıştıran bir kapsayıcı görüntüsü oluşturmanız gerekir. Bu bölümde kapsayıcı görüntüsünü derleyip bir kapsayıcı kayıt defterine gönderirsiniz.

Not

Bu öğreticide oluşturduğunuz görüntü, Kapsayıcı Uygulamaları işi olarak çalışmaya uygun, şirket içinde barındırılan temel bir aracı içerir. İşlem hatlarınızın gerektirdiği ek araçları veya bağımlılıkları içerecek şekilde özelleştirebilirsiniz.

  1. Terminalinize döndüğünüzde kapsayıcı görüntünüz ve kayıt defteriniz için bir ad tanımlayın.

    CONTAINER_IMAGE_NAME="azure-pipelines-agent:1.0"
    CONTAINER_REGISTRY_NAME="<CONTAINER_REGISTRY_NAME>"
    

    değerini kapsayıcı kayıt defteri oluşturmak için benzersiz bir adla değiştirin <CONTAINER_REGISTRY_NAME> .

    Kapsayıcı kayıt defteri adları Azure içinde benzersiz olmalı ve yalnızca sayı ve küçük harf içeren 5 ila 50 karakter uzunluğunda olmalıdır.

  2. Kapsayıcı kayıt defteri oluşturun.

    az acr create \
        --name "$CONTAINER_REGISTRY_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --location "$LOCATION" \
        --sku Basic \
        --admin-enabled true
    
  3. Çalıştırıcı görüntüsünü oluşturmaya yönelik Dockerfile, GitHub'da kullanılabilir. Depoyu kopyalamak ve komutunu kullanarak az acr build bulutta kapsayıcı görüntüsünü oluşturmak için aşağıdaki komutu çalıştırın.

    az acr build \
        --registry "$CONTAINER_REGISTRY_NAME" \
        --image "$CONTAINER_IMAGE_NAME" \
        --file "Dockerfile.azure-pipelines" \
        "https://github.com/Azure-Samples/container-apps-ci-cd-runner-tutorial.git"
    

    Görüntü artık kapsayıcı kayıt defterinde kullanılabilir.

Yer tutucu şirket içinde barındırılan aracı oluşturma

Yeni aracı havuzunuzda şirket içinde barındırılan bir aracı çalıştırabilmeniz için önce bir yer tutucu aracı oluşturmanız gerekir. Yer tutucu aracı, aracı havuzunun kullanılabilir olmasını sağlar. Yer tutucu aracı olmadığında aracı havuzunu kullanan işlem hatları başarısız olur.

Çevrimdışı yer tutucu aracısını kaydetmek için el ile bir iş çalıştırabilirsiniz. İş bir kez çalışır ve silinebilir. Yer tutucu aracısı, Azure Container Apps veya Azure DevOps'ta herhangi bir kaynak kullanmaz.

  1. Container Apps ortamında yer tutucu aracısını oluşturan el ile bir iş oluşturun.

    az containerapp job create -n "$PLACEHOLDER_JOB_NAME" -g "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \
        --trigger-type Manual \
        --replica-timeout 300 \
        --replica-retry-limit 0 \
        --replica-completion-count 1 \
        --parallelism 1 \
        --image "$CONTAINER_REGISTRY_NAME.azurecr.io/$CONTAINER_IMAGE_NAME" \
        --cpu "2.0" \
        --memory "4Gi" \
        --secrets "personal-access-token=$AZP_TOKEN" "organization-url=$ORGANIZATION_URL" \
        --env-vars "AZP_TOKEN=secretref:personal-access-token" "AZP_URL=secretref:organization-url" "AZP_POOL=$AZP_POOL" "AZP_PLACEHOLDER=1" "AZP_AGENT_NAME=placeholder-agent" \
        --registry-server "$CONTAINER_REGISTRY_NAME.azurecr.io"
    

    Aşağıdaki tabloda, komutunda kullanılan anahtar parametreleri açıklanmaktadır.

    Parametre Açıklama
    --replica-timeout Bir çoğaltmanın yürütebileceği en uzun süre.
    --replica-retry-limit Başarısız çoğaltmayı yeniden deneme sayısı.
    --replica-completion-count bir iş yürütmesi başarılı olarak kabul edilmeden önce başarıyla tamamlayacak çoğaltma sayısı.
    --parallelism İş yürütme başına başlatılabilir çoğaltma sayısı.
    --secrets İş için kullanılacak gizli diziler.
    --env-vars İş için kullanılacak ortam değişkenleri.
    --registry-server İş için kullanılacak kapsayıcı kayıt defteri sunucusu. Azure Container Registry için komut kimlik doğrulamasını otomatik olarak yapılandırır.

    Ortam değişkeninin AZP_PLACEHOLDER ayarlanması, aracı kapsayıcısını bir işi çalıştırmadan çevrimdışı yer tutucu aracısı olarak kaydedilecek şekilde yapılandırır.

  2. Yer tutucu aracısını oluşturmak için el ile işi yürütür.

    az containerapp job start -n "$PLACEHOLDER_JOB_NAME" -g "$RESOURCE_GROUP"
    
  3. bir iş yürütmesinin oluşturulduğunu ve başarıyla tamamlandığını onaylamak için işin yürütmelerini listeleyin.

    az containerapp job execution list \
        --name "$PLACEHOLDER_JOB_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --output table \
        --query '[].{Status: properties.status, Name: name, StartTime: properties.startTime}'
    
  4. Yer tutucu aracının Azure DevOps'ta oluşturulduğunu doğrulayın.

    1. Azure DevOps'ta projenize gidin.
    2. Proje ayarları>Aracı havuzları>kapsayıcı uygulamaları>Aracıları'nı seçin.
    3. adlı placeholder-agent bir yer tutucu aracının listelendiğini ve durumunun çevrimdışı olduğunu onaylayın.
  5. İşe yeniden ihtiyaç duyulmaz. Silebilirsiniz.

    az containerapp job delete -n "$PLACEHOLDER_JOB_NAME" -g "$RESOURCE_GROUP"
    

Olay odaklı iş olarak şirket içinde barındırılan aracı oluşturma

Artık bir yer tutucu aracınız olduğuna göre, şirket içinde barındırılan bir aracı oluşturabilirsiniz. Bu bölümde, bir işlem hattı tetiklendiğinde şirket içinde barındırılan aracı çalıştıran olay temelli bir iş oluşturacaksınız.

az containerapp job create -n "$JOB_NAME" -g "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \
    --trigger-type Event \
    --replica-timeout 1800 \
    --replica-retry-limit 0 \
    --replica-completion-count 1 \
    --parallelism 1 \
    --image "$CONTAINER_REGISTRY_NAME.azurecr.io/$CONTAINER_IMAGE_NAME" \
    --min-executions 0 \
    --max-executions 10 \
    --polling-interval 30 \
    --scale-rule-name "azure-pipelines" \
    --scale-rule-type "azure-pipelines" \
    --scale-rule-metadata "poolName=$AZP_POOL" "targetPipelinesQueueLength=1" \
    --scale-rule-auth "personalAccessToken=personal-access-token" "organizationURL=organization-url" \
    --cpu "2.0" \
    --memory "4Gi" \
    --secrets "personal-access-token=$AZP_TOKEN" "organization-url=$ORGANIZATION_URL" \
    --env-vars "AZP_TOKEN=secretref:personal-access-token" "AZP_URL=secretref:organization-url" "AZP_POOL=$AZP_POOL" \
    --registry-server "$CONTAINER_REGISTRY_NAME.azurecr.io"

Aşağıdaki tabloda, komutunda kullanılan ölçek kuralı parametreleri açıklanmaktadır.

Parametre Açıklama
--min-executions Yoklama aralığı başına çalıştırılacak en az iş yürütme sayısı.
--max-executions Yoklama aralığı başına çalıştırılacak en fazla iş yürütme sayısı.
--polling-interval Ölçek kuralının değerlendirildiği yoklama aralığı.
--scale-rule-name Ölçek kuralının adı.
--scale-rule-type Kullanılacak ölçek kuralı türü. Azure Pipelines ölçeklendiricisi hakkında daha fazla bilgi edinmek için KEDA belgelerine bakın.
--scale-rule-metadata Ölçek kuralının meta verileri.
--scale-rule-auth Ölçek kuralı için kimlik doğrulaması.

Ölçek kuralı yapılandırması, izlenecek olay kaynağını tanımlar. Her yoklama aralığında değerlendirilir ve tetiklenmesi gereken iş yürütme sayısını belirler. Daha fazla bilgi edinmek için bkz . Ölçeklendirme kurallarını ayarlama.

Olay temelli iş artık Container Apps ortamında oluşturulur.

İşlem hattı çalıştırma ve işi doğrulama

Şirket içinde barındırılan bir aracı işi yapılandırdığınıza göre artık bir işlem hattı çalıştırabilir ve düzgün çalıştığını doğrulayabilirsiniz.

  1. Azure DevOps projenizin sol tarafındaki gezinti bölmesinde İşlem Hatları'na gidin.

  2. İşlem hattı oluştur'u seçin.

  3. Kodunuzun konumu olarak Azure Repos Git'i seçin.

  4. Daha önce oluşturduğunuz depoyu seçin.

  5. Başlangıç işlem hattı'ı seçin.

  6. İşlem hattı YAML'sinde pool öğesini olarak vmImage: ubuntu-latestname: container-appsdeğiştirin.

    pool:
      name: container-apps
    
  7. Kaydet ve çalıştır'ı seçin.

    İşlem hattı, Container Apps ortamında oluşturduğunuz şirket içinde barındırılan aracı işini çalıştırır ve kullanır.

  8. bir iş yürütmesinin oluşturulduğunu ve başarıyla tamamlandığını onaylamak için işin yürütmelerini listeleyin.

    az containerapp job execution list \
        --name "$JOB_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --output table \
        --query '[].{Status: properties.status, Name: name, StartTime: properties.startTime}'
    

İpucu

Sorun mu yaşıyorsunuz? Azure Container Apps deposunda bir sorun açarak GitHub'da bize bildirin.

Kaynakları temizleme

İşiniz bittiğinde aşağıdaki komutu çalıştırarak Container Apps kaynaklarınızı içeren kaynak grubunu silin.

Dikkat

Aşağıdaki komut, belirtilen kaynak grubunu ve içindeki tüm kaynakları siler. Bu öğreticinin kapsamı dışındaki kaynaklar belirtilen kaynak grubunda varsa, bunlar da silinir.

az group delete \
    --resource-group $RESOURCE_GROUP

GitHub deponuzu silmek için bkz . Depo silme.

Sonraki adımlar