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: Eine Lambda-Funktion mit einer Funktion erstellen URL
In diesem Tutorial erstellen Sie eine Lambda-Funktion, die als ZIP-Dateiarchiv mit einem öffentlichen URL Funktionsendpunkt definiert ist, der das Produkt zweier Zahlen zurückgibt. Weitere Hinweise zur Konfiguration der Funktion URLs finden Sie unter. Funktion URLs
Tipp
Lambda bietet zwei Möglichkeiten, Ihre Funktion über einen HTTP Endpunkt aufzurufen: function URLs und Amazon API Gateway. Wenn Sie sich nicht sicher sind, welche Methode für Ihren Anwendungsfall am besten geeignet ist, finden Sie weitere Informationen unter. Wählen Sie eine Methode aus, um Ihre Lambda-Funktion mithilfe einer Anfrage aufzurufen HTTP
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 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 CLI Bash-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 Rollenseite
der Konsole AWS Identity and Access Management (IAM). -
Wählen Sie Rolle erstellen.
-
Wählen Sie unter Vertrauenswürdiger Entitätstyp die Option AWS -Service, dann für Anwendungsfall die Option Lambda aus.
-
Wählen Sie Weiter.
-
Geben Sie im Suchfeld Berechtigungsrichtlinien die Zeichenfolge
AWSLambdaBasicExecutionRole
ein. -
Aktivieren Sie das Kontrollkästchen neben der
AWSLambdaBasicExecutionRole
AWS verwalteten Richtlinie und wählen Sie dann Weiter. -
Geben Sie
lambda-url-role
für den Rollennamen ein und wählen Sie dann Rolle erstellen.
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.
Um die Ihrer ARN Ausführungsrolle zu finden
-
Öffnen Sie die Rollenseite
der Konsole AWS Identity and Access Management (IAM). -
Wählen Sie die soeben erstellte Rolle (
lambda-url-role
). -
Kopieren Sie im Übersichtsbereich den ARN.
Erstellen Sie eine Lambda-Funktion mit einer Funktion URL (.zip-Dateiarchiv)
Erstellen Sie eine Lambda-Funktion mit einem URL Funktionsendpunkt mithilfe eines ZIP-Dateiarchivs.
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, die Rolle ARN durch Ihre eigene Ausführungsrolle zu ersetzen, die ARN 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 Funktion gewährt. URL
aws lambda add-permission \ --function-name my-url-function \ --action lambda:InvokeFunctionUrl \ --principal "*" \ --function-url-auth-type "NONE" \ --statement-id url
-
Erstellen Sie mit dem URL Befehl einen Endpunkt für die
create-function-url-config
Funktion.aws lambda create-function-url-config \ --function-name my-url-function \ --auth-type NONE
Testen Sie den URL Funktionsendpunkt
Rufen Sie Ihre Lambda-Funktion auf, indem Sie Ihren URL Funktionsendpunkt 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 Funktion URL () CloudFormation
Sie können mithilfe des AWS CloudFormation Typs AWS::Lambda::Url
auch eine Lambda-Funktion mit einem URL Funktionsendpunkt 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 Sie eine Lambda-Funktion mit einer Funktion URL ()AWS SAM
Sie können auch eine Lambda-Funktion erstellen, die mit einer Funktion konfiguriert ist, URL indem Sie AWS Serverless Application Model (AWS SAM) verwenden.
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 (Rollen)
der IAM-Konsole. -
Wählen Sie die von Ihnen erstellte Ausführungsrolle aus.
-
Wählen Sie Löschen.
-
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.