View a markdown version of this page

Contoh: Mendaftarkan tugas dengan jendela pemeliharaan - AWS Systems Manager

• AWS Systems Manager CloudWatch Dasbor tidak akan lagi tersedia setelah 30 April 2026. Pelanggan dapat terus menggunakan CloudWatch konsol Amazon untuk melihat, membuat, dan mengelola dasbor Amazon CloudWatch mereka, seperti yang mereka lakukan hari ini. Untuk informasi selengkapnya, lihat dokumentasi CloudWatch Dasbor Amazon.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Contoh: Mendaftarkan tugas dengan jendela pemeliharaan

Anda dapat mendaftarkan tugas diRun Command, dengan jendela pemeliharaan menggunakan AWS Command Line Interface (AWS CLI), seperti yang ditunjukkan dalam Daftar tugas dengan jendela pemeliharaan. Anda juga dapat mendaftarkan tugas untuk alur kerja, AWS Lambda fungsi, dan AWS Step Functions tugas Sistem Manajer Otomasi, seperti yang ditunjukkan nanti dalam topik ini.

catatan

Tentukan satu atau lebih target untuk tugas Run Command tipe jendela pemeliharaan. Tergantung pada tugas, target bersifat opsional untuk jenis tugas jendela pemeliharaan lainnya (Otomasi, AWS Lambda, dan AWS Step Functions). Untuk informasi lebih lanjut tentang menjalankan tugas yang tidak menentukan target, lihat Pendaftaran tugas jendela pemeliharaan tanpa target.

Dalam topik ini, kami memberikan contoh penggunaan perintah AWS Command Line Interface (AWS CLI) register-task-with-maintenance-window untuk mendaftarkan masing-masing dari empat jenis tugas yang didukung dengan jendela pemeliharaan. Contoh hanya untuk demonstrasi, tetapi Anda dapat mengubahnya untuk membuat perintah pendaftaran tugas yang berfungsi.

Penggunaan pilihan —cli-input-json

Untuk mengelola pilhan tugas Anda dengan lebih baik, Anda dapat menggunakan pilihan perintah --cli-input-json, dengan nilai pilihan direferensikan di file JSON.

Untuk menggunakan sampel konten file JSON yang kami sediakan dalam contoh berikut, lakukan hal berikut pada mesin lokal Anda:

  1. Membuat file dengan nama seperti MyRunCommandTask.json, MyAutomationTask.json, atau nama lainnya yang Anda inginkan.

  2. Salin konten sampel JSON kami ke dalam file.

  3. Ubah konten file untuk pendaftaran tugas Anda, lalu simpan file.

  4. Di direktori yang sama tempat Anda menyimpan file, jalankan perintah berikut. Ganti nama file Anda untukMyFile.json.

    Linux & macOS
    aws ssm register-task-with-maintenance-window \ --cli-input-json file://MyFile.json
    Windows
    aws ssm register-task-with-maintenance-window ^ --cli-input-json file://MyFile.json
Parameter semu dalam tugas jendela pemeliharaan

Dalam beberapa contoh, kami menggunakan parameter pseudo sebagai metode untuk meneruskan informasi ID ke tugas Anda. Untuk instans, {{TARGET_ID}} dan {{RESOURCE_ID}} dapat digunakan untuk meneruskan ID dari sumber daya AWS ke tugas Otomatisasi, Lambda, dan Step Functions. Untuk informasi lebih lanjut tentang parameter semu di konten --task-invocation-parameters, lihat Menggunakan parameter semu saat mendaftarkan tugas jendela pemeliharaan.

Contoh pendaftaran tugas

Bagian berikut menyediakan AWS CLI perintah contoh untuk mendaftarkan jenis tugas yang didukung dan sampel JSON yang dapat digunakan dengan --cli-input-json opsi.

Contoh berikut menunjukkan cara mendaftarkan Run Command tugas Manajer Sistem dengan jendela pemeliharaan menggunakan AWS CLI.

Linux & macOS
aws ssm register-task-with-maintenance-window \ --window-id mw-0c50858d01EXAMPLE \ --task-arn "AWS-RunShellScript" \ --max-concurrency 1 --max-errors 1 --priority 10 \ --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" \ --task-type "RUN_COMMAND" \ --task-invocation-parameters '{"RunCommand":{"Parameters":{"commands":["df"]}}}'
Windows
aws ssm register-task-with-maintenance-window ^ --window-id mw-0c50858d01EXAMPLE ^ --task-arn "AWS-RunShellScript" ^ --max-concurrency 1 --max-errors 1 --priority 10 ^ --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^ --task-type "RUN_COMMAND" ^ --task-invocation-parameters "{\"RunCommand\":{\"Parameters\":{\"commands\":[\"df\"]}}}"

Konten JSON untuk digunakan dengan opsi --cli-input-json file:

