API ini digunakan untuk membuat dan menjalankan perintah Cloud Assistant pada satu atau beberapa instans ECS. API ini mendukung jenis skrip Shell, PowerShell, atau Bat, serta menyediakan fitur seperti eksekusi terjadwal, parameter kustom, dan eksekusi di dalam kontainer pada instans.
Deskripsi operasi
Ini adalah API asinkron. Setelah permintaan saat ini berhasil dikirim, Anda dapat menanyakan hasil eksekusi dengan memanggil DescribeInvocations atau DescribeInvocationResults menggunakan ID perintah atau ID eksekusi perintah yang dikembalikan.
Prasyarat
Instans target harus dalam status Running. Anda dapat memanggil DescribeInstances untuk menanyakan.
- Instans target harus sudah memiliki Cloud Assistant Agent yang terinstal sebelumnya. Anda dapat menginstalnya melalui InstallCloudAssistant dan memeriksa status instalasi melalui DescribeCloudAssistantStatus.
Catatan
Instans ECS yang dibuat menggunakan image publik setelah 1 Desember 2017 sudah memiliki Cloud Assistant Agent yang terinstal secara default.
Saat menjalankan perintah PowerShell, Anda perlu memastikan bahwa sistem operasi Windows instans ECS target telah dikonfigurasi dengan modul PowerShell.
Catatan
-
Di satu wilayah, Anda dapat menyimpan 500 hingga 50.000 perintah Cloud Assistant. Anda juga dapat mengajukan peningkatan kuota. Untuk informasi lebih lanjut, lihat Manajemen kuota.
-
Versi Cloud Assistant Agent minimal harus versi berikut untuk mendukung fitur baru tugas terjadwal (eksekusi interval tetap, eksekusi satu kali pada waktu tertentu, menentukan tahun atau zona waktu untuk eksekusi terjadwal berbasis ekspresi Cron). Jika hasilnya mengembalikan kode kesalahan
ClientNeedUpgrade, lihat Meningkatkan atau menonaktifkan peningkatan Cloud Assistant Agent untuk memperbarui klien ke versi terbaru.- Linux: 2.2.3.282. - Windows: 2.1.3.282. -
Ketika Anda menjalankan tugas terjadwal berdasarkan ekspresi Cron dan menentukan zona waktu, waktu eksekusi terjadwal berbasis jam ditetapkan berdasarkan zona waktu yang Anda tentukan. Ketika Anda tidak menentukan zona waktu, waktu eksekusi terjadwal berbasis jam ditetapkan berdasarkan zona waktu sistem instans ECS, dan waktu eksekusi berdasarkan waktu sistem instans. Pastikan waktu atau zona waktu instans ECS sesuai dengan waktu yang Anda harapkan. Untuk informasi lebih lanjut tentang zona waktu, lihat Mengatur zona waktu dan layanan NTP untuk instans Linux atau Mengatur layanan NTP untuk instans Windows.
Rekomendasi
- Pengaturan batas waktu: Anda dapat mengatur batas waktu maksimum untuk eksekusi perintah pada instans ECS dengan menentukan parameter
Timeout. Setelah eksekusi perintah melewati batas waktu, Cloud Assistant Agent akan menghentikan proses secara paksa.Setelah eksekusi tunggal melewati batas waktu, status eksekusi perintah (InvokeRecordStatus) berubah menjadi Failed.
Batas waktu untuk eksekusi terjadwal berlaku untuk setiap catatan eksekusi. Batas waktu sebelumnya tidak memengaruhi eksekusi berikutnya. Setelah batas waktu terjadi, status eksekusi (InvokeRecordStatus) berubah menjadi Failed.
Kegagalan eksekusi: Perintah mungkin gagal dijalankan karena status instans target yang tidak normal, masalah jaringan, atau pengecualian Cloud Assistant Agent. Ketika eksekusi gagal, tidak ada informasi eksekusi yang dihasilkan. Untuk informasi lebih lanjut, lihat Kesalahan umum dan saran perbaikan untuk kegagalan eksekusi.
Parameter kustom: Ketika
EnableParameter=true, fitur parameter kustom diaktifkan. Saat mengaturCommandContent, Anda dapat menggunakan format{{parameter}}untuk merepresentasikan parameter kustom, dan meneruskan pasangan kunci-nilai parameter kustom saat menjalankan perintah.
Coba sekarang
Test
RAM authorization
|
Action |
Access level |
Resource type |
Condition key |
Dependent action |
|
ecs:RunCommand |
update |
*Instance
|
|
None |
Parameter permintaan
|
Parameter |
Type |
Required |
Description |
Example |
| RegionId |
string |
Yes |
ID wilayah. Anda dapat memanggil DescribeRegions untuk menanyakan daftar terbaru wilayah Alibaba Cloud. |
cn-hangzhou |
| ResourceGroupId |
string |
No |
ID grup sumber daya untuk eksekusi perintah. Ketika parameter ini ditentukan:
|
rg-bp67acfmxazb4p**** |
| RegionId |
string |
Yes |
ID wilayah. Anda dapat memanggil DescribeRegions untuk menanyakan daftar terbaru wilayah Alibaba Cloud. |
cn-hangzhou |
| Name |
string |
No |
Nama perintah. Mendukung set karakter lengkap. Panjangnya tidak boleh melebihi 128 karakter. |
testName |
| Description |
string |
No |
Deskripsi perintah. Mendukung set karakter lengkap. Panjangnya tidak boleh melebihi 512 karakter. |
testDescription |
| Type |
string |
Yes |
Jenis perintah. Nilai yang valid:
|
RunShellScript |
| CommandContent |
string |
Yes |
Konten perintah. Konten perintah dapat berupa teks biasa atau konten yang dikodekan Base64. Perhatikan hal-hal berikut:
|
ZWNobyAxMjM= |
| WorkingDir |
string |
No |
Direktori kerja perintah pada instans ECS. Panjangnya tidak boleh melebihi 200 karakter. Nilai default:
|
/home/user |
| Timeout |
integer |
No |
Periode batas waktu untuk menjalankan perintah, dalam detik. Ketika perintah tidak dapat berjalan karena masalah proses, modul yang hilang, Cloud Assistant Agent yang hilang, atau alasan lainnya, batas waktu akan terjadi. Setelah batas waktu, proses perintah akan dihentikan secara paksa. Nilai default: 60. |
3600 |
| EnableParameter |
boolean |
No |
Menentukan apakah perintah berisi parameter kustom. Nilai default: false. |
false |
| RepeatMode |
string |
No |
Mengatur mode eksekusi perintah. Nilai yang valid:
Nilai default:
Catatan:
|
Once |
| Timed |
boolean |
No |
Catatan
Parameter ini telah tidak digunakan lagi. Mengirimkan parameter ini tidak akan berpengaruh. |
true |
| Frequency |
string |
No |
Waktu eksekusi untuk eksekusi perintah terjadwal. Saat ini, tiga jenis eksekusi terjadwal didukung: eksekusi interval tetap (berdasarkan ekspresi Rate), eksekusi satu kali pada waktu tertentu, dan eksekusi terjadwal berbasis jam (berdasarkan ekspresi Cron).
|
0 */20 * * * ? |
| Parameters |
object |
No |
Pasangan kunci-nilai parameter kustom yang diteruskan saat menjalankan perintah yang berisi parameter kustom. Misalnya, jika konten perintah adalah Jumlah parameter kustom berkisar dari 0 hingga 10. Perhatikan hal-hal berikut:
Nilai default: kosong, menunjukkan bahwa parameter ini dibatalkan untuk menonaktifkan parameter kustom. |
{"name":"Jack", "accessKey":"LTAI*************"} |
| KeepCommand |
boolean |
No |
Menentukan apakah akan menyimpan perintah setelah eksekusi. Nilai yang valid:
Nilai default: false. |
false |
| ContentEncoding |
string |
No |
Metode pengkodean konten perintah (
Nilai default: PlainText. Nilai yang tidak valid atau salah akan diperlakukan sebagai PlainText. |
Base64 |
| Username |
string |
No |
Nama pengguna untuk menjalankan perintah pada instans ECS. Panjangnya tidak boleh melebihi 255 karakter.
Anda juga dapat menentukan pengguna lain yang sudah ada pada instans untuk menjalankan perintah. Menjalankan perintah Cloud Assistant sebagai pengguna biasa lebih aman. Untuk informasi lebih lanjut, lihat Mengatur pengguna biasa untuk menjalankan perintah Cloud Assistant. |
test |
| WindowsPasswordName |
string |
No |
Nama kata sandi pengguna yang menjalankan perintah pada instans Windows. Panjangnya tidak boleh melebihi 255 karakter. Ketika Anda ingin menjalankan perintah pada instans Windows sebagai pengguna non-default (System), Anda perlu meneruskan Catatan
Ketika Anda menggunakan pengguna root untuk instans Linux atau pengguna System untuk instans Windows untuk menjalankan perintah, Anda tidak perlu meneruskan parameter ini. |
axtSecretPassword |
| InstanceId |
array |
No |
Array ID instans ECS. Panjang array: 1 hingga 100. Jika beberapa instans ditentukan dan salah satunya tidak memenuhi kondisi eksekusi, Anda perlu memilih ulang. Anda juga dapat mengajukan peningkatan kuota di Pusat Kuota (nama kuota: Jumlah maksimum instans yang didukung untuk eksekusi perintah). |
i-bp185dy2o3o6neg**** |
|
string |
No |
ID instans ECS. |
i-bp185dy2o3o6neg**** |
|
| Tag |
array<object> |
No |
Array pasangan tag. Panjang array: 0 hingga 20. |
|
|
object |
No |
Pasangan tag. |
||
| Value |
string |
No |
Nilai tag dari eksekusi perintah. Nilai ini dapat berupa string kosong. Maksimum 128 karakter didukung. Nilai tidak boleh berisi |
TestValue |
| Key |
string |
No |
Kunci tag dari eksekusi perintah. Setelah nilai ini diteruskan, ia tidak boleh berupa string kosong. Ketika menggunakan satu tag untuk memfilter sumber daya, jumlah sumber daya di bawah tag ini tidak boleh melebihi 1.000. Ketika menggunakan beberapa tag untuk memfilter sumber daya, jumlah sumber daya yang terikat ke semua tag yang ditentukan secara bersamaan tidak boleh melebihi 1.000. Jika jumlah sumber daya melebihi 1.000, Anda perlu menggunakan API ListTagResources untuk menanyakan. Maksimum 64 karakter didukung. Nilai tidak boleh dimulai dengan |
TestKey |
| ContainerId |
string |
No |
ID kontainer. Hanya string heksadesimal 64-bit yang didukung. Awalan Catatan:
Catatan
Hanya skrip Shell yang didukung untuk eksekusi di kontainer Linux. Menggunakan format seperti |
ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea**** |
| ContainerName |
string |
No |
Nama kontainer. Catatan:
Catatan
Hanya skrip Shell yang didukung untuk eksekusi di kontainer Linux. Menggunakan format seperti |
test-container |
| ClientToken |
string |
No |
Memastikan idempotensi permintaan. Buat nilai parameter dari klien Anda untuk memastikan keunikan di seluruh permintaan yang berbeda. ClientToken hanya mendukung karakter ASCII dan tidak boleh melebihi 64 karakter. Untuk informasi lebih lanjut, lihat Cara memastikan idempotensi. |
123e4567-e89b-12d3-a456-426655440000 |
| OssOutputDelivery |
string |
No |
Konfigurasi pengiriman output eksekusi perintah ke OSS.
|
oss://testBucket/testPrefix |
| ResourceTag |
array<object> |
No |
Array tag yang digunakan untuk memfilter instans. Panjang array: 0 hingga 20. Anda dapat menjalankan perintah secara batch pada instans dengan tag yang sama tanpa menentukan InstanceId. |
|
|
object |
No |
Tag yang digunakan untuk memfilter instans. Anda dapat menjalankan perintah secara batch pada instans dengan tag yang sama tanpa menentukan InstanceId. |
||
| Value |
string |
No |
Nilai tag yang digunakan untuk memfilter instans. Catatan:
|
TestValue |
| Key |
string |
No |
Kunci tag yang digunakan untuk memfilter instans. Catatan:
|
TestKey |
| TerminationMode |
string |
No |
Mode saat menghentikan tugas (penghentian manual atau interupsi batas waktu eksekusi). Nilai yang valid:
|
ProcessTree |
| Launcher |
string |
No |
Program bootstrap untuk eksekusi skrip. Panjangnya tidak boleh melebihi 1 KB. |
python3 -u {{ACS::ScriptFileName|Ext(".py")}} |
Elemen respons
|
Element |
Type |
Description |
Example |
|
object |
|||
| RequestId |
string |
ID permintaan. |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
| CommandId |
string |
ID perintah. |
c-7d2a745b412b4601b2d47f6a768d**** |
| InvokeId |
string |
ID eksekusi perintah. |
t-7d2a745b412b4601b2d47f6a768d**** |
Contoh
Respons sukses
JSONformat
{
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
"CommandId": "c-7d2a745b412b4601b2d47f6a768d****",
"InvokeId": "t-7d2a745b412b4601b2d47f6a768d****"
}
Kode kesalahan
|
HTTP status code |
Error code |
Error message |
Description |
|---|---|---|---|
| 400 | RegionId.ApiNotSupported | The api is not supported in this region. | |
| 400 | ResourceBusy.SlrCreation | The ServiceLinkedRole is still being created or has not taken effect yet. Please try again later. | |
| 400 | MissingParam.InstanceId | The parameter instanceId is missing or empty. | |
| 400 | NumberExceed.Tags | Ensure the number of tag parameters is not greater than 20. | |
| 400 | InvalidTagValue.Malformed | The specified Tag.n.Value is not valid. | |
| 400 | Duplicate.TagKey | The Tag.N.Key contain duplicate key. | |
| 400 | InvalidTagKey.Malformed | The specified Tag.n.Key is not valid. | |
| 400 | MissingParameter.TagKey | You must specify Tag.N.Key. | |
| 400 | InvalidContainerId.Malformed | The specified parameter ContainerId is not valid. | |
| 400 | InvalidContainerName.Malformed | The specified parameter ContainerName is not valid. | |
| 400 | InvalidClientToken.Malformed | The specified parameter clientToken is not valid. | |
| 400 | CmdParam.EmptyKey | Command parameters can not be empty. | |
| 400 | CmdParam.InvalidParamName | A command parameter name is invalid. | |
| 400 | CmdContent.DecodeError | The CommandContent can not be base64 decoded. | |
| 400 | InvalidInstance.NotMatch | The specified instance type does not match the command. | |
| 400 | MissingParam.Frequency | The frequency must be specified when you create a timed task. | |
| 400 | InvalidParam.Frequency | The specified frequency is invalid. | |
| 400 | ParameterKey.Duplicate | The parameter may not contain duplicate keys. | |
| 400 | Parameter.NotMatched | The parameters of creation do not match those of invocation. | |
| 400 | WindowsPasswordName.Missed | WindowsPasswordName must be specified when you create a Windows task. | |
| 400 | Parameter.Disabled | Parameters should not be passed when CreateCommand.EnableParameter is false. | |
| 400 | InvalidParameter.WorkingDir | The specified parameter WorkingDir is not valid. | |
| 400 | NumberExceed.ResourceTags | The maximum number of ResourceTags is exceeded. | |
| 400 | MissingParameter.ResourceTagKey | You must specify ResourceTag.N.Key. | |
| 400 | InvalidResourceTagKey.Malformed | The specified ResourceTag key is not valid. | |
| 400 | InvalidResourceTagValue.Malformed | The specified ResourceTag value is not valid. | |
| 400 | Duplicate.ResourceTagKey | The ResourceTag contains duplicate keys. | |
| 400 | InvalidResourceTag.InstanceNotFound | InstanceIds are not found by the specified ResourceTag. | |
| 400 | InvalidResourceTag.ConflictWithInstanceIds | The specified param ResourceTag conflicts with InstanceId. | |
| 400 | InvalidOssOutputDelivery.BucketInOtherRegion | The OSS bucket specified in the parameter OssOutputDelivery is in another region. | |
| 400 | InvalidParameter.OssOutputDelivery | The specified parameter OssOutputDelivery is not valid. | |
| 400 | InvalidOssOutputDelivery.KeyPrefixMalformed | The prefix of the OSS key specified in the parameter OssOutputDelivery is not valid. | |
| 500 | InternalError.Dispatch | An error occurred when you dispatched the request. | |
| 403 | InvalidOssOutputDelivery.BucketAccessDenied | The error message returned by the OSS API is: %s | |
| 403 | CmdContent.ExceedLimit | The length of the command content exceeds the upper limit. | |
| 403 | CmdName.ExceedLimit | The length of the command name exceeds the upper limit. | |
| 403 | CmdDesc.ExceedLimit | The length of the command description exceeds the upper limit. | |
| 403 | CmdCount.ExceedQuota | The total number of commands in the current region exceeds the quota. | |
| 403 | CmdParamCount.ExceedLimit | You've reached the limit on the count of command parameters. | |
| 403 | CmdParamName.ExceedLimit | The length of the command parameter name exceeds the limit. | |
| 403 | InstanceIds.ExceedLimit | The number of instance IDs exceeds the upper limit. | |
| 403 | Invocation.ExceedQuota | The invocation quota in the current region has been reached for today. | |
| 403 | ParameterCount.ExceedLimit | The number of command parameters exceeds the maximum number that can be set. | |
| 403 | ParameterKey.ExceedLimit | The length of the specified parameter key exceeds the maximum length that can be set. | |
| 403 | ParameterType.NotSupported | The type of parameter value is not supported. | |
| 403 | Username.ExceedLimit | The length of the username exceeds the upper limit. | |
| 403 | WindowsPasswordName.ExceedLimit | The length of the WindowsPasswordName exceeds the upper limit. | |
| 403 | ParameterStore.NotSupported | Parameter Store is not supported in this region. | |
| 403 | TemporaryAccessKey.Error | The temporary accessKey is invalid. | |
| 403 | ParameterStore.InvalidParameters | The parameter is invalid in Parameter Store. | |
| 403 | ParameterStore.NoPermission | You have no access to Parameter Store. | |
| 403 | OperationDenied.BidOwnResource | Bid user can not own resource. | |
| 403 | Operation.Forbidden | The operation is not permitted. | |
| 403 | IdempotentParameterMismatch | The specified parameter has changed while using an already used clientToken. | |
| 403 | IdempotentProcessing | The previous idempotent request(s) is still processing. | |
| 403 | InvalidStatus.ResourceGroup | You cannot perform an operation on a resource group that is being created or deleted. | |
| 403 | InvalidParameterCharacter.CommandName | The command Name contains illegal characters. | |
| 403 | InvalidParameterCharacter.CommandDescription | The command Description contains illegal characters. | |
| 403 | InvalidParameterCharacter.CommandWorkingDir | The command WorkingDir contains illegal characters. | |
| 403 | InvalidLauncher.LengthLimitExceeded | The length of the parameter Launcher exceeds the limit of 1 KB characters. | |
| 403 | InvalidParameterCharset.Parameters | The parameter Parameters contains illegal charset. | |
| 403 | CreateServiceLinkedRole.NoPermission | You do not have permission to create ServiceLinkedRole for output delivery. | |
| 403 | InvalidTimeout.ExceedLimit | The specified parameter Timeout exceeds the upper limit. | |
| 404 | InvalidCmdType.NotFound | The specified command type does not exist. | |
| 404 | InvalidRepeatMode.NotFound | The specified repeat mode does not exist. | |
| 404 | InvalidRegionId.NotFound | The RegionId provided does not exist in our records. | |
| 404 | InvalidInstance.NotFound | The specified instance does not exist. | |
| 404 | InvalidCmdId.NotFound | The specified command ID does not exist. | |
| 404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | |
| 404 | InvalidTerminationMode.NotFound | The specified parameter TerminationMode does not exist. | |
| 404 | InvalidOssOutputDelivery.BucketNotFound | The OSS bucket specified in the parameter OssOutputDelivery does not exist. |
Lihat Error Codes untuk daftar lengkap.
Catatan rilis
Lihat Release Notes untuk daftar lengkap.