全部产品
Search
文档中心

CloudOps Orchestration Service:ACS::Template

更新时间:Jun 28, 2025

Anda dapat menggunakan tindakan ACS::Template untuk menyematkan sebuah template ke dalam template lain sebagai template anak.

Deskripsi

Tindakan ACS::Template digunakan untuk menyematkan sebuah template ke dalam template lain sebagai template anak. Anda dapat memodularisasi template yang kompleks dengan membaginya menjadi beberapa template anak untuk dipanggil. Selain itu, operasi O&M umum dapat didefinisikan sebagai template anak yang dapat digunakan kembali. CloudOps Orchestration Service (OOS) juga menyediakan tindakan produk cloud sebagai template operasi layanan cloud umum yang dapat disematkan di dalam template Anda.

Sintaksis

Menyematkan template yang telah dibuat menggunakan nama template

  • Format umum (berlaku untuk semua template yang dapat disematkan)

    Tasks:
    - Name: callChildTemplate1
      Action: ACS::Template
      Properties:
        TemplateName: child_template_name # Diperlukan. Nama dari template anak.
        TemplateVersion: v2 # Opsional. Secara default, versi terbaru digunakan. 
        Parameters: # Opsional. Parameter yang diperlukan untuk menjalankan template anak. 
          ParameterName1: value1
    {
      "Tasks": [
        {
          "Name": "callChildTemplate1",
          "Action": "ACS::Template",
          "Properties": {
            "TemplateName": "child_template_name",
            "TemplateVersion": "v2",
            "Parameters": {
              "ParameterName1": "value1"
            }
          }
        }
      ]
    }                                
  • Format sederhana (hanya berlaku untuk tindakan produk cloud)

    Tasks:
    - Name: taskName # Diperlukan. Nama dari tugas. Contoh: runMyInstances.
      Action: CloudProductActionName1 # Diperlukan. Nama dari tindakan produk cloud. Contoh: ACS::ECS::RunInstances.
      Properties:
        ParameterName1: value1 # Opsional. Parameter yang diperlukan untuk menjalankan tindakan produk cloud. Contoh: ImageId.
    {
      "Tasks": [
        {
          "Name": "taskName",
          "Action": "CloudProductActionName1",
          "Properties": {
            "ParameterName1": "parameterName1"
          }
        }
      ]
    }

Menyematkan template baru menggunakan konten template

Tasks:
- Name: callChildTemplate1
  Action: ACS::Template
  Properties:
    TemplateContent: 
      FormatVersion: OOS-2019-06-01 # Diperlukan. Versi dari template. 
      Parameters: # Opsional. Parameter yang diperlukan untuk menjalankan template anak. 
      Tasks: # Opsional. Tindakan yang dilakukan oleh template anak.
{
  "Tasks": [
    {
      "Name": "callChildTemplate1",
      "Action": "ACS::Template",
      "Properties": {
        "TemplateContent": {
          "FormatVersion": "OOS-2019-06-01",
          "Parameters": null,
          "Tasks": null
        }
      }
    }
  ]
}

Batasan

Tindakan penyematan memiliki batasan berikut:

  • Sebuah template tidak dapat menyematkan dirinya sendiri.

  • Penyematan loop tidak diperbolehkan. Misalnya, A menyematkan B, B menyematkan C, dan C menyematkan A.

  • Jumlah total lapisan penyematan tidak boleh melebihi tiga.

  • Penyematan tindakan produk cloud dianggap sebagai satu lapisan penyematan, dan tugas loop tidak dianggap sebagai penyematan.

Contoh

