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.
Tutorial: Erstellen einer Lambda-Funktion mit einer Funktions-URL
In diesem Tutorial erstellen Sie eine Lambda-Funktion, die als ZIP-Archiv mit einem öffentlichen Funktions-URL-Endpunkt definiert ist und das Produkt aus zwei Zahlen zurückgibt. Weitere Hinweise zum Konfigurieren von Funktions-URLs finden Sie unter Funktion URLs.
Voraussetzungen
In diesem Tutorial wird davon ausgegangen, dass Sie über Kenntnisse zu den grundlegenden Lambda-Operationen und der Lambda-Konsole verfügen. Sofern noch nicht geschehen, befolgen Sie die Anweisungen unter Erstellen einer Lambda-Funktion mit der Konsole, um Ihre erste Lambda-Funktion zu erstellen.
Um die folgenden Schritte durchzuführen, benötigen Sie die AWS Command Line Interface (AWS CLI) Version 2. Befehle und die erwartete Ausgabe werden in separaten Blöcken aufgeführt:
aws --version
Die Ausgabe sollte folgendermaßen aussehen:
aws-cli/2.13.27 Python/3.11.6 Linux/4.14.328-248.540.amzn2.x86_64 exe/x86_64.amzn.2
Bei langen Befehlen wird ein Escape-Zeichen (\
) wird verwendet, um einen Befehl über mehrere Zeilen zu teilen.
Verwenden Sie auf Linux und macOS Ihren bevorzugten Shell- und Paket-Manager.
Anmerkung
In Windows werden einige Bash-CLI-Befehle, die Sie häufig mit Lambda verwenden (z. B. zip
), von den integrierten Terminals des Betriebssystems nicht unterstützt. Um eine in Windows integrierte Version von Ubuntu und Bash zu erhalten, installieren Sie das Windows-Subsystem für Linux
Erstellen einer Ausführungsrolle
Erstellen Sie die Ausführungsrolle die Ihrer Lambda-Funktion die Berechtigung für den Zugriff auf AWS -Ressourcen erteilt.
So erstellen Sie eine Ausführungsrolle
-
Öffnen Sie die Seite Rollen
der AWS Identity and Access Management (IAM-) Konsole. -
Wählen Sie Rolle erstellen aus.
-
Wählen Sie für Vertrauenswürdigen Entitätstyp AWS Service und dann für Anwendungsfall Lambda aus.
-
Wählen Sie Weiter aus.
-
Geben Sie im Bereich „Berechtigungsrichtlinien“
AWSLambdaBasicExecutionRole
in das Suchfeld ein. -
Aktivieren Sie das Kontrollkästchen neben der
AWSLambdaBasicExecutionRole
AWS verwalteten Richtlinie und wählen Sie dann Weiter aus. -
Geben Sie
lambda-url-role
den Rollennamen ein und wählen Sie dann Rolle erstellen aus.
Die AWSLambdaBasicExecutionRole
Richtlinie verfügt über die Berechtigungen, die die Funktion benötigt, um Protokolle in Amazon CloudWatch Logs zu schreiben. Später im Tutorial benötigen Sie den Amazon-Ressourcennamen (ARN) der Rolle, um Ihre Lambda-Funktion zu erstellen.
So finden Sie den ARN Ihrer Ausführungsrolle
-
Öffnen Sie die Seite Rollen
der AWS Identity and Access Management (IAM-) Konsole. -
Wählen Sie die Rolle aus, die Sie gerade erstellt haben (
lambda-url-role
). -
Kopieren Sie im Übersichtsbereich den ARN.
Erstellen einer Lambda-Funktion mit einer Funktions-URL (ZIP-Dateiarchiv)
Erstellen Sie eine Lambda-Funktion mit einem Funktions-URL-Endpunkt mit einem ZIP-Dateiarchiv.
So erstellen Sie die Funktion
-
Kopieren Sie das folgende Codebeispiel in eine Datei mit dem Namen
index.js
.Beispiel index.js
exports.handler = async (event) => { let body = JSON.parse(event.body); const product = body.num1 * body.num2; const response = { statusCode: 200, body: "The product of " + body.num1 + " and " + body.num2 + " is " + product, }; return response; };
-
Erstellen Sie ein Bereitstellungspaket.
zip function.zip index.js
-
Erstellen Sie eine Lambda-Funktion mit dem Befehl
create-function
. Achten Sie darauf, den Rollen-ARN durch den ARN Ihrer eigenen Ausführungsrolle zu ersetzen, den Sie zuvor im Tutorial kopiert haben.aws lambda create-function \ --function-name my-url-function \ --runtime nodejs18.x \ --zip-file fileb://function.zip \ --handler index.handler \ --role
arn:aws:iam::123456789012:role/lambda-url-role
-
Fügen Sie Ihrer Funktion eine ressourcenbasierte Richtlinie hinzu, die Berechtigungen für den öffentlichen Zugriff auf Ihre Funktions-URL gewährt.
aws lambda add-permission \ --function-name my-url-function \ --action lambda:InvokeFunctionUrl \ --principal "*" \ --function-url-auth-type "NONE" \ --statement-id url
-
Erstellen Sie einen URL-Endpunkt für die Funktion mit dem Befehl
create-function-url-config
.aws lambda create-function-url-config \ --function-name my-url-function \ --auth-type NONE
Testen des Funktions-URL-Endpunkts
Rufen Sie Ihre Lambda-Funktion auf, indem Sie Ihren Funktions-URL-Endpunkt mit einem HTTP-Client wie curl oder Postman aufrufen.
curl
'https://abcdefg.lambda-url.us-east-1.on.aws/'
\ -H 'Content-Type: application/json' \ -d '{"num1": "10", "num2": "10"}'
Die Ausgabe sollte folgendermaßen aussehen:
The product of 10 and 10 is 100
Erstellen Sie eine Lambda-Funktion mit einer Funktions-URL () CloudFormation
Sie können mithilfe des AWS CloudFormation Typs AWS::Lambda::Url
auch eine Lambda-Funktion mit einem Funktions-URL-Endpunkt erstellen.
Resources: MyUrlFunction: Type: AWS::Lambda::Function Properties: Handler: index.handler Runtime: nodejs18.x Role: arn:aws:iam::123456789012:role/lambda-url-role Code: ZipFile: | exports.handler = async (event) => { let body = JSON.parse(event.body); const product = body.num1 * body.num2; const response = { statusCode: 200, body: "The product of " + body.num1 + " and " + body.num2 + " is " + product, }; return response; }; Description: Create a function with a URL. MyUrlFunctionPermissions: Type: AWS::Lambda::Permission Properties: FunctionName: !Ref MyUrlFunction Action: lambda:InvokeFunctionUrl Principal: "*" FunctionUrlAuthType: NONE MyFunctionUrl: Type: AWS::Lambda::Url Properties: TargetFunctionArn: !Ref MyUrlFunction AuthType: NONE
Erstellen einer Lambda-Funktion mit einer Funktions-URL (AWS SAM)
Sie können mit AWS Serverless Application Model (AWS SAM) auch eine Lambda-Funktion erstellen, die mit einer Funktions-URL konfiguriert ist.
ProductFunction: Type: AWS::Serverless::Function Properties: CodeUri: function/. Handler: index.handler Runtime: nodejs18.x AutoPublishAlias: live FunctionUrlConfig: AuthType: NONE
Bereinigen Ihrer Ressourcen
Sie können jetzt die Ressourcen, die Sie für dieses Tutorial erstellt haben, löschen, es sei denn, Sie möchten sie behalten. Durch das Löschen von AWS Ressourcen, die Sie nicht mehr verwenden, vermeiden Sie unnötige Kosten für Ihre AWS-Konto.
So löschen Sie die Ausführungsrolle
-
Öffnen Sie die Seite Roles
in der IAM-Konsole. -
Wählen Sie die von Ihnen erstellte Ausführungsrolle aus.
-
Wählen Sie Löschen aus.
-
Geben Sie den Namen der Rolle in das Texteingabefeld ein und wählen Sie Delete (Löschen) aus.
So löschen Sie die Lambda-Funktion:
-
Öffnen Sie die Seite Funktionen
der Lambda-Konsole. -
Wählen Sie die Funktion aus, die Sie erstellt haben.
-
Wählen Sie Aktionen, Löschen aus.
-
Geben Sie
delete
in das Texteingabefeld ein und wählen Sie Delete (Löschen) aus.