Tüm Ürünler
Search
Belge Merkezi

CloudOps Orchestration Service:Command-only deployment package

Son Güncelleme:Sep 30, 2026

Yalnızca komut dağıtım paketi, herhangi bir kaynak dosya gerektirmeden uygulamayı tamamen betikler aracılığıyla dağıtır.

Çalışma mantığı

Önemli
  • Auto Scaling (ESS) grubuna dağıtım yapıyorsanız, dağıtım sırasında ölçeklendirme etkinlikleri duraklatılır ve sonuç ne olursa olsun dağıtım tamamlandığında otomatik olarak devam eder.

  • Her dağıtım, önce durdur sonra başlat sırasını izler: Önce durdurma betiği çalışır, ardından başlatma betiği çalışır.

  1. Bir dağıtım oluşturun ve yayınlayın.

    OSS'deki uygulamanın kaynak dosya konumunu başlatma ve durdurma betikleriyle birlikte belirtin.

    Bir sürüm görevi oluşturun, bir sürüm modu seçin ve dağıtımı hedef uygulama grubuna yayınlayın.

  2. Otomatikleştirilmiş dağıtım süreci şu şekilde çalışır:

    1. Hizmet, başlatma ve durdurma betikleri dahil olmak üzere dağıtım paketi bilgilerini alır.

    2. Hizmet, önceki uygulama sürümünü durdurmak için durdurma betiğini yürütür.

    3. Hizmet, yeni uygulama sürümünü başlatmak için başlatma betiğini yürütür.

Kullanım notları

  • Dağıtımlar yalnızca Linux örneklerinde desteklenir.

  • Başlatma ve durdurma betikleri kabuk betiği olmalıdır.

Yordam

Java uygulama örneği

  1. Bir uygulama oluşturun ve Elastic Compute Service (ECS) örneklerinizi içe aktarın.

    1. Bir ECS örneğiniz yoksa ECS konsolu - Özel Başlatma sayfasına giderek bir Linux ECS örneği oluşturun.

      Aşağıdaki örnek betikler bu görüntüler içindir. Farklı bir görüntü kullanıyorsanız betikleri buna göre değiştirmeniz gerekir.
    2. ECS konsolu - Uygulama yönetimi sayfasına gidin ve bir uygulama ile bir uygulama grubu oluşturup ECS örneğini uygulama grubuna içe aktarmak için Create from Existing Resources öğesine tıklayın.

  2. Bir dağıtım paketi oluşturun.

    1. ECS konsolu - Uygulama yönetimi sayfasına gidin. Uygulamalarım sekmesinde hedef uygulamanızın adına tıklayın.

    2. Uygulama ayrıntıları sayfasında Deployment sekmesini seçin ve ardından Create Deployment öğesine tıklayın.

    3. Create Deployment sayfasında Deployment Package Type değerini Run Command olarak ayarlayın, parametreleri yapılandırın ve ardından OK öğesine tıklayın.

      • Çalışma dizini: Başlatma ve durdurma betikleri için çalışma dizinini belirtin. Örnek: /root/deploy.

      • Uygulama başlatma betiği:

        Alibaba Cloud Linux

        start_application() {
          set -e
          curl -O https://oos-public-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/code-deploy/sample-spring-1.0-SNAPSHOT.jar
          yum install -y maven-3.5.4
          java -jar ./sample-spring-1.0-SNAPSHOT.jar &
        }
        
        start_application

        Ubuntu

        start_application() {
          set -e
          curl -O https://oos-public-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/code-deploy/sample-spring-1.0-SNAPSHOT.jar
          apt update
          apt install -y maven
          java -jar ./sample-spring-1.0-SNAPSHOT.jar &
        }
        
        start_application
      • Uygulama durdurma betiği:

        ### Stop the application (if any)
        stop_application() {
          PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}')
          if [ -n "$PID" ]; then
            kill -9 $PID
          fi
        }
        
        stop_application
  3. Dağıtım listesine geri dönün, oluşturduğunuz dağıtımı bulun ve Deploy öğesine tıklayın. Hedef grubu seçin ve dağıtımı başlatmak için OK öğesine tıklayın.

  4. Sonucu doğrulayın.

    1. Hedef örneğin ayrıntılar sayfasına şuraya gidin: Bağlanın. Connect öğesine tıklayın ve Workbench öğesini seçin. Terminale erişmek için ekrandaki yönergeleri izleyin.

    2. curl http://localhost:8080/hello komutunu çalıştırın. Alibaba Spring Sample! yanıtı, başarılı bir dağıtımı gösterir.