{ "TaskType": "RUN_COMMAND", "WindowId": "mw-0c50858d01EXAMPLE", "Description": "My Run Command task to update SSM Agent on an instance", "MaxConcurrency": "1", "MaxErrors": "1", "Name": "My-Run-Command-Task", "Priority": 10, "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "AWS-UpdateSSMAgent", "TaskInvocationParameters": { "RunCommand": { "Comment": "A TaskInvocationParameters test comment", "NotificationConfig": { "NotificationArn": "arn:aws:sns:region:123456789012:my-sns-topic-name", "NotificationEvents": [ "All" ], "NotificationType": "Invocation" }, "OutputS3BucketName": "amzn-s3-demo-bucket", "OutputS3KeyPrefix": "S3-PREFIX", "TimeoutSeconds": 3600 } } }

Contoh berikut mendemonstrasikan cara untuk mendaftarkan tugas Otomatisasi Systems Manager dengan jendela pemeliharaan menggunakan AWS CLI.

AWS CLI perintah:

Linux & macOS
aws ssm register-task-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --task-arn "AWS-RestartEC2Instance" \ --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole \ --task-type AUTOMATION \ --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" \ --priority 0 --name "My-Restart-EC2-Instances-Automation-Task" \ --description "Automation task to restart EC2 instances"
Windows
aws ssm register-task-with-maintenance-window ^ --window-id "mw-0c50858d01EXAMPLE" ^ --task-arn "AWS-RestartEC2Instance" ^ --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole ^ --task-type AUTOMATION ^ --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{TARGET_ID}}'}}" ^ --priority 0 --name "My-Restart-EC2-Instances-Automation-Task" ^ --description "Automation task to restart EC2 instances"

Konten JSON untuk digunakan dengan opsi --cli-input-json file:

{ "WindowId": "mw-0c50858d01EXAMPLE", "TaskArn": "AWS-PatchInstanceWithRollback", "TaskType": "AUTOMATION","TaskInvocationParameters": { "Automation": { "DocumentVersion": "1", "Parameters": { "instanceId": [ "{{RESOURCE_ID}}" ] } } } }

Contoh berikut mendemonstrasikan cara untuk mendaftarkan tugas fungsi Lambda dengan jendela pemeliharaan menggunakan AWS CLI.

penting

Fungsi lambda harus Akun AWS sama dengan jendela pemeliharaan saat menggunakan peran terkait layanan (). AWSServiceRoleForAmazonSSM Cross-account Pemanggilan Lambda tidak didukung dengan peran terkait layanan. Jika Anda perlu memanggil fungsi Lambda di akun yang berbeda, tentukan peran layanan kustom menggunakan --service-role-arn parameter dengan izin yang dicakup secara eksplisit ke akun target, dan tambahkan kebijakan berbasis sumber daya pada fungsi Lambda target yang memberikan akses pemanggilan ke peran kustom Anda.

Untuk contoh ini, pengguna yang membuat fungsi Lambda menamainya SSMrestart-my-instances dan membuat dua parameter yang disebut instanceId dan targetType.

penting

Kebijakan IAM untuk Maintenance Windows mengharuskan Anda menambahkan awalan SSM ke nama fungsi (atau alias) Lambda. Sebelum Anda melanjutkan untuk mendaftarkan jenis tugas ini, perbarui namanya AWS Lambda untuk disertakanSSM. Misalnya, jika nama fungsi Lambda Anda adalah MyLambdaFunction, ubah ke SSMMyLambdaFunction.

AWS CLI perintah:

Linux & macOS
penting

Jika Anda menggunakan versi 2 dari AWS CLI, Anda harus menyertakan opsi --cli-binary-format raw-in-base64-out dalam perintah berikut jika muatan Lambda Anda tidak dikodekan base64. cli_binary_formatOpsi ini hanya tersedia di versi 2. Untuk informasi tentang ini dan pengaturan AWS CLI config file lainnya, lihat Peng aturan config file yang didukung di Panduan AWS Command Line Interface Pengguna.

aws ssm register-task-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \ --priority 2 --max-concurrency 10 --max-errors 5 --name "My-Lambda-Example" \ --description "A description for my LAMBDA example task" --task-type "LAMBDA" \ --task-arn "arn:aws:lambda:region:123456789012:function:serverlessrepo-SSMrestart-my-instances-C4JF9EXAMPLE" \ --task-invocation-parameters '{"Lambda":{"Payload":"{\"InstanceId\":\"{{RESOURCE_ID}}\",\"targetType\":\"{{TARGET_TYPE}}\"}","Qualifier": "$LATEST"}}'
PowerShell
penting

Jika Anda menggunakan versi 2 dari AWS CLI, Anda harus menyertakan opsi --cli-binary-format raw-in-base64-out dalam perintah berikut jika muatan Lambda Anda tidak dikodekan base64. cli_binary_formatOpsi ini hanya tersedia di versi 2. Untuk informasi tentang ini dan pengaturan AWS CLI config file lainnya, lihat Peng aturan config file yang didukung di Panduan AWS Command Line Interface Pengguna.