Membuat gambar untuk instance Elastic Compute Service (ECS) dengan menyematkan tindakan ACS::ECS::CreateImage

  • Format umum (berlaku untuk semua template yang dapat disematkan)

    ---
    FormatVersion: OOS-2019-06-01
    Description: Membuat gambar kustom.
    Parameters:
      imageName:
        Description: Nama gambar.
        Type: String
      instanceId:
        Description: ID dari instance.
        Type: String
        AllowedPattern: i-[A-Za-z0-9]*
        MinLength: 1
        MaxLength: 30
      OOSAssumeRole:
        Type: String
        Description: oos mengasumsikan peran ini untuk mengeksekusi tugas
        Default: OOSServiceRole
    RamRole: '{{OOSAssumeRole}}'
    Tasks:
    - Name: createImage
      Action: ACS::Template
      Description: Membuat gambar kustom.
      Properties:
        TemplateName: 'ACS::ECS::CreateImage'
        Parameters:
          ImageName: '{{ imageName }}'
          InstanceId: '{{ instanceId }}'
      Outputs:
        imageId:
          Type: String
          ValueSelector: ImageId
    Outputs:
      imageId:
        Type: String
        Value: '{{ createImage.imageId }}'        
    {
        "FormatVersion": "OOS-2019-06-01",
        "Description": "Membuat gambar kustom.",
        "Parameters": {
            "imageName": {
                "Description": "Nama gambar.",
                "Type": "String"
            },
            "instanceId": {
                "Description": "ID dari instance.",
                "Type": "String",
                "AllowedPattern": "i-[A-Za-z0-9]*",
                "MinLength": 1,
                "MaxLength": 30
            },
            "OOSAssumeRole": {
                "Type": "String",
                "Description": "oos mengasumsikan peran ini untuk mengeksekusi tugas",
                "Default": "OOSServiceRole"
            }
        },
        "RamRole": "{{OOSAssumeRole}}",
        "Tasks": [
            {
                "Name": "createImage",
                "Action": "ACS::Template",
                "Description": "Membuat gambar kustom.",
                "Properties": {
                    "TemplateName": "ACS::ECS::CreateImage",
                    "Parameters": {
                        "ImageName": "{{ imageName }}",
                        "InstanceId": "{{ instanceId }}"
                    }
                },
                "Outputs": {
                    "imageId": {
                        "Type": "String",
                        "ValueSelector": "ImageId"
                    }
                }
            }
        ],
        "Outputs": {
            "imageId": {
                "Type": "String",
                "Value": "{{ createImage.imageId }}"
            }
        }
    }        
  • Format sederhana (hanya berlaku untuk tindakan produk cloud)

    ---
    FormatVersion: OOS-2019-06-01
    Description: Membuat gambar baru dari instance ECS yang ada.
    Parameters:
      InstanceId:
        Description: Tipe Instance untuk instance baru
        Type: String
      ImageName:
        Description: nama dari gambar baru
        Type: String
      OOSAssumeRole:
        Type: String
        Description: oos mengasumsikan peran ini untuk mengeksekusi tugas
        Default: OOSServiceRole
    RamRole: "{{OOSAssumeRole}}"
    Tasks:
      - Name: createImage
        Action: ACS::ECS::CreateImage
        Properties:
          ImageName: "{{ ImageName }}"
          InstanceId: "{{ InstanceId }}"
        Outputs:
          ImageId:
            ValueSelector: ImageId
            Type: String
    Outputs:
      ImageId:
        Type: String
        Value: "{{ createImage.ImageId }}"
    {
      "FormatVersion": "OOS-2019-06-01",
      "Description": "Membuat gambar baru dari instance ECS yang ada.",
      "Parameters": {
        "InstanceId": {
          "Description": "Tipe Instance untuk instance baru",
          "Type": "String"
        },
        "ImageName": {
          "Description": "nama dari gambar baru",
          "Type": "String"
        },
        "OOSAssumeRole": {
          "Type": "String",
          "Description": "oos mengasumsikan peran ini untuk mengeksekusi tugas",
          "Default": "OOSServiceRole"
        }
      },
      "RamRole": "{{OOSAssumeRole}}",
      "Tasks": [
        {
          "Name": "createImage",
          "Action": "ACS::ECS::CreateImage",
          "Properties": {
            "ImageName": "{{ ImageName }}",
            "InstanceId": "{{ InstanceId }}"
          },
          "Outputs": {
            "ImageId": {
              "ValueSelector": "ImageId",
              "Type": "String"
            }
          }
        }
      ],
      "Outputs": {
        "ImageId": {
          "Type": "String",
          "Value": "{{ createImage.ImageId }}"
        }
      }
    }

Meminta instance ECS yang ditambahkan tag tertentu berdasarkan konten template

FormatVersion: OOS-2019-06-01
Description:
  name-en: DescribeInstances
   
Parameters:
  regionId:
    Label:
      en: The ID of region
       
    Type: String
    Default: '{{ ACS::RegionId }}'
