Todos os produtos
Search
Central de documentação

CloudOps Orchestration Service:Criar um modelo

Última atualização: Sep 11, 2026

Crie um modelo personalizado no console do CloudOps Orchestration Service (OOS) para executar comandos em lote em várias instâncias ECS.

  1. Faça logon no console do CloudOps Orchestration Service.

  2. No painel de navegação à esquerda, escolha Automated Task > Custom Template e clique em Create Template.

  3. Crie um modelo a partir de um modelo de exemplo ou de um arquivo local.

    • Nos modelos de exemplo, selecione Batch Run Commands e clique em Next Step.

    • Se você já tiver um arquivo de modelo YAML ou JSON para executar comandos em lote, carregue o arquivo local e clique em Next Step.

      Modelo de comando em lote

      FormatVersion: OOS-2019-06-01
      Description: Runs commands on multiple ECS instances in a batch.
      Parameters:
        targets:
          Label:
            en: TargetInstance
            zh-cn: Target Instance
          Type: Json
          AssociationProperty: Targets
          AssociationPropertyMetadata:
            ResourceType: ALIYUN::ECS::Instance
            RegionId: regionId
        rateControl:
          Label:
            en: RateControl
            zh-cn: Concurrent rate for task execution
          Type: Json
          AssociationProperty: RateControl
          Default:
            Mode: Concurrency
            MaxErrors: 0
            Concurrency: 10
      Tasks:
        - Name: getInstance
          Description: Obtains ECS instances.
          Action: ACS::SelectTargets
          Properties:
            ResourceType: ALIYUN::ECS::Instance
            Filters:
              - '{{ targets }}'
          Outputs:
            instanceIds:
              Type: List
              ValueSelector: Instances.Instance[].InstanceId
        - Name: runCommand
          Action: ACS::ECS::RunCommand
          Description: Runs a Cloud Assistant command.
          Properties:
            instanceId: '{{ ACS::TaskLoopItem }}'
            commandType: RunShellScript
            commandContent: |-
              #!/bin/bash
      
              ##### This can be called when the script starts to run. It prints the current timestamp and PID.
              function job_start()
              {
                  now=`date +'%Y-%m-%d %H:%M:%S'`
                  echo "[$now][$$] job_start"
              }
      
              ##### If the return value is 0, the execution is successful. Otherwise, the execution failed.
              job_start
            regionId: '{{ ACS::RegionId }}'
            workingDir: /root
            enableParameter: false
            timeout: 600
            username: ''
            parameters: {}
            windowsPasswordName: ''
          Outputs:
            invocationOutput:
              Type: String
              ValueSelector: invocationOutput
          Loop:
            Items: '{{ getInstance.instanceIds }}'
            RateControl: '{{ rateControl }}'
            Outputs:
              invocationOutputs:
                AggregateType: Fn::ListJoin
                AggregateField: invocationOutput
      Outputs:
        invocationOutputs:
          Type: List
          Value: '{{ runCommand.invocationOutputs }}'
      
      {
        "FormatVersion": "OOS-2019-06-01",
        "Description": "Runs commands on multiple ECS instances in a batch.",
        "Parameters": {
          "targets": {
            "Label": {
              "en": "TargetInstance",
              "zh-cn": "Target Instance"
            },
            "Type": "Json",
            "AssociationProperty": "Targets",
            "AssociationPropertyMetadata": {
              "ResourceType": "ALIYUN::ECS::Instance",
              "RegionId": "regionId"
            }
          },
          "rateControl": {
            "Label": {
              "en": "RateControl",
              "zh-cn": "Concurrent rate for task execution"
            },
            "Type": "Json",
            "AssociationProperty": "RateControl",
            "Default": {
              "Mode": "Concurrency",
              "MaxErrors": 0,
              "Concurrency": 10
            }
          }
        },
        "Tasks": [
          {
            "Name": "getInstance",
            "Description": "Obtains ECS instances.",
            "Action": "ACS::SelectTargets",
            "Properties": {
              "ResourceType": "ALIYUN::ECS::Instance",
              "Filters": [
                "{{ targets }}"
              ]
            },
            "Outputs": {
              "instanceIds": {
                "Type": "List",
                "ValueSelector": "Instances.Instance[].InstanceId"
              }
            }
          },
          {
            "Name": "runCommand",
            "Action": "ACS::ECS::RunCommand",
            "Description": "Runs a Cloud Assistant command.",
            "Properties": {
              "instanceId": "{{ ACS::TaskLoopItem }}",
              "commandType": "RunShellScript",
              "commandContent": "#!/bin/bash\n\n##### This can be called when the script starts to run. It prints the current timestamp and PID.\nfunction job_start()\n{\n    now=`date +'%Y-%m-%d %H:%M:%S'`\n    echo \"[$now][$$] job_start\"\n}\n\n##### If the return value is 0, the execution is successful. Otherwise, the execution failed.\njob_start",
              "regionId": "{{ ACS::RegionId }}",
              "workingDir": "/root",
              "enableParameter": false,
              "timeout": 600,
              "username": "",
              "parameters": {},
              "windowsPasswordName": ""
            },
            "Outputs": {
              "invocationOutput": {
                "Type": "String",
                "ValueSelector": "invocationOutput"
              }
            },
            "Loop": {
              "Items": "{{ getInstance.instanceIds }}",
              "RateControl": "{{ rateControl }}",
              "Outputs": {
                "invocationOutputs": {
                  "AggregateType": "Fn::ListJoin",
                  "AggregateField": "invocationOutput"
                }
              }
            }
          }
        ],
        "Outputs": {
          "invocationOutputs": {
            "Type": "List",
            "Value": "{{ runCommand.invocationOutputs }}"
          }
        }
      }
  4. (Opcional) A tarefa Get ECS Instances vem pré-configurada. Para modificá-la, configure o parâmetro targets na seção Template Parameter.

    Nota

    Ao criar a execução, selecione as instâncias ECS nas quais os comandos serão executados e insira as informações necessárias. Para obter mais informações, consulte Create an execution.

  5. Na área Command Content, edite o conteúdo do script e clique em Create Template.

  6. Insira um Template Name e clique em OK.

Referências

  • Após criar o modelo, inicie uma execução correspondente. Para obter mais informações, consulte Create an execution.

  • Se você revisou todas as tarefas do modelo e aceita os riscos envolvidos, execute a operação sem confirmação manual. Para obter mais informações, consulte Fully automatic execution.

  • Para executar tarefas individuais do modelo uma por vez, selecione o modo de etapa única ao criar a execução. Para obter mais informações, consulte Single-step execution.