View a markdown version of this page

Bekerja dengan parameter di Penyimpanan Parameter memakai Run Command perintah - 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.

Bekerja dengan parameter di Penyimpanan Parameter memakai Run Command perintah

Anda dapat bekerja dengan parameter diRun Command. Untuk informasi selengkapnya, lihat AWS Systems Manager Run Command.

Menjalankan parameter String menggunakan konsol

Prosedur berikut memandu Anda melalui proses menjalankan perintah yang menggunakan parameter String.

Untuk menjalankan parameter String menggunakan Penyimpanan Parameter
  1. Buka AWS Systems Manager konsol di https://console.aws.amazon.com/systems-manager/.

  2. Di panel navigasi, pilih Run Command.

  3. Pilih Jalankan perintah.

  4. Di daftar Dokumen perintah, pilih AWS-RunPowerShellScript (Windows) atau AWS-RunShellScript (Linux).

  5. Untuk Parameter perintah, masukkan echo {{ssm:parameter-name}}. Sebagai contoh: echo {{ssm:/Test/helloWorld}}.

  6. Di bagian Target, pilih node terkelola tempat Anda ingin menjalankan operasi ini dengan menentukan tag, memilih instance atau perangkat tepi secara manual, atau menentukan grup sumber daya.

    Tip

    Jika node terkelola yang Anda harapkan tidak terdaftar, lihat tips pem Memecahkan masalah ketersediaan node terkelola ecahan masalah.

  7. Untuk Parameter lainnya:

    • Untuk Komentar, ketik informasi tentang perintah ini.

    • Untuk Waktu habis (detik), tentukan jumlah detik untuk menunggu sistem sebelum gagal menjalankan perintah keseluruhan.

  8. Untuk Pengendalian rate:

    • Untuk Konkurensi, tentukan jumlah atau persentase dari simpul terkelola untuk menjalankan perintah pada saat yang sama.

      catatan

      Jika Anda memilih target dengan menentukan tag yang diterapkan ke node terkelola atau dengan menentukan grup AWS sumber daya, dan Anda tidak yakin berapa banyak node terkelola yang ditargetkan, batasi jumlah target yang dapat menjalankan dokumen secara bersamaan dengan menentukan persentase.

    • Untuk Ambang kesalahan, tentukan kapan harus berhenti menjalankan perintah pada simpul terkelola lain setelah gagal pada jumlah atau persentase simpul. Misalnya, jika Anda menentukan tiga kesalahan, Systems Manager berhenti mengirim perintah ketika kesalahan keempat diterima. Node terkelola yang masih memproses perintah mungkin juga mengirim kesalahan.

  9. (Opsional) Untuk Opsi output, untuk menyimpan output perintah ke file, pilih kotak Tuliskan output perintah ke bucket S3. Masukkan nama bucket dan prefiks (folder) di kotak.

    catatan

    Izin S3 yang memberikan kemampuan untuk menulis data ke bucket S3 adalah izin profil instans (untuk instans EC2) atau peran layanan IAM (mesin yang diaktifkan hibrida) yang ditetapkan ke instance, bukan milik pengguna IAM yang melakukan tugas ini. Untuk informasi selengkapnya, lihat Mengonfigurasi izin instans yang diperlukan untuk Manajer Sistem atau Membuat peran layanan IAM untuk lingkungan hibrida. Selain itu, jika bucket S3 yang ditentukan berada di tempat yang berbeda Akun AWS, pastikan bahwa profil instance atau peran layanan IAM yang terkait dengan node terkelola memiliki izin yang diperlukan untuk menulis ke bucket tersebut.

  10. Di bagian Notifikasi SNS, jika Anda ingin notifikasi dikirim tentang status eksekusi perintah, pilih kotak centang Aktifkan notifikasi SNS.

    Untuk informasi selengkapnya tentang mengonfigurasi notifikasi Amazon SNS untukRun Command, lihatPemantauan perubahan status Systems Manager menggunakan notifikasi Amazon SNS.

  11. Pilih Jalankan.

  12. Di halaman ID Perintah, di area Target dan keluaran, pilih tombol di sebelah ID simpul tempat Anda menjalankan perintah, lalu pilih Lihat output. Verifikasi bahwa output dari perintah tersebut adalah nilai yang Anda berikan untuk parameter, seperti This is my first parameter.

Menjalankan parameter menggunakan AWS CLI

Contoh 1: Perintah sederhana

Contoh perintah berikut mencakup parameter Systems Manager bernama DNS-IP. Nilai parameter ini hanyalah alamat IP dari sebuah node. Contoh ini menggunakan perintah AWS Command Line Interface (AWS CLI) untuk menggemakan nilai parameter.

Linux & macOS
aws ssm send-command \ --document-name "AWS-RunShellScript" \ --document-version "1" \ --targets "Key=instanceids,Values=i-02573cafcfEXAMPLE" \ --parameters "commands='echo {{ssm:DNS-IP}}'" \ --timeout-seconds 600 \ --max-concurrency "50" \ --max-errors "0" \ --region us-east-2
Windows
aws ssm send-command ^ --document-name "AWS-RunPowerShellScript" ^ --document-version "1" ^ --targets "Key=instanceids,Values=i-02573cafcfEXAMPLE" ^ --parameters "commands='echo {{ssm:DNS-IP}}'" ^ --timeout-seconds 600 ^ --max-concurrency "50" ^ --max-errors "0" ^ --region us-east-2

Perintah tersebut mengembalikan informasi seperti berikut.

