全部产品
Search
文档中心

CloudOps Orchestration Service:ACS::ExecuteAPI

更新时间:Jun 28, 2025

Deskripsi

Aksi ACS::ExecuteAPI digunakan untuk memanggil operasi API dari layanan cloud seperti Elastic Compute Service (ECS). Jika pemanggilan API bersifat asinkron, Anda dapat menggunakan aksi ACS::WaitFor untuk menunggu hingga sumber daya mencapai status yang diinginkan.

Sintaksis

Catatan

Atribut Tasks.Properties.API menentukan operasi API yang dipanggil, sehingga tidak perlu menentukannya kembali di atribut Tasks.Properties.Parameters.

Operasi API RPC

Tasks:
  - Name: executeAPITaskExample
    Action: ACS::ExecuteAPI
    Properties:
      Service: ECS # Diperlukan. Nama Sumber Daya Alibaba Cloud (ARN) dari layanan cloud dalam Resource Access Management (RAM). Nama ini tidak peka huruf besar/kecil, seperti ECS, RDS, atau FC.
      API: DescribeInstances # Diperlukan. Nama operasi API dari layanan cloud. Nama ini tidak peka huruf besar/kecil, seperti DescribeInstances.
      AutoPaging: false # Opsional. Menentukan apakah akan otomatis melalui halaman-halaman untuk mendapatkan semua hasil untuk operasi API yang mengembalikan hasil pada halaman berbeda. Nilai default: true.
      Parameters:  # Parameter-parameter yang diperlukan untuk memanggil operasi API. Untuk informasi lebih lanjut, lihat dokumentasi terkait.
        Parameter1: Value1
        Parameter2: Value2
    Outputs: 
      OutputParameter1: 
        ValueSelector: 'jq selector' # Pemilih jQuery untuk memilih data yang dikembalikan. Pemilih jQuery mengekstrak informasi dari data JSON yang dikembalikan oleh operasi API. Untuk informasi lebih lanjut tentang sintaksis jQuery, kunjungi https://stedolan.github.io/jq/.
        Type: String/Boolean/List(Array)/Number/Object
{
  "Tasks": [
    {
      "Name": "executeAPITaskExample",
      "Action": "ACS::ExecuteAPI",
      "Properties": {
        "Service": "ECS",
        "API": "DescribeInstances",
        "AutoPaging": false,
        "Parameters": {
          "Parameter1": "Value1",
          "Parameter2": "Value2"
        }
      },
      "Outputs": {
        "OutputParameter1": {
          "ValueSelector": "jq selector",
          "Type": "String/Boolean/List(Array)/Number/Object"
        }
      }
    }
  ]
}

Operasi API ROA

Tasks:
  - Name: executeAPITaskExample2
    Action: ACS::ExecuteAPI
    Properties:
      Service: OSS # Diperlukan. ARN dari layanan cloud dalam RAM. Nama ini tidak peka huruf besar/kecil, seperti OSS, ECS, RDS, atau FC.
      API: PutBucket # Diperlukan. Nama operasi API dari layanan cloud. Nama ini tidak peka huruf besar/kecil, seperti PutBucket. 
      Method: PUT  # Diperlukan. Metode permintaan HTTP dari operasi API. 
      URI: ''  # Uniform Resource Identifier (URI) yang digunakan oleh operasi API. 
      Headers: # Opsional. Header permintaan dari operasi API. Tentukan atribut ini dalam format berikut: 
        requestHeader1: 'requestHeader1Value'
      Parameters: # Opsional. Parameter umum dari operasi API. 
        commonParameter1: 'commonParameter1Value'
        commonParameter2: 'commonParameter2Value'
        # Opsional. Badan permintaan dari operasi API. Tentukan atribut ini dalam format XML. 
      Body: |
        <?xml version="1.0" encoding="UTF-8"?> <supKey1> <parameter1> Value1
        </parameter1> <parameter2> Value2 </parameter2> </supKey1>
{
  "Tasks": [
    {
      "Name": "executeAPITaskExample2",
      "Action": "ACS::ExecuteAPI",
      "Properties": {
        "Service": "OSS",
        "API": "PutBucket",
        "Method": "PUT",
        "URI": "",
        "Headers": {
          "requestHeader1": "requestHeader1Value"
        },
        "Parameters": {
          "commonParameter1": "commonParameter1Value",
          "commonParameter2": "commonParameter2Value"
        },
        "Body": "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <supKey1> <parameter1> Value1\n</parameter1> <parameter2> Value2 </parameter2> </supKey1>\n"
      }
    }
  ]
}