Tasks:
  - Name: describeInstances_out
    Action: ACS::Template
    Description:
      en: Queries the ECS instances by specifying tag
       
    Properties:
      TemplateContent:
        FormatVersion: OOS-2019-06-01
        Description: ''
        Parameters:
          regionId:
            Label:
              en: The ID of region
               
            Type: String
            Default: '{{ ACS::RegionId }}'
        Tasks:
          - Name: describeInstances_1
            Action: ACS::Template
            Description:
              en: Queries the ECS instances by specifying tag
               
            Properties:
              TemplateContent:
                FormatVersion: OOS-2019-06-01
                Description: ''
                Parameters:
                  regionId:
                    Label:
                      en: The ID of region
                       
                    Type: String
                    Default: '{{ ACS::RegionId }}'
                Tasks:
                  - Name: describeInstances_2
                    Action: ACS::ExecuteAPI
                    Description:
                      en: Queries the ECS instances by specifying tag
                       
                    Properties:
                      Service: ECS
                      API: DescribeInstances
                      Parameters:
                        RegionId: '{{ regionId }}'
                    Outputs:
                      instanceIdss:
                        Type: List
                        ValueSelector: Instances.Instance[].InstanceId
                Outputs:
                  instanceId1:
                    Type: List
                    Value: '{{ describeInstances_2.instanceIdss}}'
              Parameters:
                regionId: '{{ regionId }}'
            Outputs:
              instanceId2:
                Type: List
                ValueSelector: .instanceId1
        Outputs:
          instanceId1:
            Type: List
            Value: '{{ describeInstances_1.instanceId2 }}'
      Parameters:
        regionId: '{{ regionId }}'
    Outputs:
      instanceId2:
        Type: List
        ValueSelector: .instanceId1
Outputs:
  instanceId4:
    Type: List
    Value: '{{ describeInstances_out.instanceId2}}'
{
  "FormatVersion": "OOS-2019-06-01",
  "Description": {
    "name-en": "DescribeInstances",
     
  },
  "Parameters": {
    "regionId": {
      "Label": {
        "en": "The ID of region",
         
      },
      "Type": "String",
      "Default": "{{ ACS::RegionId }}"
    }
  },
  "Tasks": [
    {
      "Name": "describeInstances_out",
      "Action": "ACS::Template",
      "Description": {
        "en": "Queries the ECS instances by specifying tag",
         
      },
      "Properties": {
        "TemplateContent": {
          "FormatVersion": "OOS-2019-06-01",
          "Description": "",
          "Parameters": {
            "regionId": {
              "Label": {
                "en": "The ID of region",
                 
              },
              "Type": "String",
              "Default": "{{ ACS::RegionId }}"
            }
          },
          "Tasks": [
            {
              "Name": "describeInstances_1",
              "Action": "ACS::Template",
              "Description": {
                "en": "Queries the ECS instances by specifying tag",
                 
              },
              "Properties": {
                "TemplateContent": {
                  "FormatVersion": "OOS-2019-06-01",
                  "Description": "",
                  "Parameters": {
                    "regionId": {
                      "Label": {
                        "en": "The ID of region",
                         
                      },
                      "Type": "String",
                      "Default": "{{ ACS::RegionId }}"
                    }
                  },
                  "Tasks": [
                    {
                      "Name": "describeInstances_2",
                      "Action": "ACS::ExecuteAPI",
                      "Description": {
                        "en": "Queries the ECS instances by specifying tag",
                         
                      },
                      "Properties": {
                        "Service": "ECS",
                        "API": "DescribeInstances",
                        "Parameters": {
                          "RegionId": "{{ regionId }}"
                        }
                      },
                      "Outputs": {
                        "instanceIdss": {
                          "Type": "List",
                          "ValueSelector": "Instances.Instance[].InstanceId"
                        }
                      }
                    }
                  ],
                  "Outputs": {
                    "instanceId1": {
                      "Type": "List",
                      "Value": "{{ describeInstances_2.instanceIdss}}"
                    }
                  }
                },
                "Parameters": {
                  "regionId": "{{ regionId }}"
                }
              },
              "Outputs": {
                "instanceId2": {
                  "Type": "List",
                  "ValueSelector": ".instanceId1"
                }
              }
            }
          ],
          "Outputs": {
            "instanceId1": {
              "Type": "List",
              "Value": "{{ describeInstances_1.instanceId2 }}"
            }
          }
        },
        "Parameters": {
          "regionId": "{{ regionId }}"
        }
      },
      "Outputs": {
        "instanceId2": {
          "Type": "List",
          "ValueSelector": ".instanceId1"
        }
      }
    }
  ],
  "Outputs": {
    "instanceId4": {
      "Type": "List",
      "Value": "{{ describeInstances_out.instanceId2}}"
    }
  }
}