{
    "Command": {
        "CommandId": "c70a4671-8098-42da-b885-89716EXAMPLE",
        "DocumentName": "AWS-RunShellScript",
        "DocumentVersion": "1",
        "Comment": "",
        "ExpiresAfter": "2023-12-26T15:19:17.771000-05:00",
        "Parameters": {
            "commands": [
                "echo {{ssm:DNS-IP}}"
            ]
        },
        "InstanceIds": [],
        "Targets": [
            {
                "Key": "instanceids",
                "Values": [
                    "i-02573cafcfEXAMPLE"
                ]
            }
        ],
        "RequestedDateTime": "2023-12-26T14:09:17.771000-05:00",
        "Status": "Pending",
        "StatusDetails": "Pending",
        "OutputS3Region": "us-east-2",
        "OutputS3BucketName": "",
        "OutputS3KeyPrefix": "",
        "MaxConcurrency": "50",
        "MaxErrors": "0",
        "TargetCount": 0,
        "CompletedCount": 0,
        "ErrorCount": 0,
        "DeliveryTimedOutCount": 0,
        "ServiceRole": "",
        "NotificationConfig": {
            "NotificationArn": "",
            "NotificationEvents": [],
            "NotificationType": ""
        },
        "CloudWatchOutputConfig": {
            "CloudWatchLogGroupName": "",
            "CloudWatchOutputEnabled": false
        },
        "TimeoutSeconds": 600,
        "AlarmConfiguration": {
            "IgnorePollAlarmFailure": false,
            "Alarms": []
        },
        "TriggeredAlarms": []
    }
}

Setelah eksekusi perintah selesai, Anda dapat melihat informasi selengkapnya menggunakan perintah berikut:

Contoh 2: Mendekripsi nilai SecureString parameter

Perintah contoh berikutnya menggunakan SecureString parameter bernama SecureMerchantId. Perintah yang digunakan dalam parameters bidang mengambil dan mendekripsi nilai SecureString parameter tanpa menyertakan nilai plaintext langsung dalam perintah.

Linux
aws ssm send-command \ --document-name "AWS-RunShellScript" \ --document-version "1" \ --targets "Key=instanceids,Values=i-02573cafcfEXAMPLE" \ --parameters '{"commands":["merchant_id=$(aws ssm get-parameters --names SecureMerchantId --with-decryption --query Parameters[0].Value --output text --region us-east-2)","test -n "$merchant_id" && echo Retrieved SecureString parameter value"]}' \ --timeout-seconds 600 \ --max-concurrency "50" \ --max-errors "0" \ --region us-east-2
Windows
aws ssm send-command ^ --document-name "AWS-RunPowerShellScript" ^ --document-version "1" ^ --targets "Key=instanceids,Values=i-02573cafcfEXAMPLE" ^ --parameters "commands=['$merchantId = (Get-SSMParameterValue -Names SecureMerchantId -WithDecryption $True).Parameters[0].Value','if ($merchantId) { Write-Host ''Retrieved SecureString parameter value'' }']" ^ --timeout-seconds 600 ^ --max-concurrency "50" ^ --max-errors "0" ^ --region us-east-2
Contoh 3: Referensi parameter dalam dokumen SSM

Anda juga dapat mereferensi parameter Systems Manager di bagian Parameter pada dokumen SSM, seperti yang ditunjukkan dalam contoh berikut.

{ "schemaVersion":"2.0", "description":"Sample version 2.0 document v2", "parameters":{ "commands" : { "type": "StringList", "default": ["{{ssm:parameter-name}}"] } }, "mainSteps":[ { "action":"aws:runShellScript", "name":"runShellScript", "inputs":{ "runCommand": "{{commands}}" } } ] }

Jangan bingung sintaks serupa untuk parameter lokal yang digunakan di runtimeConfig bagian dokumen SSM dengan Parameter Store parameter. Parameter lokal tidak sama dengan parameter Systems Manager. Anda dapat membedakan parameter lokal dari parameter Systems Manager dengan tidak adanya prefiks ssm:.

"runtimeConfig":{ "aws:runShellScript":{ "properties":[ { "id":"0.aws:runShellScript", "runCommand":"{{ commands }}", "workingDirectory":"{{ workingDirectory }}", "timeoutSeconds":"{{ executionTimeout }}"
catatan

Dokumen SSM tidak mendukung referensi ke parameter SecureString. Ini berarti bahwa untuk menggunakan SecureString parameter dengan, misalnya,Run Command, Anda harus mengambil nilai parameter sebelum meneruskannyaRun Command, seperti yang ditunjukkan dalam contoh berikut.

Linux & macOS
merchant_id=$(aws ssm get-parameters --names parameter-name --with-decryption --query Parameters[0].Value --output text)
aws ssm send-command \ --document-name AWS-RunShellScript \ --parameters commands="test \"$merchant_id\" != \"\" && case \"$merchant_id\" in merchant-*) echo Merchant ID value retrieved ;; *) echo Unexpected merchant ID value; exit 1 ;; esac" \ --instance-ids instance-id
Windows
aws ssm send-command ^ --document-name AWS-RunPowerShellScript ^ --parameters commands="$merchantId = (Get-SSMParameterValue -Names parameter-name -WithDecryption $True).Parameters[0].Value; if ($merchantId -like 'merchant-*') { Write-Host 'Merchant ID value retrieved' } else { Write-Host 'Unexpected merchant ID value'; exit 1 }" ^ --instance-ids instance-id
Powershell
$merchantId = (Get-SSMParameterValue -Names parameter-name -WithDecryption $True).Parameters[0].Value
if ($merchantId -like "merchant-*") { Write-Host "Merchant ID value retrieved" } else { Write-Host "Unexpected merchant ID value"; exit 1 }