Contoh

Memanggil operasi DescribeInstances dari Elastic Compute Service (ECS) dalam gaya RPC

FormatVersion: OOS-2019-06-01
Description: Melihat instance ECS dengan menentukan status instance.
Parameters:
  status:
    Description: Status instance ECS untuk query instance.
    Type: String
Tasks:
  - Name: describeInstances
    Action: ACS::ExecuteAPI
    Description: Melihat instance ECS dengan menentukan status instance.
    Properties:
      Service: ECS
      API: DescribeInstances
      Parameters:
        Status: '{{ status }}'
  Outputs:
    instanceIds:
      Type: List
      ValueSelector: Instances.Instance[].InstanceId
Outputs:
  instanceIds:
    Type: List
    Value: '{{ describeInstances.instanceIds }}'
{
  "FormatVersion": "OOS-2019-06-01",
  "Description": "Melihat instance ECS dengan menentukan status instance.",
  "Parameters": {
    "status": {
      "Description": "Status instance ECS untuk query instance.",
      "Type": "String"
    }
  },
  "Tasks": [
    {
      "Name": "describeInstances",
      "Action": "ACS::ExecuteAPI",
      "Description": "Melihat instance ECS dengan menentukan status instance.",
      "Properties": {
        "Service": "ECS",
        "API": "DescribeInstances",
        "Parameters": {
          "Status": "{{ status }}"
        }
      },
      "Outputs": {
        "instanceIds": {
          "Type": "List",
          "ValueSelector": "Instances.Instance[].InstanceId"
        }
      }
    }
  ],
  "Outputs": {
    "instanceIds": {
      "Type": "List",
      "Value": "{{ describeInstances.instanceIds }}"
    }
  }
}

Memanggil operasi PutBucket dari Object Storage Service (OSS) dalam gaya ROA

FormatVersion: OOS-2019-06-01
Description:
  en: Membuat beberapa bucket di wilayah berbeda pada saat bersamaan.
   
