Einführung in das Testen mit sam local start-lambda - AWS Serverless Application Model

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.

Einführung in das Testen mit sam local start-lambda

Benutze die AWS SAM CLI Unterbefehlsam local start-lambda, um Ihre Lambda-Funktion über und aufzurufen. AWS CLI SDKs Dieser Befehl startet einen lokalen Endpunkt, der Lambda emuliert.

Um es zu verwendensam local start-lambda, installieren Sie AWS SAM CLI indem Sie die folgenden Schritte ausführen:

Vor der Verwendung empfehlen wirsam local start-lambda, sich mit folgenden Grundkenntnissen vertraut zu machen:

Sam Local Start-Lambda verwenden

Wenn du rennst, ist der sam local start-lambda AWS SAM CLI geht davon aus, dass Ihr aktuelles Arbeitsverzeichnis das Stammverzeichnis Ihres Projekts ist. Das AWS SAM CLI sucht zuerst nach einer template.[yaml|yml] Datei in einem .aws-sam Unterordner. Wenn sie nicht gefunden wird, AWS SAM CLI sucht nach einer template.[yaml|yml] Datei in Ihrem aktuellen Arbeitsverzeichnis.

Um Sam Local Start-Lambda zu verwenden
  1. Führen Sie im Stammverzeichnis Ihres Projekts Folgendes aus:

    $ sam local start-lambda <options>
  2. Das AWS SAM CLI erstellt Ihre Lambda-Funktionen in einem lokalen Docker Behälter. Anschließend gibt er die lokale Adresse an Ihren HTTP Serverendpunkt aus. Im Folgenden wird ein Beispiel gezeigt:

    $ sam local start-lambda Initializing the lambda functions containers. Local image is up-to-date Using local image: public.ecr.aws/lambda/python:3.9-rapid-x86_64. Mounting /Users/.../sam-app/hello_world as /var/task:ro,delegated, inside runtime container Containers Initialization is done. Starting the Local Lambda Service. You can now invoke your Lambda Functions defined in your template through the endpoint. 2023-04-13 07:25:43 WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on http://127.0.0.1:3001 2023-04-13 07:25:43 Press CTRL+C to quit
  3. Verwenden Sie das AWS CLI oderSDKs, um Ihre Lambda-Funktion lokal aufzurufen.

    Im Folgenden finden Sie ein Beispiel für die Verwendung von: AWS CLI

    $ aws lambda invoke --function-name "HelloWorldFunction" --endpoint-url "http://127.0.0.1:3001" --no-verify-ssl out.txt StatusCode: 200 (END)

    Das Folgende ist ein Beispiel für die Verwendung von AWS SDK for Python:

    import boto3 from botocore.config import Config from botocore import UNSIGNED lambda_client = boto3.client('lambda', endpoint_url="http://127.0.0.1:3001", use_ssl=False, verify=False, config=Config(signature_version=UNSIGNED, read_timeout=1, retries={'max_attempts': 0} ) ) lambda_client.invoke(FunctionName="HelloWorldFunction")

Optionen

Geben Sie eine Vorlage an

Um eine Vorlage für das anzugeben AWS SAM CLI um zu referenzieren, verwenden Sie die --template Option. Die AWS SAM CLI lädt nur diese AWS SAM Vorlage und die Ressourcen, auf die sie verweist. Im Folgenden wird ein Beispiel gezeigt:

$ sam local start-lambda --template myTemplate.yaml

Bewährte Methoden

Wenn Ihre Anwendung ein .aws-sam Verzeichnis hat, das nicht ausgeführt wirdsam build, stellen Sie sicher, dass es sam build jedes Mal ausgeführt wird, wenn Sie Ihren Funktionscode aktualisieren. Führen Sie dann sam local start-lambda die Ausführung aus, um Ihren aktualisierten Funktionscode lokal zu testen.

Lokales Testen ist eine hervorragende Lösung für schnelles Entwickeln und Testen vor der Bereitstellung in der Cloud. Bei lokalen Tests wird jedoch nicht alles überprüft, z. B. die Berechtigungen zwischen Ihren Ressourcen in der Cloud. Testen Sie Ihre Anwendungen so oft wie möglich in der Cloud. Wir empfehlen sam sync die Verwendung, um Ihre Cloud-Test-Workflows zu beschleunigen.

Weitere Informationen

Eine Liste aller sam local start-lambda Optionen finden Sie untersam local start-lambda.