• AWS Systems ManagerChange Manager tidak lagi terbuka untuk pelanggan baru. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat perubahan AWS Systems ManagerChange Manager ketersediaan.
• 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 CloudWatch dasbor Amazon 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.
Memecahkan masalah penanganan parameter
Masalah penanganan parameter umum
- Variabel lingkungan tidak tersedia selama eksekusi
-
Masalah: Perintah gagal karena variabel lingkungan (
SSM_) tidak ditemukan.parameter-nameKemungkinan penyebabnya:
-
SSM Agentversi tidak mendukung interpolasi variabel lingkungan
-
interpolationTypetidak diatur keENV_VAR -
Nama parameter tidak cocok dengan nama variabel lingkungan yang diharapkan
Solusi:
-
Verifikasi SSM Agent versi 3.3.2746.0 atau yang lebih baru
-
Tambahkan logika fallback untuk versi agen yang lebih lama:
if [ -z "${SSM_parameterName+x}" ]; then export SSM_parameterName="{{parameterName}}" fi
-
- Nilai parameter yang mengandung karakter khusus
-
Masalah: Perintah gagal ketika nilai parameter berisi spasi, tanda kutip, atau karakter khusus lainnya.
Solusi:
-
Gunakan kutipan yang tepat saat mereferensikan variabel lingkungan:
# Correct echo "$SSM_parameter-name" # Incorrect echo $SSM_parameter-name -
Tambahkan validasi masukan menggunakan
allowedPatternuntuk membatasi karakter khusus
-
- Perilaku tidak konsisten di seluruh platform
-
Masalah: Penanganan parameter bekerja secara berbeda di Linux dan Windows Server sistem.
Solusi:
-
Gunakan sintaks variabel lingkungan khusus platform:
# PowerShell $env:SSM_parameter-name# Bash $SSM_parameter-name -
Gunakan pemeriksaan prasyarat khusus platform dalam dokumen Anda
-
- Nilai parameter tidak lolos dengan benar
-
Masalah: Kerentanan injeksi perintah meskipun menggunakan interpolasi variabel lingkungan.
Solusi:
-
Selalu gunakan escaping yang tepat saat menyertakan nilai parameter dalam perintah:
# Correct mysql_command="mysql -u \"$SSM_username\" -p\"$SSM_password\"" # Incorrect mysql_command="mysql -u $SSM_username -p$SSM_password"
-
Kiat validasi parameter
Gunakan teknik ini untuk memvalidasi penanganan parameter Anda:
-
Uji ketersediaan variabel lingkungan:
#!/bin/bash # Print all SSM_ environment variables env | grep ^SSM_ # Test specific parameter if [ -n "$SSM_parameter" ]; then echo "Parameter is available" else echo "Parameter is not available" fi -
Verifikasi pola parameter:
parameters: myParameter: type: String allowedPattern: "^[a-zA-Z0-9_-]+$" description: "Test this pattern with sample inputs" -
Sertakan penanganan kesalahan:
if [[ ! "$SSM_parameter" =~ ^[a-zA-Z0-9_-]+$ ]]; then echo "Parameter validation failed" exit 1 fi