Parameters:
  Regions:
    Description:
      en: ID wilayah..
       
    Type: List
  BucketName:
    Description:
      en: Nama bucket.
       
    Type: String
  DataRedundancyType:
    Description:
      en: Menentukan tipe toleransi bencana data dari bucket.
       
    Type: String
    AllowedValues:
      - LRS
      - ZRS
  StorageClass:
    Description:
      en: Tentukan tipe penyimpanan bucket.
       
    Type: String
    AllowedValues:
      - Standard
      - IA
      - Archive
  XOssAcl:
    Description:
      en: Tentukan hak akses bucket.
       
    Type: String
    AllowedValues:
      - public-read-write
      - public-read
      - private
  RateControl:
    Description:
      en: Rasio konkurensi eksekusi tugas.
       
    Type: Json
    AssociationProperty: RateControl
  OOSAssumeRole:
    Description: Peran RAM yang akan diasumsikan oleh OOS.
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: PutBucket
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Membuat bucket di wilayah berbeda.
       
    Properties:
      Service: OSS
      API: PutBucket
      Method: PUT
      URI: ''
      Headers:
        x-oss-acl: '{{ XOssAcl }}'
      Parameters:
        BucketName: '{{ BucketName }}-{{ACS::TaskLoopItem}}'
        RegionId: '{{ACS::TaskLoopItem}}'
      Body: |
        <?xml version="1.0" encoding="UTF-8"?>
        <CreateBucketConfiguration>
          <StorageClass>{{ StorageClass }}</StorageClass>
          <DataRedundancyType>{{ DataRedundancyType }}</DataRedundancyType>
        </CreateBucketConfiguration>
    Loop:
      Items: '{{ Regions }}'
      RateControl: '{{ RateControl }}'
      Outputs:
        imageIds:
          AggregateType: 'Fn::ListJoin'
          AggregateField: imageIds
    Outputs:
      imageIds:
        Type: String
        ValueSelector: .
{
  "FormatVersion": "OOS-2019-06-01",
  "Description": {
    "en": "Membuat beberapa bucket di wilayah berbeda pada saat bersamaan.",
     
  },
  "Parameters": {
    "Regions": {
      "Description": {
        "en": "ID wilayah..",
         
      },
      "Type": "List"
    },
    "BucketName": {
      "Description": {
        "en": "Nama bucket.",
         
      },
      "Type": "String"
    },
    "DataRedundancyType": {
      "Description": {
        "en": "Menentukan tipe toleransi bencana data dari bucket.",
         
      },
      "Type": "String",
      "AllowedValues": [
        "LRS",
        "ZRS"
      ]
    },
    "StorageClass": {
      "Description": {
        "en": "Tentukan tipe penyimpanan bucket.",
         
      },
      "Type": "String",
      "AllowedValues": [
        "Standard",
        "IA",
        "Archive"
      ]
    },
    "XOssAcl": {
      "Description": {
        "en": "Tentukan hak akses bucket.",
         
      },
      "Type": "String",
      "AllowedValues": [
        "public-read-write",
        "public-read",
        "private"
      ]
    },
    "RateControl": {
      "Description": {
        "en": "Rasio konkurensi eksekusi tugas.",
         
      },
      "Type": "Json",
      "AssociationProperty": "RateControl"
    },
    "OOSAssumeRole": {
      "Description": "Peran RAM yang akan diasumsikan oleh OOS.",
      "Type": "String",
      "Default": "OOSServiceRole"
    }
  },
  "RamRole": "{{ OOSAssumeRole }}",
  "Tasks": [
    {
      "Name": "PutBucket",
      "Action": "ACS::ExecuteAPI",
      "Description": {
        "en": "Membuat bucket di wilayah berbeda.",
         
      },
      "Properties": {
        "Service": "OSS",
        "API": "PutBucket",
        "Method": "PUT",
        "URI": "",
        "Headers": {
          "x-oss-acl": "{{ XOssAcl }}"
        },
        "Parameters": {
          "BucketName": "{{ BucketName }}-{{ACS::TaskLoopItem}}",
          "RegionId": "{{ACS::TaskLoopItem}}"
        },
        "Body": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<CreateBucketConfiguration>\n  <StorageClass>{{ StorageClass }}</StorageClass>\n  <DataRedundancyType>{{ DataRedundancyType }}</DataRedundancyType>\n</CreateBucketConfiguration>\n"
      },
      "Loop": {
        "Items": "{{ Regions }}",
        "RateControl": "{{ RateControl }}",
        "Outputs": {
          "imageIds": {
            "AggregateType": "Fn::ListJoin",
            "AggregateField": "imageIds"
          }
        }
      },
      "Outputs": {
        "imageIds": {
          "Type": "String",
          "ValueSelector": "."
        }
      }
    }
  ]
}

Memanggil operasi PutLogs dari Simple Log Service dalam gaya ROA

FormatVersion: OOS-2019-06-01
Description:
  en: Melakukan satu operasi ExecuteApi.
   
  name-en: ACS-OOS-ExampleExecuteECSDescribeRegions
   
  categories:
    - ops
Parameters:
  regionId:
    Type: String
    AssociationProperty: RegionId
    Description: ID wilayah.
  projectName:
    Type: String
    Description: Nama proyek.
  logstoreName:
    Type: String
    Description: Nama Logstore.
  Contents:
    Type: String
    Description: Konten log.
    AssociationProperty: Json
    Default:
      - log1: value1
      - log2: value2
  Tags:
    Type: String
    Description: Tag yang ditambahkan ke log.
    AssociationProperty: Json
    Default: []
