Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Uso dei parametri Parameter Store nelle funzioni AWS Lambda
Parameter Store, una funzionalità di AWS Systems Manager, fornisce uno storage sicuro e gerarchico per la gestione dei dati di configurazione e la gestione dei segreti. È possibile memorizzare dati come password, stringhe di database, Amazon Machine Image (AMI) IDs e codici di licenza come valori dei parametri.
Per utilizzare i parametri AWS Lambda delle funzioni senza utilizzare unSDK, puoi utilizzare l'estensione Lambda AWS Parameters and Secrets. Parameter Store Questa estensione recupera i valori dei parametri e li memorizza nella cache per usarli in futuro. L'utilizzo dell'estensione Lambda può ridurre i costi riducendo il numero di API chiamate a. Parameter Store Può inoltre migliorare la latenza perché il recupero di un parametro memorizzato nella cache è più rapido rispetto al recupero da Parameter Store.
Un'estensione Lambda è un processo complementare che si aggiunge alle funzionalità di una normale funzione Lambda. Un'estensione è come un client che viene eseguito in parallelo a una chiamata Lambda. Questo client parallelo può interfacciarsi con la funzione in qualsiasi momento del suo ciclo di vita. Per ulteriori informazioni sulle estensioni Lambda, consulta Lambda Extensions API nella Developer Guide.AWS Lambda
L'estensione Lambda AWS Parameters and Secrets funziona sia Parameter Store per. AWS Secrets Manager Per informazioni su come utilizzare l'estensione Lambda con i segreti di Secrets Manager, consulta Usare AWS Secrets Manager i segreti nelle AWS Lambda funzioni nella Guida per l'AWS Secrets Manager utente.
Informazioni correlate
Utilizzo dell'estensione Lambda AWS Parameter and Secrets per memorizzare nella cache parametri e segreti
Come funziona l'estensione
Per utilizzare i parametri in una funzione Lambda senza l'estensione Lambda, è necessario configurare la funzione Lambda per ricevere aggiornamenti di configurazione mediante l'integrazione con l'azione per. GetParameter
API Parameter Store
Quando si utilizza l'estensione Lambda AWS Parameters and Secrets, l'estensione recupera il valore del parametro Parameter Store e lo archivia nella cache locale. Quindi, il valore memorizzato nella cache viene utilizzato per ulteriori invocazioni fino alla scadenza. I valori memorizzati nella cache scadono dopo aver passato il valore (). time-to-live TTL È possibile configurare il TTL valore utilizzando la variabile di SSM_PARAMETER_STORE_TTL ambiente, come spiegato più avanti in questo argomento.
Se la cache configurata non TTL è scaduta, viene utilizzato il valore del parametro memorizzato nella cache. Se il tempo è scaduto, il valore memorizzato nella cache viene invalidato e il valore del parametro sarà recuperato da Parameter Store.
Inoltre, il sistema rileva i valori dei parametri utilizzati di frequente e li mantiene nella cache mentre cancella quelli scaduti o non utilizzati.
Dettagli di implementazione
Usa i seguenti dettagli per aiutarti a configurare l'estensione Lambda AWS Parameters and Secrets.
- Autenticazione
-
Per autorizzare e autenticare le richieste Parameter Store, l'estensione utilizza le stesse credenziali utilizzate per eseguire la funzione Lambda stessa. Pertanto, il ruolo AWS Identity and Access Management (IAM) utilizzato per eseguire la funzione deve disporre delle seguenti autorizzazioni per interagire con: Parameter Store
-
ssm:GetParameter
: obbligatorio per recuperare i parametri da Parameter Store -
kms:Decrypt
: obbligatorio se stai recuperando i parametriSecureString
da Parameter Store
Per ulteriori informazioni, consulta Ruolo di esecuzione di AWS Lambda nella Guida per gli sviluppatori di AWS Lambda .
-
- Istanziazione
-
Lambda crea istanze separate corrispondenti al livello di simultaneità richiesto dalla funzione. Ogni istanza è isolata e mantiene la propria cache locale dei dati di configurazione. Per ulteriori informazioni sulle istanze Lambda e sulla simultaneità, consulta Configurazione della simultaneità riservata nella Guida per gli sviluppatori di AWS Lambda .
- Nessuna dipendenza SDK
-
L'estensione Lambda AWS Parameters and Secrets funziona indipendentemente da qualsiasi libreria AWS SDK linguistica. An non AWS SDK è necessario per effettuare GET richieste aParameter Store.
- Porta Localhost
-
localhost
Utilizzalo nelle tue GET richieste. L'estensione effettua le richieste alla porta 2773 di localhost. Per utilizzare l'estensione, non è necessario specificare un endpoint esterno o interno. È possibile configurare la porta impostando la variabile di ambientePARAMETERS_SECRETS_EXTENSION_HTTP_PORT
.Ad esempio, in Python, GET URL potresti avere un aspetto simile al seguente esempio.
parameter_url = ('http://localhost:' + port + '/systemsmanager/parameters/get/?name=' + ssm_parameter_path)
- Modifiche al valore di un parametro prima della scadenza TTL
-
L'estensione non rileva le modifiche al valore del parametro e non esegue un aggiornamento automatico prima della TTL scadenza. Se modifichi il valore di un parametro, le operazioni che utilizzano il valore del parametro memorizzato nella cache potrebbero avere esito negativo fino al successivo aggiornamento della cache. Se prevedi modifiche frequenti al valore di un parametro, ti consigliamo di impostare un valore più breve. TTL
- Richiesta dell'intestazione
-
Per recuperare i parametri dalla cache delle estensioni, l'intestazione della GET richiesta deve includere un
X-Aws-Parameters-Secrets-Token
riferimento. Imposta il token suAWS_SESSION_TOKEN
, fornito da Lambda per tutte le funzioni in esecuzione. L'utilizzo di questa intestazione indica che chi effettua la chiamata si trova all'interno dell'ambiente Lambda. - Esempio
-
L'esempio seguente in Python mostra una richiesta di base per recuperare il valore di un parametro memorizzato nella 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)
- ARMsupporto
-
L'estensione non supporta affatto l'ARMarchitettura in Regioni AWS cui sono supportate x86 le architetture x86_64 and.
Per gli elenchi completi delle estensioniARNs, consulta. AWS Parametri e segreti: estensione Lambda ARNs
- Registrazione
-
Lambda registra le informazioni di esecuzione sull'estensione insieme alla funzione utilizzando Amazon Logs. CloudWatch Per impostazione predefinita, l'estensione registra una quantità minima di informazioni su. CloudWatch Per registrare ulteriori dettagli, imposta la variabile di ambiente
PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL
suDEBUG
.
Aggiunta dell'estensione a una funzione Lambda
Per utilizzare l'estensione Lambda AWS Parameters and Secrets, aggiungi l'estensione alla tua funzione Lambda come livello.
Per aggiungere l'estensione alla funzione,utilizza uno dei metodi descritti di seguito.
- AWS Management Console (Opzione Aggiungi livello)
-
Apri la AWS Lambda console all'indirizzo https://console.aws.amazon.com/lambda/
. -
Scegliere la funzione. Nell'area Layers (Livelli), scegli Add a layer (Aggiungi un livello).
-
Nell'area Choose a layer (Scegli un livello), scegli l'opzione AWS layers (Livelli ).
-
Per AWS layers (Livelli ), scegli AWS-Parameters-and-Secrets-Lambda-Extension, seleziona una versione e infine scegli Add (Aggiungi).
- AWS Management Console (Specificare ARN l'opzione)
-
Apri la AWS Lambda console all'indirizzo https://console.aws.amazon.com/lambda/
. -
Scegliere la funzione. Nell'area Layers (Livelli), scegli Add a layer (Aggiungi un livello).
-
Nell'area Scegli un livello, scegli l'ARNopzione Specificare un livello.
-
Per Specificare un ARN, inserisci l'estensione ARN per Regione AWS la tua architettura, quindi scegli Aggiungi.
- AWS Command Line Interface
-
Esegui il comando seguente nell' AWS CLI. Sostituisci ciascuno
example resource placeholder
con le tue informazioni.aws lambda update-function-configuration \ --function-name
function-name
\ --layerslayer-ARN
Informazioni correlate
Uso dei livelli con la funzione Lambda
Configurazione delle estensioni (archivio di file .zip)
AWS Parametri e segreti: variabili di ambiente Lambda Extension
Puoi configurare l'estensione modificando le seguenti variabili di ambiente. Per visualizzare le impostazioni correnti, imposta PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL
su DEBUG
. Per ulteriori informazioni, consulta Uso delle variabili di AWS Lambda ambiente nella Guida per gli AWS Lambda sviluppatori.
Nota
AWS Lambda registra i dettagli operativi sull'estensione Lambda e sulla funzione Lambda in Amazon Logs. CloudWatch
Variabile di ambiente | Informazioni | Richiesto | Valori validi | Valore predefinito |
---|---|---|---|---|
|
Il timeout, in millisecondi, per le richieste a Parameter Store.
Il valore 0 (zero) indica l'assenza di timeout. |
No | Tutti i numeri interi | 0 (zero) |
|
Il timeout, in millisecondi, per le richieste a Gestione dei segreti.
Il valore 0 (zero) indica l'assenza di timeout. |
No | Tutti i numeri interi |
0 (zero) |
|
La durata massima valida, in secondi, di un parametro nella cache prima che venga invalidato. Un valore pari a 0 (zero) indica che la cache deve essere bypassata. Questa variabile viene ignorata se il valore per |
No | Da 0 (zero) a 300 s (cinque minuti) | 300 s (cinque minuti) |
|
La durata massima valida, in secondi, di un parametro nella cache prima che venga invalidato. Un valore pari a 0 (zero) indica che la cache è bypassata. Questa variabile viene ignorata se il valore per |
No | Da 0 (zero) a 300 s (cinque minuti) | 300 s (5 minuti) |
PARAMETERS_SECRETS_EXTENSION_CACHE_ENABLED |
Determina se la cache per l'estensione è abilitata. Valori del valore: |
No | TRUE | FALSE | TRUE |
PARAMETERS_SECRETS_EXTENSION_CACHE_SIZE |
La dimensione massima della cache in termini di numero di elementi. Un valore pari a 0 (zero) indica che la cache è bypassata. Questa variabile viene ignorata se entrambi i TTL valori della cache sono 0 (zero). |
No | Da 0 (zero) a 1000 |
1000 |
PARAMETERS_SECRETS_EXTENSION_HTTP_PORT |
La porta per il HTTP server locale. | No | 1 - 65535 |
2773 |
PARAMETERS_SECRETS_EXTENSION_MAX_CONNECTIONS |
Numero massimo di connessioni per i HTTP client utilizzati dall'estensione per effettuare richieste a Parameter Store o Secrets Manager. Si tratta di una configurazione per client per il numero di connessioni che sia il client di Secrets Manager che il client Parameter Store effettuano ai servizi di backend. |
No | Minimo 1; nessun limite massimo. |
3 |
PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL |
Il livello di dettaglio riportato nei log per l'estensione. Consigliamo di utilizzare I log per le operazioni Lambda vengono automaticamente inviati a un gruppo di log Logs CloudWatch associato. |
No |
|
INFO |
Comandi di esempio per l'utilizzo dell'estensione AWS Systems ManagerParameter Store e AWS Secrets Manager
Gli esempi in questa sezione mostrano API le azioni da utilizzare con l' AWS Secrets Manager estensione AWS Systems Manager Parameter Store and.
Comandi di esempio per Parameter Store
L'estensione Lambda utilizza l'accesso in sola lettura all'azione. GetParameterAPI
Per richiamare questa azione, effettua una HTTP GET chiamata simile alla seguente. Questo formato di comando consente l'accesso ai parametri del livello di parametri standard.
GET http://localhost:
port
/systemsmanager/parameters/get?name=parameter-name
&version=version
&label=label
&withDecryption={true|false}
In questo esempio: parameter-name
rappresenta il nome completo del parametroMyParameter
, ad esempio per un parametro che non si trova in una gerarchia o %2FDev%2FProduction%2FEast%2FProject-ABC%2FMyParameter
per un parametro denominato /Dev/Production/East/Project-ABC/MyParameter
che fa parte di una gerarchia.
Nota
Quando si utilizzano GET le chiamate, i valori dei parametri devono essere codificati per HTTP preservare i caratteri speciali. Ad esempio, invece di formattare un percorso gerarchico come/a/b/c
, codifica caratteri che potrebbero essere interpretati come parte di, ad esempio. URL %2Fa%2Fb%2Fc
version
e label
sono i selettori disponibili per l'uso con l'azione. GetParameter
GET http://localhost:
port
/systemsmanager/parameters/get/?name=MyParameter&version=5
Per richiamare un parametro in una gerarchia, effettuate una HTTP GET chiamata simile alla seguente.
GET http://localhost:
port
/systemsmanager/parameters/get?name=%2Fa%2Fb%2F&label=release
Per chiamare un parametro pubblico (globale), effettuate una HTTP GET chiamata simile alla seguente.
GET http://localhost:
port
/systemsmanager/parameters/get/?name=%2Faws%2Fservice%20list%2F…
Per effettuare una HTTP GET chiamata a un Secrets Manager segreta utilizzando Parameter Store riferimenti, effettuate una HTTP GET chiamata simile alla seguente.
GET http://localhost:
port
/systemsmanager/parameters/get?name=%2Faws%2Freference%2Fsecretsmanager%2F…
Per effettuare una chiamata utilizzando Amazon Resource Name (ARN) per un parametro, effettua una HTTP GET chiamata simile alla seguente.
GET http://localhost:
port
/systemsmanager/parameters/get?name=arn:aws:ssm:us-east-1:123456789012:parameter/MyParameter
Per effettuare una chiamata che accede a un SecureString
parametro con decrittografia, effettua una HTTP GET chiamata simile alla seguente.
GET http://localhost:
port
/systemsmanager/parameters/get?name=MyParameter&withDecryption=true
Puoi specificare che i parametri non vengano decrittografati omettendo withDecryption
o impostandolo esplicitamente su false
. Puoi anche specificare una versione o un'etichetta, ma non entrambe. In tal caso, viene utilizzata solo la prima di esse inserita dopo il punto interrogativo (?
) in. URL
AWS Parametri e segreti: estensione Lambda ARNs
Le tabelle seguenti forniscono l'estensione ARNs per le architetture e le regioni supportate.
Argomenti
Estensione ARNs per le architetture e x86_64x86
Regione | ARN |
---|---|
Stati Uniti orientali (Ohio) |
|
Stati Uniti orientali (Virginia settentrionale) |
|
Stati Uniti occidentali (California settentrionale) |
|
Stati Uniti occidentali (Oregon) |
|
Africa (Città del Capo) |
|
Asia Pacifico (Hong Kong) |
|
Regione Asia Pacifico (Hyderabad) |
|
Asia Pacifico (Giacarta) |
|
Asia Pacifico (Melbourne) |
|
Asia Pacifico (Mumbai) |
|
Asia Pacific (Osaka) |
|
Asia Pacific (Seul) |
|
Asia Pacifico (Singapore) |
|
Asia Pacifico (Sydney) |
|
Asia Pacifico (Tokyo) |
|
Canada (Centrale) |
|
Canada occidentale (Calgary) | arn:aws:lambda:ca-west-1:243964427225:layer:AWS-Parameters-and-Secrets-Lambda-Extension:1 |
Cina (Pechino) |
|
China (Ningxia) |
|
Europa (Francoforte) |
|
Europa (Irlanda) |
|
Europa (Londra) |
|
Europa (Milano) |
|
Europa (Parigi) |
|
Regione Europa (Spagna) |
|
Europa (Stoccolma) |
|
Israele (Tel Aviv) |
|
Regione Europa (Zurigo) |
|
Medio Oriente (Bahrein) |
|
Medio Oriente () UAE | arn:aws:lambda:me-central-1:858974508948:layer:AWS-Parameters-and-Secrets-Lambda-Extension:11 |
Sud America (San Paolo) |
|
AWS GovCloud (Stati Uniti orientali) |
|
AWS GovCloud (Stati Uniti occidentali) |
|
Estensione ARNs per ARM64 e architetture Mac with Apple silicon
Regione | ARN |
---|---|
Stati Uniti orientali (Ohio) |
|
Stati Uniti orientali (Virginia settentrionale) |
|
Regione Stati Uniti occidentali (California settentrionale) |
|
US West (Oregon) |
|
Regione Africa (Città del Capo) |
|
Regione Asia Pacifico (Hong Kong) |
|
Regione Asia Pacifico (Giacarta) |
|
Asia Pacifico (Mumbai) |
|
Asia Pacifico (Osaka-Locale) |
|
Regione Asia Pacifico (Seoul) |
|
Asia Pacifico (Singapore) |
|
Asia Pacifico (Sydney) |
|
Asia Pacifico (Tokyo) |
|
Regione Canada (Centrale) |
|
Europa (Francoforte) |
|
Europa (Irlanda) |
|
Europa (Londra) |
|
Regione Europa (Milano) |
|
Regione Europa (Parigi) |
|
Regione Europa (Stoccolma) |
|
Regione Medio Oriente (Bahrein) |
|
Regione Sud America (San Paolo) |
|