Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Die Verwendung von Parameter Store Parameter in AWS Lambda Funktionen
Parameter Store, ein Tool in AWS Systems Manager, bietet sicheren, hierarchischen Speicher für die Verwaltung von Konfigurationsdaten und Geheimnissen. Sie können Daten wie Passwörter, Datenbankzeichenfolgen speichern, Amazon Machine Image (AMI) IDs und Lizenzcodes als Parameterwerte.
Um Parameter von zu verwenden Parameter Store In AWS Lambda Funktionen ohne SDK können Sie die Lambda-Erweiterung AWS Parameters and Secrets verwenden. Diese Erweiterung ruft Parameterwerte ab und speichert sie zur späteren Verwendung. Durch die Verwendung der Lambda-Erweiterung können Sie Ihre Kosten senken, indem Sie die Anzahl der API-Aufrufe reduzieren Parameter Store. Die Verwendung der Erweiterung kann auch die Latenz verbessern, da das Abrufen eines zwischengespeicherten Parameters schneller ist als das Abrufen von Parameter Store.
Eine Lambda-Erweiterung ist ein begleitender Prozess, der die Fähigkeiten einer Lambda-Funktion erweitert. Eine Erweiterung ist wie ein Client, der parallel zu einem Lambda-Aufruf ausgeführt wird. Dieser parallele Client kann jederzeit während seines Lebenszyklus mit Ihrer Funktion verbunden werden. Weitere Informationen zu Lambda-Erweiterungen finden Sie unter Lambda-Erweiterungs-API im AWS Lambda -Entwicklerhandbuch.
Die Lambda-Erweiterung AWS Parameters and Secrets funktioniert für beide Parameter Store und. AWS Secrets Manager Informationen zur Verwendung der Lambda-Erweiterung mit Geheimnissen aus Secrets Manager finden Sie unter Verwenden von AWS Secrets Manager Geheimnissen in AWS Lambda Funktionen im AWS Secrets Manager Benutzerhandbuch.
Verwandte Informationen
Verwenden der Lambda-Erweiterung AWS Parameter and Secrets zum Zwischenspeichern von Parametern und Geheimnissen
So funktioniert die Erweiterung
Um Parameter in einer Lambda-Funktion ohne die Lambda-Erweiterung zu verwenden, müssen Sie Ihre Lambda-Funktion so konfigurieren, dass sie Konfigurationsupdates erhält, indem Sie sie in die GetParameter
API-Aktion für integrieren Parameter Store.
Wenn Sie die Lambda-Erweiterung AWS Parameters and Secrets verwenden, ruft die Erweiterung den Parameterwert von Parameter Store und speichert ihn im lokalen Cache. Dann wird der zwischengespeicherte Wert für weitere Aufrufe verwendet, bis er abläuft. Zwischengespeicherte Werte laufen ab, nachdem sie ihre time-to-live (TTL) überschritten haben. Sie können den TTL-Wert mithilfe der Umgebungsvariablen SSM_PARAMETER_STORE_TTL
konfigurieren, wie weiter unten in diesem Thema erläutert.
Wenn die konfigurierte Cache-TTL nicht abgelaufen ist, wird der zwischengespeicherte Parameterwert verwendet. Wenn die Zeit abgelaufen ist, wird der zwischengespeicherte Wert ungültig gemacht und der Parameterwert wird von abgerufen Parameter Store.
Außerdem erkennt das System Parameterwerte, die häufig verwendet werden, und behält sie im Cache bei, während abgelaufene oder nicht verwendete Werte gelöscht werden.
Wichtig
Die Erweiterung kann nur in der INVOKE
Phase der Lambda-Operation und nicht während der INIT
Phase aufgerufen werden.
Implementierungsinformationen
Verwenden Sie die folgenden Details, um Ihnen bei der Konfiguration der Lambda-Erweiterung AWS Parameters and Secrets zu helfen.
- Authentifizierung
-
Um zu autorisieren und zu authentifizieren Parameter Store Bei Anfragen verwendet die Erweiterung dieselben Anmeldeinformationen wie die, die für die Ausführung der Lambda-Funktion selbst verwendet wurden. Daher muss die AWS Identity and Access Management (IAM) -Rolle, die zur Ausführung der Funktion verwendet wird, über die folgenden Berechtigungen verfügen, um mit ihnen interagieren zu können Parameter Store:
-
ssm:GetParameter
— Erforderlich, um Parameter abzurufen von Parameter Store -
kms:Decrypt
— Erforderlich, wenn SieSecureString
Parameter abrufen von Parameter Store
Weitere Informationen finden Sie unter AWS Lambda -Ausführungsrolle im AWS Lambda -Entwicklerhandbuch.
-
- Instanziierung
-
Lambda instanziiert separate Instances, die der Gleichzeitigkeitsstufe entsprechen, die Ihre Funktion benötigt. Jede Instance ist isoliert und verwaltet ihren eigenen lokalen Cache Ihrer Konfigurationsdaten. Weitere Informationen über Lambda-Instances und Gleichzeitigkeit finden Sie unter Konfigurieren der reservierten Währung im AWS Lambda -Entwicklerhandbuch.
- Keine SDK-Abhängigkeit
-
Die Lambda-Erweiterung AWS Parameters and Secrets funktioniert unabhängig von jeder AWS SDK-Sprachbibliothek. Ein AWS SDK ist nicht erforderlich, um GET-Anfragen zu stellen Parameter Store.
- Localhost port
-
Verwenden Sie
localhost
in Ihren GET-Anfragen. Die Erweiterung stellt Anfragen an localhost Port 2773. Sie müssen keinen externen oder internen Endpunkt angeben, um die Erweiterung zu verwenden. Sie können den Port konfigurieren, indem Sie die Umgebungsvariable aufPARAMETERS_SECRETS_EXTENSION_HTTP_PORT
setzen.In Python könnte Ihre GET-URL beispielsweise wie im folgenden Beispiel aussehen.
parameter_url = ('http://localhost:' + port + '/systemsmanager/parameters/get/?name=' + ssm_parameter_path)
- Änderungen an einem Parameterwert, bevor TTL abläuft
-
Die Erweiterung erkennt keine Änderungen am Parameterwert und führt keine automatische Aktualisierung durch, bevor die TTL abläuft. Wenn Sie einen Parameterwert ändern, schlagen Vorgänge, die den zwischengespeicherten Parameterwert verwenden, möglicherweise fehl, bis der Cache das nächste Mal aktualisiert wird. Wenn Sie häufige Änderungen an einem Parameterwert erwarten, empfehlen wir Ihnen, einen kürzeren TTL-Wert einzustellen.
- Anfordern eines Headers
-
Um Parameter aus dem Erweiterungs-Cache abzurufen, muss der Header Ihrer GET-Anfrage eine
X-Aws-Parameters-Secrets-Token
-Referenz enthalten. Setzen Sie das Token aufAWS_SESSION_TOKEN
, das von Lambda für alle laufenden Funktionen bereitgestellt wird. Die Verwendung dieses Headers zeigt an, dass sich der Anrufer in der Lambda-Umgebung befindet. - Beispiel
-
Das folgende Beispiel in Python demonstriert eine einfache Anfrage zum Abrufen des Wertes eines zwischengespeicherten Parameters.
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)
- ARM-Unterstützung
-
Die Erweiterung unterstützt die ARM-Architektur in den meisten AWS-Regionen Fällen x86_64 and x86 Architekturen werden unterstützt. Wenn Sie die ARM-Architektur verwenden, empfehlen wir Ihnen, zu überprüfen, ob Ihre Architektur unterstützt wird. Vollständige Listen der Erweiterungen finden Sie ARNs unterAWS Lambda-Erweiterung für Parameter und Geheimnisse ARNs.
- Protokollierung
-
Lambda protokolliert Ausführungsinformationen über die Erweiterung zusammen mit der Funktion mithilfe von Amazon CloudWatch Logs. Standardmäßig protokolliert die Erweiterung eine minimale Menge an CloudWatch Informationen unter. Um weitere Details zu protokollieren, setzen Sie die Umgebungsvariable
PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL
aufDEBUG
.
Hinzufügen der Erweiterung zu einer Lambda-Funktion
Um die Lambda-Erweiterung AWS Parameters and Secrets zu verwenden, fügen Sie die Erweiterung als Ebene zu Ihrer Lambda-Funktion hinzu.
Verwenden Sie eine der folgenden Methoden, um die Erweiterung zu Ihrer Funktion hinzuzufügen.
- AWS Management Console (Option „Ebene hinzufügen“)
-
Öffnen Sie die AWS Lambda Konsole unter https://console.aws.amazon.com/lambda/
. -
Wählen Sie Ihre Funktion. Wählen Sie im Bereich Layers (Ebenen) die Option Add a layer (Ebene hinzufügen) aus.
-
Wählen Sie im Bereich Eine Ebene auswählen die Option AWS -Ebenen aus.
-
Wählen Sie für AWS -Ebenen AWS-Parameter und Secrets-Lambda-Erweiterung aus, wählen Sie eine Version und wählen Sie anschließend Hinzufügen aus.
- AWS Management Console (ARN-Option angeben)
-
Öffnen Sie die AWS Lambda Konsole unter https://console.aws.amazon.com/lambda/
. -
Wählen Sie Ihre Funktion. Wählen Sie im Bereich Layers (Ebenen) die Option Add a layer (Ebene hinzufügen) aus.
-
Wählen Sie im Bereich Choose a layer (Ebene auswählen) die Option Specify an ARN (ARN angeben) aus.
-
Geben Sie für Specify an ARN die Erweiterung ARN für Ihre AWS-Region und Architektur ein, und wählen Sie dann Hinzufügen aus.
- AWS Command Line Interface
-
Führen Sie in der AWS CLI den folgenden aus. Ersetzen Sie jeden
example resource placeholder
durch Ihre Informationen.aws lambda update-function-configuration \ --function-name
function-name
\ --layerslayer-ARN
Ähnliche Informationen
Verwenden von Ebenen mit Ihrer Lambda-Funktion
Konfigurieren von Erweiterungen (ZIP-Dateiarchiv)
AWS Parameter und Geheimnisse Umgebungsvariablen der Lambda-Erweiterung
Sie können die Erweiterung konfigurieren, indem Sie die folgenden Umgebungsvariablen ändern. Um die aktuellen Einstellungen zu sehen, setzen Sie PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL
auf DEBUG
. Weitere Informationen finden Sie unter Verwenden von AWS Lambda Umgebungsvariablen im AWS Lambda Entwicklerhandbuch.
Anmerkung
AWS Lambda zeichnet Betriebsdetails zur Lambda-Erweiterung und Lambda-Funktion in Amazon CloudWatch Logs auf.
Umgebungsvariable | Details | Erforderlich | Zulässige Werte | Standardwert |
---|---|---|---|---|
|
Timeout in Millisekunden für Anfragen an Parameter Store.
Ein Wert von 0 (null) gibt an, dass kein Timeout vorliegt. |
Nein | Alle ganzen Zahlen | 0 (Null) |
|
Timeout in Millisekunden für Anfragen an Secrets Manager.
Ein Wert von 0 (null) gibt an, dass kein Timeout vorliegt. |
Nein | Alle ganzen Zahlen |
0 (Null) |
|
Maximal gültige Lebensdauer eines Parameters im Cache in Sekunden, bevor er ungültig wird. Ein Wert von 0 (Null) gibt an, dass der Cache umgangen werden soll. Diese Variable wird ignoriert, wenn der Wert für |
Nein | 0 (Null) bis 300 Sek. (Fünf Minuten) | 300 Sek. (Fünf Minuten) |
|
Maximal gültige Lebensdauer eines Secrets im Cache in Sekunden, bevor es ungültig wird. Ein Wert von 0 (Null) gibt an, dass der Cache umgangen wurde. Diese Variable wird ignoriert, wenn der Wert für |
Nein | 0 (Null) bis 300 Sek. (Fünf Minuten) | 300 Sek. (5 Minuten) |
PARAMETERS_SECRETS_EXTENSION_CACHE_ENABLED |
Bestimmt, ob der Cache für die Erweiterung aktiviert ist. Gültige Werte: |
Nein | TRUE | FALSE | TRUE |
PARAMETERS_SECRETS_EXTENSION_CACHE_SIZE |
Die maximale Größe des Caches in Bezug auf die Anzahl der Elemente. Ein Wert von 0 (Null) gibt an, dass der Cache umgangen wurde. Diese Variable wird ignoriert, wenn beide Cache-TTL-Werte 0 (Null) sind. |
Nein | 0 (Null) bis 1 000 |
1000 |
PARAMETERS_SECRETS_EXTENSION_HTTP_PORT |
Der Port für den lokalen HTTP-Server. | Nein | 1–65 535 |
2773 |
PARAMETERS_SECRETS_EXTENSION_MAX_CONNECTIONS |
Maximale Anzahl von Verbindungen für die HTTP-Clients, an die die Erweiterung Anfragen sendet Parameter Store oder Secrets Manager. Dies ist eine Konfiguration pro Client für die Anzahl der Verbindungen, die sowohl der Secrets Manager Manager-Client als auch Parameter Store Der Client stellt zu den Backend-Diensten her. |
Nein | Mindestens 1; Keine Höchstgrenze. |
3 |
PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL |
Der Detaillierungsgrad, der in Protokollen für die Erweiterung gemeldet wird. Wir empfehlen die Verwendung von Protokolle für Lambda-Operationen werden automatisch an eine zugehörige CloudWatch Logs-Protokollgruppe übertragen. |
Nein |
|
INFO |
Beispielbefehle für die Verwendung von AWS Systems Manager Parameter Store und AWS Secrets Manager Erweiterung
Die Beispiele in diesem Abschnitt demonstrieren API-Aktionen zur Verwendung mit AWS Systems Manager Parameter Store und AWS Secrets Manager Erweiterung.
Beispielbefehle für Parameter Store
Die Lambda-Erweiterung verwendet schreibgeschützten Zugriff auf die GetParameterAPI-Aktion.
Führen Sie zum Aufrufen dieser Aktion einen HTTP-GET-Aufruf ähnlich dem folgenden durch. Dieses Befehlsformat bietet Zugriff auf Parameter in der Standardparameterebene.
GET http://localhost:
port
/systemsmanager/parameters/get?name=parameter-name
&version=version
&label=label
&withDecryption={true|false}
In diesem Beispiel parameter-name
steht sie für den vollständigen Parameternamen, z. B. für einen ParameterMyParameter
, der sich nicht in einer Hierarchie befindet, oder %2FDev%2FProduction%2FEast%2FProject-ABC%2FMyParameter
für einen Parameter mit dem Namen/Dev/Production/East/Project-ABC/MyParameter
, der Teil einer Hierarchie ist.
Anmerkung
Bei Verwendung von GET-Aufrufen müssen Parameterwerte für HTTP codiert werden, um Sonderzeichen zu erhalten. Anstatt beispielsweise einen hierarchischen Pfad wie /a/b/c
zu formatieren, codieren Sie Zeichen, die als Teil der URL interpretiert werden könnten, wie z. B. %2Fa%2Fb%2Fc
.
version
und label
sind die Selektoren für die Verwendung mit der GetParameter
Aktion verfügbar.
GET http://localhost:
port
/systemsmanager/parameters/get/?name=MyParameter&version=5
Um einen Parameter in einer Hierarchie aufzurufen, führen Sie einen HTTP-GET-Aufruf ähnlich dem folgenden durch.
GET http://localhost:
port
/systemsmanager/parameters/get?name=%2Fa%2Fb%2F&label=release
Um einen öffentlichen (globalen) Parameter aufzurufen, führen Sie einen HTTP-GET-Aufruf ähnlich dem folgenden durch.
GET http://localhost:
port
/systemsmanager/parameters/get/?name=%2Faws%2Fservice%20list%2F…
Um einen HTTP-GET-Aufruf an ein Secrets Manager Manager-Secret zu tätigen, verwenden Sie Parameter Store Verweise führen Sie einen HTTP-GET-Aufruf ähnlich dem folgenden durch.
GET http://localhost:
port
/systemsmanager/parameters/get?name=%2Faws%2Freference%2Fsecretsmanager%2F…
Um einen Aufruf unter Verwendung des Amazon-Ressourcennamens (ARN) für einen Parameter zu tätigen, führen Sie einen HTTP-GET-Aufruf ähnlich dem folgenden durch.
GET http://localhost:
port
/systemsmanager/parameters/get?name=arn:aws:ssm:us-east-1:123456789012:parameter/MyParameter
Um einen Aufruf zu tätigen, der auf einen SecureString
-Parameter mit Entschlüsselung zugreift, führen Sie einen HTTP-GET-Aufruf ähnlich dem folgenden durch.
GET http://localhost:
port
/systemsmanager/parameters/get?name=MyParameter&withDecryption=true
Sie können angeben, dass Parameter nicht entschlüsselt werden, indem Sie withDecryption
weglassen oder explizit auf false
setzen. Sie können auch entweder eine Version oder ein Label angeben, aber nicht beides. Wenn Sie dies tun, wird nur der erste davon verwendet, der in der URL nach dem Fragezeichen (?
) steht.
AWS Lambda-Erweiterung für Parameter und Geheimnisse ARNs
Die folgenden Tabellen enthalten Erweiterungen ARNs für unterstützte Architekturen und Regionen.
Themen
Erweiterung ARNs für x86_64 and x86 Architekturen
Letzte Aktualisierung: 19. September 2024
Region | ARN |
---|---|
US East (Ohio) |
|
USA Ost (Nord-Virginia) |
|
USA West (Nordkalifornien) |
|
USA West (Oregon) |
|
Africa (Cape Town) |
|
Asien-Pazifik (Hongkong) |
|
Region Asien-Pazifik (Hyderabad) |
|
Asien-Pazifik (Jakarta) |
|
Asien-Pazifik (Melbourne) |
|
Asien-Pazifik (Malaysia) |
arn:aws:lambda:ap-southeast-5:090732460067:layer:AWS-Parameters-and-Secrets-Lambda-Extension:1 |
Asien-Pazifik (Mumbai) |
|
Asien-Pazifik (Osaka) |
|
Asien-Pazifik (Seoul) |
|
Asien-Pazifik (Singapur) |
|
Asien-Pazifik (Sydney) |
|
Asien-Pazifik (Tokio) |
|
Canada (Central) |
|
Kanada West (Calgary) | arn:aws:lambda:ca-west-1:243964427225:layer:AWS-Parameters-and-Secrets-Lambda-Extension:2 |
China (Peking) |
|
China (Ningxia) |
|
Europe (Frankfurt) |
|
Europa (Irland) |
|
Europa (London) |
|
Europa (Milan) |
|
Europa (Paris) |
|
Region Europa (Spanien) |
|
Europa (Stockholm) |
|
Israel (Tel Aviv) |
|
Region Europa (Zürich) |
|
Naher Osten (Bahrain) |
|
Naher Osten (VAE) | arn:aws:lambda:me-central-1:858974508948:layer:AWS-Parameters-and-Secrets-Lambda-Extension:12 |
Südamerika (São Paulo) |
|
AWS GovCloud (US-Ost) |
|
AWS GovCloud (US-West) |
|
Erweiterung ARNs für ARM64 and Mac with Apple silicon Architekturen
Letzte Aktualisierung: 19. September 2024
Region | ARN |
---|---|
US East (Ohio) |
|
USA Ost (Nord-Virginia) |
|
Region USA West (Nordkalifornien) |
|
USA West (Oregon) |
|
Region Afrika (Kapstadt) |
|
Region Asien-Pazifik (Hongkong) |
|
Region Asien-Pazifik (Hyderabad) |
|
Region Asien-Pazifik (Jakarta) |
|
Asien-Pazifik (Melbourne) |
|
Asien-Pazifik (Malaysia) |
arn:aws:lambda:ap-southeast-5:090732460067:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:1 |
Asien-Pazifik (Mumbai) |
|
Asien-Pazifik (Osaka) |
|
Region Asien-Pazifik (Seoul) |
|
Asien-Pazifik (Singapur) |
|
Asien-Pazifik (Sydney) |
|
Asien-Pazifik (Tokio) |
|
Region Kanada (Zentral) |
|
Kanada West (Calgary) | arn:aws:lambda:ca-west-1:243964427225:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:1 |
China (Peking) |
|
China (Ningxia) |
|
Europe (Frankfurt) |
|
Europa (Irland) |
|
Europa (London) |
|
Region Europa (Mailand) |
|
Region Europa (Paris) |
|
Region Europa (Spanien) |
|
Region Europa (Stockholm) |
|
Israel (Tel Aviv) |
|
Region Europa (Zürich) |
|
Region Naher Osten (Bahrain) |
|
Naher Osten (VAE) | arn:aws:lambda:me-central-1:858974508948:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:1 |
Region Südamerika (São Paulo) |
|
AWS GovCloud (US-Ost) |
|
AWS GovCloud (US-West) |
|