Tasks:
  - Name: SlsPutLogs
    Action: ACS::ExecuteApi
    Description: Mengirim log ke Simple Log Service.
    Properties:
      Service: log
      API: PutLogs
      URI: /logstores/{{ logstoreName }}/shards/lb
      Method: POST
      Parameters:
        RegionId: '{{ regionId }}'
        projectName: '{{ projectName }}'
        Logs:
          Contents: '{{ Contents }}'
        Tags: '{{ Tags }}'
{
  "FormatVersion": "OOS-2019-06-01",
  "Description": {
    "en": "Melakukan satu operasi ExecuteApi.",
     
    "name-en": "ACS-OOS-ExampleExecuteECSDescribeRegions",
     
    "categories": [
      "ops"
    ]
  },
  "Parameters": {
    "regionId": {
      "Type": "String",
      "AssociationProperty": "RegionId",
      "Description": "ID wilayah"
    },
    "projectName": {
      "Type": "String",
      "Description": "Nama proyek"
    },
    "logstoreName": {
      "Type": "String",
      "Description": "Nama Logstore"
    },
    "Contents": {
      "Type": "String",
      "Description": "Konten log",
      "AssociationProperty": "Json",
      "Default": [
        {
          "log1": "value1"
        },
        {
          "log2": "value2"
        }
      ]
    },
    "Tags": {
      "Type": "String",
      "Description": "Tag yang ditambahkan ke log",
      "AssociationProperty": "Json",
      "Default": []
    }
  },
  "Tasks": [
    {
      "Name": "SlsPutLogs",
      "Action": "ACS::ExecuteApi",
      "Description": "Mengirim log ke Simple Log Service",
      "Properties": {
        "Service": "log",
        "API": "PutLogs",
        "URI": "/logstores/{{ logstoreName }}/shards/lb",
        "Method": "POST",
        "Parameters": {
          "RegionId": "{{ regionId }}",
          "projectName": "{{ projectName }}",
          "Logs": {
            "Contents": "{{ Contents }}"
          },
          "Tags": "{{ Tags }}"
        }
      }
    }
  ]
}

Lampiran: Pengaturan paging otomatis

  • Untuk OpenAPI yang mendukung paging, OOS menyediakan dukungan untuk paging otomatis. Anda dapat mengonfigurasi paging otomatis dengan menentukan AutoPaging. Secara default, paging otomatis diaktifkan.

  • Anda dapat menentukan jumlah entri per halaman.

  • Jika operasi mendukung parameter (NextToken, MaxResults) dan (PageNumber, PageSize), disarankan untuk menggunakan (NextToken, MaxResults).

Template Contoh: Pengaturan Paging untuk ECS DescribeInstances

FormatVersion: OOS-2019-06-01
Description: Menjalankan satu operasi
Tasks:
  - Name: ExecuteApi
    Action: ACS::ExecuteApi
    Description:
      en: Melakukan satu operasi ExecuteApi.
      zh-cn: deskripsi dalam bahasa Cina
    Properties:
      Service: ecs
      API: DescribeInstances
      Parameters:
        RegionId: cn-hangzhou
        MaxResults: 50 # Jumlah maksimum entri per halaman
{
  "FormatVersion": "OOS-2019-06-01",
  "Description": "Menjalankan satu operasi",
  "Tasks": [
    {
      "Name": "ExecuteApi",
      "Action": "ACS::ExecuteApi",
      "Description": {
        "en": "Melakukan satu operasi ExecuteApi.",
        "zh-cn": "deskripsi dalam bahasa Cina"
      },
      "Properties": {
        "Service": "ecs",
        "API": "DescribeInstances",
        "Parameters": {
          "RegionId": "cn-hangzhou",
          "MaxResults": 50
        }
      }
    }
  ]
}