Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Parameter Store parameter dalam AWS Lambda fungsi
Parameter Store, kemampuan AWS Systems Manager, menyediakan penyimpanan hierarkis yang aman untuk manajemen data konfigurasi dan manajemen rahasia. Anda dapat menyimpan data seperti kata sandi, string database, Amazon Machine Image (AMI)IDs, dan kode lisensi sebagai nilai parameter.
Untuk menggunakan parameter dari Parameter Store dalam AWS Lambda fungsi tanpa menggunakanSDK, Anda dapat menggunakan AWS Parameter dan Rahasia Ekstensi Lambda. Ekstensi ini mengambil nilai parameter dan menyimpannya di cache untuk penggunaan di masa mendatang. Menggunakan ekstensi Lambda dapat mengurangi biaya Anda dengan mengurangi jumlah API panggilan ke. Parameter Store Menggunakan ekstensi juga dapat meningkatkan latensi karena mengambil parameter yang di-cache lebih cepat daripada mengambilnya. Parameter Store
Ekstensi Lambda adalah proses pendamping yang menambah kemampuan fungsi Lambda. Ekstensi seperti klien yang berjalan secara paralel dengan pemanggilan Lambda. Klien paralel ini dapat berinteraksi dengan fungsi Anda kapan saja selama siklus hidupnya. Untuk informasi selengkapnya tentang ekstensi Lambda, lihat Ekstensi Lambda API di Panduan Pengembang.AWS Lambda
AWS Parameter dan Rahasia Lambda Extension berfungsi untuk keduanya danParameter Store. AWS Secrets Manager Untuk mempelajari cara menggunakan ekstensi Lambda dengan rahasia dari Secrets Manager, lihat Menggunakan AWS Secrets Manager rahasia dalam AWS Lambda fungsi di AWS Secrets Manager Panduan Pengguna.
Info terkait
Menggunakan ekstensi AWS Parameter dan Rahasia Lambda untuk parameter cache dan rahasia
Cara kerja ekstensi
Untuk menggunakan parameter dalam fungsi Lambda tanpa ekstensi Lambda, Anda harus mengonfigurasi fungsi Lambda Anda untuk menerima pembaruan konfigurasi dengan mengintegrasikan dengan tindakan untuk. GetParameter
API Parameter Store
Saat Anda menggunakan Ekstensi Lambda AWS Parameter dan Rahasia, ekstensi mengambil nilai parameter dari Parameter Store dan menyimpannya di cache lokal. Kemudian, nilai cache digunakan untuk pemanggilan lebih lanjut sampai kedaluwarsa. Nilai cache kedaluwarsa setelah mereka melewati time-to-live () TTL mereka. Anda dapat mengonfigurasi TTL nilai menggunakan variabel SSM_PARAMETER_STORE_TTL lingkungan, seperti yang dijelaskan nanti dalam topik ini.
Jika cache yang dikonfigurasi TTL belum kedaluwarsa, nilai parameter cache digunakan. Jika waktu telah kedaluwarsa, nilai cache tidak valid dan nilai parameter diambil dari. Parameter Store
Selain itu, sistem mendeteksi nilai parameter yang sering digunakan dan mempertahankannya di cache sambil membersihkan nilai yang kedaluwarsa atau tidak digunakan.
Detail implementasi
Gunakan detail berikut untuk membantu Anda mengonfigurasi Ekstensi Lambda AWS Parameter dan Rahasia.
- Autentikasi
-
Untuk mengotorisasi dan mengautentikasi Parameter Store permintaan, ekstensi menggunakan kredensi yang sama seperti yang digunakan untuk menjalankan fungsi Lambda itu sendiri. Oleh karena itu, peran AWS Identity and Access Management (IAM) yang digunakan untuk menjalankan fungsi harus memiliki izin berikut untuk berinteraksi denganParameter Store:
-
ssm:GetParameter
— Diperlukan untuk mengambil parameter dari Parameter Store -
kms:Decrypt
— Diperlukan jika Anda mengambilSecureString
parameter dari Parameter Store
Untuk informasi selengkapnya, lihat peran AWS Lambda eksekusi di Panduan AWS Lambda Pengembang.
-
- Instantiasi
-
Lambda membuat instance terpisah yang sesuai dengan tingkat konkurensi yang dibutuhkan fungsi Anda. Setiap instance diisolasi dan memelihara cache lokal sendiri dari data konfigurasi Anda. Untuk informasi selengkapnya tentang instans dan konkurensi Lambda, lihat Mengonfigurasi konkurensi cadangan di Panduan Pengembang.AWS Lambda
- Tidak ada SDK ketergantungan
-
AWS Parameter dan Rahasia Lambda Extension bekerja secara independen dari perpustakaan AWS SDK bahasa apa pun. An tidak AWS SDK diperlukan untuk membuat GET permintaanParameter Store.
- Localhostpelabuhan
-
Gunakan
localhost
dalam GET permintaan Anda. Ekstensi membuat permintaan ke localhost port 2773. Anda tidak perlu menentukan endpoint eksternal atau internal untuk menggunakan ekstensi. Anda dapat mengkonfigurasi port dengan mengatur variabel lingkunganPARAMETERS_SECRETS_EXTENSION_HTTP_PORT
.Misalnya, di Python, Anda GET URL mungkin terlihat seperti contoh berikut.
parameter_url = ('http://localhost:' + port + '/systemsmanager/parameters/get/?name=' + ssm_parameter_path)
- Perubahan nilai parameter sebelum TTL kedaluwarsa
-
Ekstensi tidak mendeteksi perubahan pada nilai parameter dan tidak melakukan penyegaran otomatis sebelum TTL kedaluwarsa. Jika Anda mengubah nilai parameter, operasi yang menggunakan nilai parameter cache mungkin gagal hingga cache disegarkan berikutnya. Jika Anda mengharapkan perubahan yang sering terjadi pada nilai parameter, sebaiknya setel TTL nilai yang lebih pendek.
- Persyaratan header
-
Untuk mengambil parameter dari cache ekstensi, header GET permintaan Anda harus menyertakan
X-Aws-Parameters-Secrets-Token
referensi. Setel token keAWS_SESSION_TOKEN
, yang disediakan oleh Lambda untuk semua fungsi yang berjalan. Menggunakan header ini menunjukkan bahwa penelepon berada dalam lingkungan Lambda. - Contoh
-
Contoh berikut di Python menunjukkan permintaan dasar untuk mengambil nilai parameter cache.
import urllib.request import os import json aws_session_token = os.environ.get('AWS_SESSION_TOKEN') def lambda_handler(event, context): # Retrieve /my/parameter from Parameter Store using extension cache req = urllib.request.Request('http://localhost:2773/systemsmanager/parameters/get?name=%2Fmy%2Fparameter') req.add_header('X-Aws-Parameters-Secrets-Token', aws_session_token) config = urllib.request.urlopen(req).read() return json.loads(config)
- ARMdukungan
-
Ekstensi tidak mendukung ARM arsitektur sama di Wilayah AWS mana x86 arsitektur x86_64 dan didukung.
Untuk daftar lengkap ekstensiARNs, lihatAWS Parameter dan Rahasia Ekstensi Lambda ARNs.
- Pencatatan log
-
Lambda mencatat informasi eksekusi tentang ekstensi beserta fungsinya dengan menggunakan Amazon CloudWatch Logs. Secara default, ekstensi mencatat jumlah minimal informasi ke CloudWatch. Untuk mencatat detail lebih lanjut, atur variabel lingkungan
PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL
keDEBUG
.
Menambahkan ekstensi ke fungsi Lambda
Untuk menggunakan AWS Parameter dan Rahasia Lambda Extension, Anda menambahkan ekstensi ke fungsi Lambda Anda sebagai lapisan.
Gunakan salah satu metode berikut untuk menambahkan ekstensi ke fungsi Anda.
- AWS Management Console (Tambahkan opsi lapisan)
-
Buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/
. -
Pilih fungsi Anda. Di area Layers, pilih Add a layer.
-
Di area Choose a layer, pilih opsi AWS layer.
-
Untuk AWS layer, pilih AWS-Parameters-and-Secrets-Lambda-extension, pilih versi, lalu pilih Tambah.
- AWS Management Console (Tentukan ARN opsi)
-
Buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/
. -
Pilih fungsi Anda. Di area Layers, pilih Add a layer.
-
Di area Pilih lapisan, pilih Tentukan ARN opsi.
-
Untuk Menentukan ARN, masukkan ekstensi ARN untuk arsitektur Wilayah AWS dan Anda, lalu pilih Tambah.
- AWS Command Line Interface
-
Jalankan perintah berikut di AWS CLI. Ganti masing-masing
example resource placeholder
dengan informasi Anda sendiri.aws lambda update-function-configuration \ --function-name
function-name
\ --layerslayer-ARN
Informasi terkait
Menggunakan layer dengan fungsi Lambda Anda
Mengkonfigurasi ekstensi (arsip file.zip)
AWS Parameter dan Rahasia variabel lingkungan Ekstensi Lambda
Anda dapat mengonfigurasi ekstensi dengan mengubah variabel lingkungan berikut. Untuk melihat pengaturan saat ini, atur PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL
keDEBUG
. Untuk informasi selengkapnya, lihat Menggunakan variabel AWS Lambda lingkungan di Panduan AWS Lambda Pengembang.
catatan
AWS Lambda mencatat detail operasi tentang ekstensi Lambda dan fungsi Lambda di Amazon Logs. CloudWatch
Variabel lingkungan | Detail | Dibutuhkan | Nilai valid | Nilai default |
---|---|---|---|---|
|
Batas waktu, dalam milidetik, untuk permintaan ke. Parameter Store
Nilai 0 (nol) menunjukkan tidak ada batas waktu. |
Tidak | Semua bilangan bulat | 0 (nol) |
|
Batas waktu, dalam milidetik, untuk permintaan ke Secrets Manager.
Nilai 0 (nol) menunjukkan tidak ada batas waktu. |
Tidak | Semua bilangan bulat |
0 (nol) |
|
Masa pakai valid maksimum, dalam hitungan detik, dari parameter dalam cache sebelum tidak valid. Nilai 0 (nol) menunjukkan bahwa cache harus dilewati. Variabel ini diabaikan jika nilai untuk |
Tidak | 0 (nol) ke 300 s (Lima menit) | 300 s (Lima menit) |
|
Masa pakai valid maksimum, dalam hitungan detik, dari rahasia dalam cache sebelum tidak valid. Nilai 0 (nol) menunjukkan bahwa cache dilewati. Variabel ini diabaikan jika nilai untuk |
Tidak | 0 (nol) ke 300 s (Lima menit) | 300 s (5 menit) |
PARAMETERS_SECRETS_EXTENSION_CACHE_ENABLED |
Menentukan apakah cache untuk ekstensi diaktifkan. Nilai nilai: |
Tidak | TRUE | FALSE | TRUE |
PARAMETERS_SECRETS_EXTENSION_CACHE_SIZE |
Ukuran maksimum cache dalam hal jumlah item. Nilai 0 (nol) menunjukkan bahwa cache dilewati. Variabel ini diabaikan jika kedua TTL nilai cache adalah 0 (nol). |
Tidak | 0 (nol) sampai 1000 |
1000 |
PARAMETERS_SECRETS_EXTENSION_HTTP_PORT |
Port untuk HTTP server lokal. | Tidak | 1 - 65535 |
2773 |
PARAMETERS_SECRETS_EXTENSION_MAX_CONNECTIONS |
Jumlah maksimum koneksi untuk HTTP klien yang digunakan ekstensi untuk membuat permintaan Parameter Store atau Secrets Manager. Ini adalah konfigurasi per klien untuk jumlah koneksi yang dilakukan klien Secrets Manager dan Parameter Store klien ke layanan backend. |
Tidak | Minimal 1; Tidak ada batas maksimum. |
3 |
PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL |
Tingkat detail yang dilaporkan dalam log untuk ekstensi. Sebaiknya gunakan Log untuk operasi Lambda secara otomatis didorong ke grup CloudWatch log Log terkait. |
Tidak |
|
INFO |
Contoh perintah untuk menggunakan AWS Systems ManagerParameter Store dan AWS Secrets Manager Ekstensi
Contoh di bagian ini menunjukkan API tindakan untuk digunakan dengan AWS Secrets Manager ekstensi AWS Systems Manager Parameter Store dan.
Contoh perintah untuk Parameter Store
Ekstensi Lambda menggunakan akses hanya-baca ke tindakan. GetParameterAPI
Untuk memanggil tindakan ini, buat HTTP GET panggilan yang mirip dengan yang berikut ini. Format perintah ini menyediakan akses ke parameter di tingkat parameter standar.
GET http://localhost:
port
/systemsmanager/parameters/get?name=parameter-name
&version=version
&label=label
&withDecryption={true|false}
Dalam contoh ini, parameter-name
mewakili nama parameter lengkap, sepertiMyParameter
, untuk parameter yang tidak dalam hierarki, atau %2FDev%2FProduction%2FEast%2FProject-ABC%2FMyParameter
untuk parameter bernama /Dev/Production/East/Project-ABC/MyParameter
yang merupakan bagian dari hierarki.
catatan
Saat menggunakan GET panggilan, nilai parameter harus dikodekan HTTP untuk mempertahankan karakter khusus. Misalnya, alih-alih memformat jalur hierarkis seperti/a/b/c
, encode karakter yang dapat ditafsirkan sebagai bagian dari, seperti. URL %2Fa%2Fb%2Fc
version
and label
adalah penyeleksi yang tersedia untuk digunakan dengan GetParameter
tindakan.
GET http://localhost:
port
/systemsmanager/parameters/get/?name=MyParameter&version=5
Untuk memanggil parameter dalam hierarki, buat HTTP GET panggilan yang mirip dengan yang berikut ini.
GET http://localhost:
port
/systemsmanager/parameters/get?name=%2Fa%2Fb%2F&label=release
Untuk memanggil parameter publik (global), buat HTTP GET panggilan yang mirip dengan yang berikut ini.
GET http://localhost:
port
/systemsmanager/parameters/get/?name=%2Faws%2Fservice%20list%2F…
Untuk membuat HTTP GET panggilan ke rahasia Secrets Manager dengan menggunakan Parameter Store referensi, lakukan HTTP GET panggilan yang mirip dengan yang berikut ini.
GET http://localhost:
port
/systemsmanager/parameters/get?name=%2Faws%2Freference%2Fsecretsmanager%2F…
Untuk melakukan panggilan menggunakan Amazon Resource Name (ARN) untuk parameter, buat HTTP GET panggilan yang mirip dengan yang berikut ini.
GET http://localhost:
port
/systemsmanager/parameters/get?name=arn:aws:ssm:us-east-1:123456789012:parameter/MyParameter
Untuk melakukan panggilan yang mengakses SecureString
parameter dengan dekripsi, buat HTTP GET panggilan yang mirip dengan yang berikut ini.
GET http://localhost:
port
/systemsmanager/parameters/get?name=MyParameter&withDecryption=true
Anda dapat menentukan bahwa parameter tidak didekripsi dengan menghilangkan withDecryption
atau secara eksplisit menyetelnya. false
Anda juga dapat menentukan versi atau label, tetapi tidak keduanya. Jika Anda melakukannya, hanya yang pertama dari ini yang ditempatkan setelah tanda tanya (?
) di URL digunakan.
AWS Parameter dan Rahasia Ekstensi Lambda ARNs
Tabel berikut menyediakan ekstensi ARNs untuk arsitektur dan Wilayah yang didukung.
Topik
Ekstensi ARNs untuk x86_64 dan x86 arsitektur
Wilayah | ARN |
---|---|
AS Timur (Ohio) |
|
AS Timur (Virginia Utara) |
|
AS Barat (California Utara) |
|
AS Barat (Oregon) |
|
Afrika (Cape Town) |
|
Asia Pasifik (Hong Kong) |
|
Wilayah Asia Pasifik (Hyderabad) |
|
Asia Pasifik (Jakarta) |
|
Asia Pasifik (Melbourne) |
|
Asia Pasifik (Mumbai) |
|
Asia Pasifik (Osaka) |
|
Asia Pasifik (Seoul) |
|
Asia Pasifik (Singapura) |
|
Asia Pasifik (Sydney) |
|
Asia Pasifik (Tokyo) |
|
(Canada (Central) |
|
Kanada Barat (Calgary) | arn:aws:lambda:ca-west-1:243964427225:layer:AWS-Parameters-and-Secrets-Lambda-Extension:1 |
China (Beijing) |
|
Tiongkok (Ningxia) |
|
Eropa (Frankfurt) |
|
Eropa (Irlandia) |
|
Eropa (London) |
|
Eropa (Milan) |
|
Eropa (Paris) |
|
Wilayah Eropa (Spanyol) |
|
Eropa (Stockholm) |
|
Israel (Tel Aviv) |
|
Wilayah Eropa (Zürich) |
|
Timur Tengah (Bahrain) |
|
Timur Tengah (UAE) | arn:aws:lambda:me-central-1:858974508948:layer:AWS-Parameters-and-Secrets-Lambda-Extension:11 |
Amerika Selatan (Sao Paulo) |
|
AWS GovCloud (AS-Timur) |
|
AWS GovCloud (AS-Barat) |
|
Ekstensi ARNs untuk ARM64 dan Mac with Apple silicon arsitektur
Wilayah | ARN |
---|---|
AS Timur (Ohio) |
|
AS Timur (Virginia Utara) |
|
Wilayah AS Barat (California Utara) |
|
AS Barat (Oregon) |
|
Wilayah Afrika (Cape Town) |
|
Wilayah Asia Pacific (Hong Kong) |
|
Wilayah Asia Pasifik (Jakarta) |
|
Asia Pasifik (Mumbai) |
|
Asia Pasifik (Osaka) |
|
Wilayah Asia Pasifik (Seoul) |
|
Asia Pasifik (Singapura) |
|
Asia Pasifik (Sydney) |
|
Asia Pasifik (Tokyo) |
|
Wilayah Kanada (Pusat) |
|
Eropa (Frankfurt) |
|
Eropa (Irlandia) |
|
Eropa (London) |
|
Wilayah Eropa (Milan) |
|
Wilayah Eropa (Paris) |
|
Wilayah Europe (Stockholm) |
|
Wilayah Middle East (Bahrain) |
|
Wilayah Amerika Selatan (Sao Paulo) |
|