Docker uygulama örneği

  1. Uygulamayı, grubu ve ECS örneklerini hazırlayın.

    Dağıtım yapmadan önce ECS Uygulama Yönetimi'nde bir uygulama ve bir grup oluşturun. Ardından ECS örneklerinizi gruba ekleyin.

    1. Bir ECS örneğiniz yoksa ECS konsolu - Özel Başlatma sayfasına giderek bir Linux ECS örneği oluşturun.

      Aşağıdaki örnek betikler bu görüntüler içindir. Farklı bir görüntü kullanıyorsanız betikleri buna göre değiştirmeniz gerekir.
    2. ECS konsolu - Uygulama yönetimi sayfasına gidin ve bir uygulama ile bir uygulama grubu oluşturup ECS örneğini uygulama grubuna içe aktarmak için Create from Existing Resources öğesine tıklayın.

    3. Gruptaki ECS örneklerine Docker yükleyin. Uygulama grubunun O&M sekmesinde Docker'ı toplu iş olarak yüklemek için ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL öğesini seçin.

      ECS örneğiniz özel bir görüntüden oluşturulduysa uzantıları bu şekilde yükleyemezsiniz. Örneğe uzaktan bağlanmanız ve Docker'ı manuel olarak yüklemeniz gerekir.
  2. Bir dağıtım paketi oluşturun.

    1. Örnek görüntüyü yerel makinenize çekin ve ardından görüntüyü ACR Kişisel Sürüm deponuza gönderin.

      docker pull aliyun-computenest-opensource-registry.cn-hangzhou.cr.aliyuncs.com/default/aliyun-code-deploy:latest
    2. ECS konsolu - Uygulama yönetimi sayfasına gidin. Uygulamalarım sekmesinde hedef uygulamanızın adına tıklayın.

    3. Uygulama ayrıntıları sayfasında Parametreler sekmesini seçin ve Create Parameter öğesine tıklayın. ACR Kişisel Sürüm kullanıcı adı ve parolası için username ve password adlarında iki parametre oluşturun. Güvenliği sağlamak için password parametresini şifrelenmiş bir parametre olarak ayarlayın.

    4. Uygulama ayrıntıları sayfasında Deployment sekmesini seçin ve ardından Create Deployment öğesine tıklayın.

    5. Create Deployment sayfasında Deployment Package Type değerini Run Command olarak ayarlayın, parametreleri yapılandırın ve ardından OK öğesine tıklayın.

      • Çalışma dizini: Başlatma ve durdurma betikleri için yürütme dizinini belirtin. Örnek: /root/deploy.

      • Uygulama başlatma betiği: <repo> ve <image> yer tutucularını ACR Kişisel Sürüm depo ve görüntü değerlerinizle değiştirin.

        repo ACR Kişisel Sürüm deponuzun adresidir ve image görüntünün tam adıdır. Bu iki alanın değerlerini başlatma betiğindeki ilgili parametrelerle değiştirin.
        ### Start the current version of the application
        start_application() {
           repo="<repo>"
           image="<image>"
           container_name="my-container"
           docker login --username=${username} --password=${password} $repo
           docker pull $image
           docker run -d -p 8080:8080 --name $container_name $image
        }
        
        start_application
      • Uygulama durdurma betiği:

        ### Stop the container (if any)
        stop_application() {
          # Find the container by name and remove it if it exists.
          container_name="my-container"
          container_id=$(docker ps -aq -f name=${container_name}) 
          if [ -n "$container_id" ]; then
            docker rm -f $container_id
          fi
        }
        
        stop_application
  3. Dağıtım listesine geri dönün, oluşturduğunuz dağıtımı bulun ve Deploy öğesine tıklayın. Hedef grubu seçin ve dağıtımı başlatmak için OK öğesine tıklayın.

  4. Sonucu doğrulayın.

    1. Hedef örneğin ayrıntılar sayfasına şuraya gidin: Bağlanın. Connect öğesine tıklayın ve Workbench öğesini seçin. Terminale erişmek için ekrandaki yönergeleri izleyin.

    2. curl http://localhost:8080/hello komutunu çalıştırın. Alibaba Spring Sample! yanıtı, başarılı bir dağıtımı gösterir.

Anahtar parametreler

Parametre

Açıklama

Çalışma dizini

Başlatma ve durdurma betikleri için çalışma dizini.

  • Mutlak bir yol girin.

  • Dizinin önceden mevcut olması gerekmez. Yürütme sırasında otomatik olarak oluşturulur.

Uygulama başlatma betiği

Uygulamayı başlatan bir kabuk betiği.

Uygulama durdurma betiği

Uygulamayı durduran kabuk betiği.
Betik, hem mevcut hem de önceki uygulama sürümlerini doğru şekilde durdurmalı ve uygulama çalışmıyorsa sorunsuz bir şekilde çıkış yapmalıdır.







Örneğin, aşağıdaki betik my-container adlı bir konteyneri durdurur. Tüm konteyner sürümlerinin aynı adı paylaştığını varsayar ve konteyner mevcut değilse hata bildirmez:

container_name="my-container"
    container_id=$(docker ps -aq -f name=${container_name}) 
    if [ -n "$container_id" ]; then
      docker rm -f $container_id
    fi