

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
<a name="using-sam-cli-local-start-lambda"></a>

Verwenden Sie den AWS SAMCLI Unterbefehl`sam local start-lambda`, um Ihre Lambda-Funktion über und aufzurufen. AWS CLI SDKs Dieser Befehl startet einen lokalen Endpunkt, der Lambda emuliert.
+ Eine Einführung in das finden Sie unter AWS SAMCLI [Was ist das? AWS SAMCLI](what-is-sam-overview.md#what-is-sam-cli)
+ Eine Liste der `sam local start-lambda` Befehlsoptionen finden Sie unter[sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md).

**Anmerkung**  
`sam local start-lambda`unterstützt langlebige Funktionen mit automatischem Checkpoint und Wiedergabefunktionen. Dauerhafte Funktionen arbeiten nahtlos mit dem lokalen Lambda-Endpunkt zusammen.

## Voraussetzungen
<a name="using-sam-cli-local-start-api-prerequisites"></a>

Um das zu verwenden`sam local start-lambda`, installieren Sie das, AWS SAMCLI indem Sie wie folgt vorgehen:
+ [AWS SAM Voraussetzungen](prerequisites.md).
+ [Installieren Sie das AWS SAMCLI](install-sam-cli.md).

Vor der Verwendung empfehlen wir`sam local start-lambda`, sich mit folgenden Grundkenntnissen vertraut zu machen:
+ [Konfiguration der AWS SAMCLI](using-sam-cli-configure.md).
+ [Erstellen Sie Ihre Bewerbung in AWS SAM](using-sam-cli-init.md).
+ [Einführung in das Bauen mit AWS SAM](using-sam-cli-build.md).
+ [Einführung in die Bereitstellung mit AWS SAM](using-sam-cli-deploy.md).

## Sam Local Start-Lambda verwenden
<a name="using-sam-cli-local-start-lambda-use"></a>

Beim Ausführen AWS SAMCLI geht das davon aus`sam local start-lambda`, dass Ihr aktuelles Arbeitsverzeichnis das Stammverzeichnis Ihres Projekts ist. Das AWS SAMCLI sucht zuerst nach einer `template.[yaml|yml]` Datei in einem `.aws-sam` Unterordner. Wenn nicht gefunden, sucht der AWS SAMCLI 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>
   ```

1. Das AWS SAMCLI erstellt Ihre Lambda-Funktionen in einem lokalen Docker Container. Anschließend wird die lokale Adresse an Ihren HTTP-Serverendpunkt ausgegeben. 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
   ```

1. Verwenden Sie das AWS CLI oder SDKs , um Ihre Lambda-Funktion lokal aufzurufen.

   Das Folgende ist 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 AWS SDK für die Verwendung vonPython:

   ```
   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
<a name="using-sam-cli-local-start-lambda-options"></a>

### Geben Sie eine Vorlage an
<a name="using-sam-cli-local-start-lambda-options-template"></a>

Verwenden Sie die `--template` Option, AWS SAMCLI um eine Vorlage anzugeben, auf die verwiesen werden soll. Es AWS SAMCLI werden nur diese AWS SAM Vorlage und die Ressourcen, auf die sie verweist, geladen. Im Folgenden wird ein Beispiel gezeigt:

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

Weitere Informationen zu AWS SAM Vorlagen finden Sie unter[AWS SAM Anatomie der Vorlage](sam-specification-template-anatomy.md).

## Best Practices
<a name="using-sam-cli-local-start-lambda-best"></a>

Wenn Ihre Anwendung ein `.aws-sam` Verzeichnis hat, das ausgeführt wird`sam 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](using-sam-cli-sync.md), um Ihre Cloud-Test-Workflows zu beschleunigen.

## Weitere Informationen
<a name="using-sam-cli-local-start-lambda-learn"></a>

Eine Liste aller `sam local start-lambda` Optionen finden Sie unter[sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md).