aws ssm register-task-with-maintenance-window ` --window-id "mw-0c50858d01EXAMPLE" ` --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ` --priority 2 --max-concurrency 10 --max-errors 5 --name "My-Lambda-Example" ` --description "A description for my LAMBDA example task" --task-type "LAMBDA" ` --task-arn "arn:aws:lambda:region:123456789012:function:serverlessrepo-SSMrestart-my-instances-C4JF9EXAMPLE" ` --task-invocation-parameters '{\"Lambda\":{\"Payload\":\"{\\\"InstanceId\\\":\\\"{{RESOURCE_ID}}\\\",\\\"targetType\\\":\\\"{{TARGET_TYPE}}\\\"}\",\"Qualifier\": \"$LATEST\"}}'

Konten JSON untuk digunakan dengan opsi --cli-input-json file:

{ "WindowId": "mw-0c50858d01EXAMPLE", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "SSM_RestartMyInstances", "TaskType": "LAMBDA", "MaxConcurrency": "10", "MaxErrors": "10", "TaskInvocationParameters": { "Lambda": { "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE", "Payload": "{ \"instanceId\": \"{{RESOURCE_ID}}\", \"targetType\": \"{{TARGET_TYPE}}\" }", "Qualifier": "$LATEST" } }, "Name": "My-Lambda-Task", "Description": "A description for my LAMBDA task", "Priority": 5 }

Contoh berikut mendemonstrasikan cara untuk mendaftarkan tugas mesin tahapan Step Functions dengan jendela pemeliharaan menggunakan AWS CLI.

penting

Fungsi langkah mesin status harus Akun AWS sama dengan jendela pemeliharaan. Cross-account Panggilan Fungsi Langkah tidak didukung terlepas dari apakah Anda menggunakan peran terkait layanan atau peran layanan khusus.

catatan

Tugas jendela pemeliharaan mendukung Fungsi Langkah Alur kerja mesin status standar saja. Mereka tidak mendukung alur kerja mesin keadaan ekspres. Untuk informasi tentang jenis alur kerja mesin status, lihat Alu r Kerja Standar vs Ekspres di Panduan Peng AWS Step Functions embang.

Untuk contoh ini, pengguna yang membuat mesin tahapan Step Functions membuat mesin tahapan bernama SSMMyStateMachine dengan parameter yang disebut instanceId.

penting

Kebijakan AWS Identity and Access Management (IAM) untuk Maintenance Windows mengharuskan Anda menawali nama mesin status Step Functions denganSSM. Sebelum melanjutkan untuk mendaftarkan jenis tugas ini, Anda harus memperbarui namanya di AWS Step Functions untuk menyertakan SSM. Misalnya, jika nama mesin tahapan Anda adalah MyStateMachine, ubah ke SSMMyStateMachine.

AWS CLI perintah:

Linux & macOS
aws ssm register-task-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \ --task-arn arn:aws:states:region:123456789012:stateMachine:SSMMyStateMachine-MggiqEXAMPLE \ --task-type STEP_FUNCTIONS \ --task-invocation-parameters '{"StepFunctions":{"Input":"{\"InstanceId\":\"{{RESOURCE_ID}}\"}", "Name":"{{INVOCATION_ID}}"}}' \ --priority 0 --max-concurrency 10 --max-errors 5 \ --name "My-Step-Functions-Task" --description "A description for my Step Functions task"
PowerShell
aws ssm register-task-with-maintenance-window ` --window-id "mw-0c50858d01EXAMPLE" ` --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ` --task-arn arn:aws:states:region:123456789012:stateMachine:SSMMyStateMachine-MggiqEXAMPLE ` --task-type STEP_FUNCTIONS ` --task-invocation-parameters '{\"StepFunctions\":{\"Input\":\"{\\\"InstanceId\\\":\\\"{{RESOURCE_ID}}\\\"}\", \"Name\":\"{{INVOCATION_ID}}\"}}' ` --priority 0 --max-concurrency 10 --max-errors 5 ` --name "My-Step-Functions-Task" --description "A description for my Step Functions task"

Konten JSON untuk digunakan dengan opsi --cli-input-json file:

{ "WindowId": "mw-0c50858d01EXAMPLE", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "SSM_MyStateMachine", "TaskType": "STEP_FUNCTIONS", "MaxConcurrency": "10", "MaxErrors": "10", "TaskInvocationParameters": { "StepFunctions": { "Input": "{ \"instanceId\": \"{{TARGET_ID}}\" }", "Name": "{{INVOCATION_ID}}" } }, "Name": "My-Step-Functions-Task", "Description": "A description for my Step Functions task", "Priority": 5 }