Membuat dan menjalankan perintah Asisten Cloud pada satu atau beberapa Instans ECS. Mendukung tipe skrip Shell, PowerShell, atau Bat, serta menyediakan fitur seperti eksekusi terjadwal, parameter kustom, dan eksekusi dalam kontainer pada instans.
Deskripsi operasi
Ini adalah operasi asinkron. Setelah permintaan berhasil dikirim, Anda dapat memanggil DescribeInvocations atau DescribeInvocationResults untuk mengkueri hasil eksekusi dengan menggunakan ID perintah atau ID pemanggilan yang dikembalikan.
Sebelum Anda memulai
Instans target harus berada dalam status Running. Anda dapat memanggil DescribeInstances untuk mengkueri status instans.
- Instans target harus memiliki Agen Asisten Cloud terinstal. Anda dapat menginstalnya dengan memanggil InstallCloudAssistant dan mengkueri status instalasi dengan memanggil DescribeCloudAssistantStatus.
Catatan
Instance ECS yang dibuat dari image publik setelah 1 Desember 2017 memiliki Agen Asisten Cloud terinstal secara default.
Untuk menjalankan perintah PowerShell, pastikan sistem operasi Windows pada Instance ECS target telah dikonfigurasi dengan modul PowerShell.
Perhatian
-
Dalam satu wilayah, Anda dapat menyimpan 500 hingga 50.000 perintah Asisten Cloud. Anda juga dapat meminta peningkatan kuota. Untuk informasi lebih lanjut, lihat Manajemen kuota.
-
Versi Agen Asisten Cloud harus tidak lebih lama dari versi berikut untuk mendukung fitur baru tugas terjadwal (eksekusi pada interval tetap, eksekusi satu kali pada waktu tertentu, dan eksekusi terjadwal berbasis Cron dengan tahun atau pengatur waktu yang ditentukan). Jika kode kesalahan
ClientNeedUpgradedikembalikan, lihat Mengupgrade atau menonaktifkan upgrade untuk Agen Asisten Cloud untuk memperbarui agen ke versi terbaru.- Linux: 2.2.3.282 - Windows: 2.1.3.282 -
Saat Anda menjalankan tugas terjadwal berbasis Cron dengan pengatur waktu yang ditentukan, waktu eksekusi terjadwal didasarkan pada pengatur waktu yang ditentukan. Saat Anda tidak menentukan pengatur waktu, waktu eksekusi terjadwal didasarkan pada pengatur waktu sistem Instans ECS, dan waktu eksekusi ditentukan oleh waktu sistem instans. Pastikan waktu atau pengatur waktu Instans ECS konsisten dengan ekspektasi Anda. Untuk informasi lebih lanjut tentang pengatur waktu, lihat Mengonfigurasi pengatur waktu dan layanan NTP untuk instans Linux atau Mengonfigurasi layanan NTP untuk instans Windows.
Rekomendasi
- Pengaturan timeout: Anda dapat menentukan parameter
Timeoutuntuk mengatur periode timeout maksimum untuk eksekusi perintah pada Instans ECS. Saat perintah mengalami timeout, Agen Asisten Cloud secara paksa menghentikan proses.Setelah eksekusi satu kali mengalami timeout, status eksekusi (InvokeRecordStatus) berubah menjadi kesalahan eksekusi (Failed).
Untuk eksekusi terjadwal, periode timeout berlaku untuk setiap catatan eksekusi. Timeout pada eksekusi sebelumnya tidak memengaruhi eksekusi berikutnya. Setelah timeout terjadi, status eksekusi (InvokeRecordStatus) berubah menjadi kesalahan eksekusi (Failed).
Kegagalan eksekusi: Perintah mungkin gagal dieksekusi karena status instans target yang abnormal, pengecualian jaringan, atau pengecualian Agen Asisten Cloud. Saat perintah gagal dieksekusi, tidak ada informasi eksekusi yang dihasilkan. Untuk informasi lebih lanjut, lihat Kesalahan umum dan solusi untuk kegagalan eksekusi.
Parameter kustom: Saat
EnableParameter=true, fitur parameter kustom diaktifkan. Saat menetapkanCommandContent, Anda dapat mendefinisikan parameter kustom dalam format{{parameter}}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 mengkueri daftar wilayah terbaru. |
cn-hangzhou |
| ResourceGroupId |
string |
No |
ID kelompok sumber daya untuk eksekusi perintah. Saat parameter ini ditentukan:
|
rg-bp67acfmxazb4p**** |
| Name |
string |
No |
Nama perintah. Semua set karakter didukung. Nama tidak boleh melebihi 128 karakter. |
testName |
| Description |
string |
No |
Deskripsi perintah. Semua set karakter didukung. Deskripsi tidak boleh melebihi 512 karakter. |
testDescription |
| Type |
string |
Yes |
Tipe perintah. Nilai valid:
|
RunShellScript |
| CommandContent |
string |
Yes |
Konten perintah. Konten perintah dapat berupa teks biasa atau dienkode Base64. Perhatikan item berikut:
|
ZWNobyAxMjM= |
| WorkingDir |
string |
No |
Direktori kerja perintah pada Instans ECS. Nilai tidak boleh melebihi 200 karakter. Nilai default:
|
/home/user |
| Timeout |
integer |
No |
Periode timeout untuk eksekusi perintah. Unit: detik. Timeout terjadi saat perintah tidak dapat dijalankan karena masalah proses, modul yang hilang, atau Agen Asisten Cloud yang hilang. Saat timeout terjadi, proses perintah dihentikan secara paksa. Nilai default: 60. |
3600 |
| EnableParameter |
boolean |
No |
Apakah perintah berisi parameter kustom. Nilai default: false. |
false |
| RepeatMode |
string |
No |
Mode eksekusi perintah. Nilai valid:
Nilai default:
Perhatian:
|
Once |
| Timed |
boolean |
No |
[Deprecated] Parameter ini sudah tidak digunakan lagi. Meneruskan parameter ini tidak memiliki efek. |
true |
| Frequency |
string |
No |
Jadwal untuk menjalankan perintah. Tiga metode penjadwalan didukung: eksekusi pada 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 untuk diteruskan saat menjalankan perintah yang berisi parameter kustom. Misalnya, jika konten perintah adalah Jumlah parameter kustom berkisar dari 0 hingga 10. Perhatikan item berikut:
Nilai default: kosong, yang menonaktifkan parameter kustom. |
{"name":"Jack", "accessKey":"LTAI*************"} |
| KeepCommand |
boolean |
No |
Apakah akan menyimpan perintah setelah eksekusi. Nilai valid:
Nilai default: false. |
false |
| ContentEncoding |
string |
No |
Metode pengodean konten perintah (
Nilai default: PlainText. Nilai yang tidak valid diperlakukan sebagai PlainText. |
Base64 |
| Username |
string |
No |
Nama pengguna untuk menjalankan perintah pada Instans ECS. Nilai tidak boleh melebihi 255 karakter.
Anda juga dapat menentukan pengguna lain yang ada pada instans untuk menjalankan perintah. Menjalankan perintah Asisten Cloud sebagai pengguna biasa lebih aman. Untuk informasi lebih lanjut, lihat Mengonfigurasi pengguna biasa untuk menjalankan perintah Asisten Cloud. |
test |
| WindowsPasswordName |
string |
No |
Nama kata sandi untuk pengguna yang mengeksekusi perintah pada instans Windows. Nilai tidak boleh melebihi 255 karakter. Saat Anda ingin mengeksekusi perintah sebagai pengguna non-default (System) pada instans Windows, Anda harus menentukan Catatan
Parameter ini tidak diperlukan saat Anda mengeksekusi perintah sebagai pengguna root pada instans Linux atau pengguna System pada instans Windows. |
axtSecretPassword |
| InstanceId |
array |
No |
Array ID instans dari Instans ECS. Panjang array: 1 hingga 100. Jika ada instans yang ditentukan tidak memenuhi kondisi eksekusi, Anda harus memilih ulang instans. Anda juga dapat meminta 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 |
Pasangan tag. Panjang array: 0 hingga 20. |
|
|
object |
No |
Pasangan tag. |
||
| Value |
string |
No |
Nilai tag dari eksekusi perintah. Nilai dapat berupa string kosong. Nilai dapat mencapai hingga 128 karakter dan tidak boleh mengandung |
TestValue |
| Key |
string |
No |
Kunci tag dari eksekusi perintah. Jika nilai ini ditentukan, nilainya tidak boleh berupa string kosong. Saat Anda menggunakan satu tag untuk memfilter Sumber daya, jumlah Sumber daya di bawah tag tersebut tidak boleh melebihi 1.000. Saat Anda menggunakan beberapa tag untuk memfilter Sumber daya, jumlah Sumber daya yang dilampirkan ke semua tag yang ditentukan tidak boleh melebihi 1.000. Jika jumlah Sumber daya melebihi 1.000, gunakan operasi ListTagResources untuk mengkueri Sumber daya. Kunci dapat mencapai hingga 64 karakter dan tidak boleh dimulai dengan |
TestKey |
| ContainerId |
string |
No |
ID kontainer. Hanya string heksadesimal 64-bit yang didukung. Awalan Perhatian:
Catatan
Hanya skrip Shell yang didukung dalam kontainer Linux. Menentukan interpreter di awal skrip dalam format |
ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea**** |
| ContainerName |
string |
No |
Nama kontainer. Perhatian:
Catatan
Hanya skrip Shell yang didukung dalam kontainer Linux. Menentukan interpreter di awal skrip dalam format |
test-Kontainer |
| ClientToken |
string |
No |
Token klien yang digunakan untuk memastikan idempotensi permintaan. Anda dapat menggunakan klien untuk menghasilkan token, tetapi Anda harus memastikan bahwa token unik di antara permintaan yang berbeda. ClientToken hanya dapat berisi 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 OSS untuk output eksekusi perintah.
|
oss://testBucket/testPrefix |
| ResourceTag |
array<object> |
No |
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. Perhatian:
|
TestValue |
| Key |
string |
No |
Kunci tag yang digunakan untuk memfilter instans. Perhatian:
|
TestKey |
| TerminationMode |
string |
No |
Mode untuk menghentikan tugas (penghentian manual atau interupsi timeout). Nilai valid:
|
ProcessTree |
| Launcher |
string |
No |
Program bootstrap untuk eksekusi skrip. Nilai 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 pemanggilan. |
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. | API ini tidak didukung di wilayah saat ini. |
| 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. | ID instans kosong. |
| 400 | NumberExceed.Tags | Ensure the number of tag parameters is not greater than 20. | Jumlah tag yang ditentukan melebihi batas. |
| 400 | InvalidTagValue.Malformed | The specified Tag.n.Value is not valid. | Nilai tag yang ditentukan tidak valid. Nilai tag dapat berisi hingga 128 karakter dan tidak boleh mengandung "http://" atau "https://". |
| 400 | Duplicate.TagKey | The Tag.N.Key contain duplicate key. | Terdapat kunci duplikat dalam tag. Pastikan kunci unik. |
| 400 | InvalidTagKey.Malformed | The specified Tag.n.Key is not valid. | Kunci tag yang ditentukan tidak valid. Kunci tag tidak boleh kosong atau null, dapat berisi hingga 128 karakter, dan tidak boleh dimulai dengan "aliyun" atau "acs:" atau mengandung "http://" atau "https://". |
| 400 | MissingParameter.TagKey | You must specify Tag.N.Key. | Tentukan kunci tag. |
| 400 | InvalidContainerId.Malformed | The specified parameter ContainerId is not valid. | ID kontainer yang ditentukan tidak valid. |
| 400 | InvalidContainerName.Malformed | The specified parameter ContainerName is not valid. | Nama kontainer yang ditentukan tidak valid. |
| 400 | InvalidClientToken.Malformed | The specified parameter clientToken is not valid. | Parameter ClientToken yang ditentukan tidak memenuhi persyaratan format. Parameter hanya boleh berisi karakter ASCII dan panjangnya tidak boleh melebihi 64 karakter. |
| 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. | Konten perintah tidak dapat didekode Base64. |
| 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. | Nama parameter tidak boleh duplikat. Verifikasi nama dan coba lagi. |
| 400 | Parameter.NotMatched | The parameters of creation do not match those of invocation. | Parameter kustom yang dikirimkan tidak cocok dengan parameter kustom yang didefinisikan saat perintah dibuat. |
| 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. | Saat Anda menonaktifkan fitur parameter kustom untuk sebuah perintah, jangan kirimkan parameter kustom. |
| 400 | InvalidParameter.WorkingDir | The specified parameter WorkingDir is not valid. | Parameter WorkingDir yang ditentukan tidak 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. | Bucket OSS yang ditentukan dalam parameter OssOutputDelivery berada di wilayah yang berbeda. |
| 400 | InvalidParameter.OssOutputDelivery | The specified parameter OssOutputDelivery is not valid. | Parameter OssOutputDelivery yang ditentukan tidak valid. |
| 400 | InvalidOssOutputDelivery.KeyPrefixMalformed | The prefix of the OSS key specified in the parameter OssOutputDelivery is not valid. | Awalan yang ditentukan dalam parameter OssOutputDelivery tidak valid. |
| 500 | InternalError.Dispatch | An error occurred when you dispatched the request. | Terjadi kesalahan saat mengirim permintaan. Coba lagi nanti. |
| 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. | Panjang konten perintah melebihi batas atas. |
| 403 | CmdName.ExceedLimit | The length of the command name exceeds the upper limit. | Panjang nama perintah melebihi batas atas. |
| 403 | CmdDesc.ExceedLimit | The length of the command description exceeds the upper limit. | Panjang deskripsi perintah melebihi batas atas. |
| 403 | CmdCount.ExceedQuota | The total number of commands in the current region exceeds the quota. | Jumlah perintah Asisten Cloud di wilayah saat ini telah melebihi batas. |
| 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. | Panjang nama parameter kustom dalam perintah melebihi batas atas. |
| 403 | InstanceIds.ExceedLimit | The number of instance IDs exceeds the upper limit. | Jumlah instans target melebihi batas atas. |
| 403 | Invocation.ExceedQuota | The invocation quota in the current region has been reached for today. | Jumlah operasi eksekusi perintah di wilayah saat ini telah mencapai kuota harian. |
| 403 | ParameterCount.ExceedLimit | The number of command parameters exceeds the maximum number that can be set. | Jumlah parameter kustom melebihi batas. |
| 403 | ParameterKey.ExceedLimit | The length of the specified parameter key exceeds the maximum length that can be set. | Panjang kunci parameter yang ditentukan melebihi panjang maksimum yang diizinkan. |
| 403 | ParameterType.NotSupported | The type of parameter value is not supported. | |
| 403 | Username.ExceedLimit | The length of the username exceeds the upper limit. | Panjang nama pengguna melebihi batas atas. |
| 403 | WindowsPasswordName.ExceedLimit | The length of the WindowsPasswordName exceeds the upper limit. | Panjang parameter WindowsPasswordName yang ditentukan melebihi batas atas. |
| 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. | Parameter yang ditentukan oleh {{oos:?}} dalam konten perintah tidak ditemukan. |
| 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. | Pengguna RAM saat ini tidak memiliki izin untuk melakukan operasi ini. |
| 403 | IdempotentParameterMismatch | The specified parameter has changed while using an already used clientToken. | Token klien yang ditentukan telah digunakan. |
| 403 | IdempotentProcessing | The previous idempotent request(s) is still processing. | Permintaan idempoten sebelumnya masih sedang diproses. Coba lagi nanti. |
| 403 | InvalidStatus.ResourceGroup | You cannot perform an operation on a resource group that is being created or deleted. | Operasi tidak diizinkan saat kelompok sumber daya sedang dibuat atau dihapus. |
| 403 | InvalidParameterCharacter.CommandName | The command Name contains illegal characters. | Nama perintah mengandung karakter yang tidak valid. |
| 403 | InvalidParameterCharacter.CommandDescription | The command Description contains illegal characters. | Deskripsi perintah mengandung karakter yang tidak valid. |
| 403 | InvalidParameterCharacter.CommandWorkingDir | The command WorkingDir contains illegal characters. | Jalur eksekusi perintah mengandung karakter yang tidak valid. |
| 403 | InvalidLauncher.LengthLimitExceeded | The length of the parameter Launcher exceeds the limit of 1 KB characters. | Panjang parameter Launcher melebihi batas 1 KB karakter. |
| 403 | InvalidParameterCharset.Parameters | The parameter Parameters contains illegal charset. | Parameter perintah mengandung set karakter yang tidak valid. |
| 403 | CreateServiceLinkedRole.NoPermission | You do not have permission to create ServiceLinkedRole for output delivery. | Anda tidak memiliki izin untuk membuat peran tertaut layanan untuk fitur pengiriman output. |
| 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. | Metode eksekusi perintah yang ditentukan tidak ada. |
| 404 | InvalidRegionId.NotFound | The RegionId provided does not exist in our records. | Informasi wilayah tidak valid. |
| 404 | InvalidInstance.NotFound | The specified instance does not exist. | Instans yang ditentukan tidak ada. |
| 404 | InvalidCmdId.NotFound | The specified command ID does not exist. | Parameter CommandId yang ditentukan tidak valid. Periksa apakah nilai parameter sudah benar. Anda dapat memanggil operasi DescribeCommands untuk mengkueri semua nilai CommandId yang tersedia. |
| 404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | Kelompok sumber daya yang sesuai tidak ditemukan. |
| 404 | InvalidTerminationMode.NotFound | The specified parameter TerminationMode does not exist. | Parameter TerminationMode yang ditentukan tidak ada. |
| 404 | InvalidOssOutputDelivery.BucketNotFound | The OSS bucket specified in the parameter OssOutputDelivery does not exist. | Bucket yang ditentukan dalam parameter OssOutputDelivery tidak ada. |
Lihat Error Codes untuk daftar lengkap.
Catatan rilis
Lihat Release Notes untuk daftar lengkap.