View a markdown version of this page

Stellen Sie Rust Lambda Event Functions mit ZIP-Dateiarchiven bereit - AWS Lambda

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.

Stellen Sie Rust Lambda Event Functions mit ZIP-Dateiarchiven bereit

Diese Seite beschreibt, wie Sie Ihre Rust-Event-Funktion kompilieren und dann die kompilierte Binärdatei bereitstellen AWS Lambda unter Verwendung von Cargo Lambda. Es zeigt auch, wie man die kompilierte Binärdatei mit dem AWS Command Line Interface und der AWS Serverless Application Model CLIP.

Voraussetzungen

Aufbau von Rust-Funktionen auf macOS, Windows oder Linux

Die folgenden Schritte zeigen, wie Sie das Projekt für Ihre erste Lambda-Funktion mit Rust erstellen und mit kompilieren Lambda transportieren, eine Open-Source-Erweiterung des Cargo-Befehlszeilentools von Drittanbietern, die das Erstellen und Bereitstellen von Rust Lambda-Funktionen vereinfacht.

  1. Installieren Cargo Lambda, eine Open-Source-Erweiterung des Cargo-Befehlszeilentools von Drittanbietern, die das Erstellen und Bereitstellen von Rust Lambda-Funktionen vereinfacht:

    cargo install cargo-lambda

    Weitere Installationsoptionen finden Sie unter Installation in der Cargo Lambda-Dokumentation.

  2. Erstellen Sie die Paketstruktur. Dieser Befehl erstellt einen grundlegenden Funktionscode in src/main.rs. Sie können diesen Code zum Testen verwenden oder ihn durch Ihren eigenen ersetzen.

    cargo lambda new my-function
  3. Führen Sie im Stammverzeichnis des Pakets den Unterbefehl build aus, um den Code in Ihrer Funktion zu kompilieren.

    cargo lambda build --release

    (Optional) Wenn Sie verwenden möchten AWS Graviton auf Lambda, füge das hinzu --arm64 Flag, um Ihren Code für ARM-CPUs zu kompilieren.

    cargo lambda build --release --arm64
  4. Bevor Sie Ihre Rust-Funktion bereitstellen, konfigurieren Sie AWS Anmeldeinformationen auf Ihrem Computer.

    aws configure

Bereitstellung der Binärdatei der Rust-Funktion mit Cargo Lambda

Verwenden Sie den Unterbefehl bereitstellen, um die kompilierte Binärdatei für Lambda bereitzustellen. Dieser Befehl erstellt eine Ausführungsrolle und erstellt dann die Lambda-Funktion. Um eine bestehende Ausführungsrolle anzugeben, verwenden Sie die --iam-role Flag.

cargo lambda deploy my-function

Bereitstellen Ihrer Rust-Funktionsbinärdatei mit dem AWS CLI

Sie können Ihre Binärdatei auch mit dem bereitstellen AWS CLI.

  1. Verwenden Sie den Unterbefehl build, um das .zip-Bereitstellungspaket zu erstellen.

    cargo lambda build --release --output-format zip
  2. Um das .zip-Paket in Lambda bereitzustellen, führen Sie den Befehl create-function aus.

    • Legen Sie für --runtime die Option provided.al2023 fest. Das ist ein OS-only Laufzeit. OS-only Laufzeiten werden verwendet, um kompilierte Binärdateien und benutzerdefinierte Laufzeiten auf Lambda bereitzustellen.

    • Für --role geben Sie den ARN der Ausführungsrolle an.

    aws lambda create-function \ --function-name my-function \ --runtime provided.al2023 \ --role arn:aws:iam::111122223333:role/lambda-role \ --handler rust.handler \ --zip-file fileb://target/lambda/my-function/bootstrap.zip

Bereitstellen Ihrer Rust-Funktionsbinärdatei mit dem AWS SAM CLI

Sie können Ihre Binärdatei auch mit dem bereitstellen AWS SAM CLI.

  1. Erstellen Sie eine AWS SAM Vorlage mit der Ressourcen- und Eigenschaftsdefinition. Legen Sie für Runtime die Option provided.al2023 fest. Das ist ein OS-only Laufzeit. OS-only Laufzeiten werden verwendet, um kompilierte Binärdateien und benutzerdefinierte Laufzeiten auf Lambda bereitzustellen.

    Weitere Informationen zur Bereitstellung von Lambda-Funktionen finden Sie unter AWS SAM, siehe AWS::Serverless::Funktion in der AWS Serverless Application Model Leitfaden für Entwickler.

    Beispiel SAM-Ressourcen- und Eigenschaftsdefinition für eine Rust-Binärdatei
    AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: SAM template for Rust binaries Resources: RustFunction: Type: AWS::Serverless::Function Properties: CodeUri: target/lambda/my-function/ Handler: rust.handler Runtime: provided.al2023 Outputs: RustFunction: Description: "Lambda Function ARN" Value: !GetAtt RustFunction.Arn
  2. Verwenden Sie den Unterbefehl build, um die Funktion zu kompilieren.

    cargo lambda build --release
  3. Verwenden Sie den Befehl sam deploy, um die Funktion in Lambda bereitzustellen.

    sam deploy --guided

Weitere Informationen zum Erstellen von Rust-Funktionen finden Sie mit dem AWS SAM CLI, siehe Erstellen von Rust Lambda-Funktionen mit Cargo Lambda in der AWS Serverless Application Model Leitfaden für Entwickler.

Aufrufen Ihrer Rust-Funktion mit Cargo Lambda

Verwenden Sie den Unterbefehl invoke, um Ihre Funktion mit einer Nutzlast zu testen.

cargo lambda invoke --remote --data-ascii '{"command": "Hello world"}' my-function

Aufrufen Ihrer Rust-Funktion mit dem AWS CLI

Sie können auch die verwenden AWS CLI um die Funktion aufzurufen.

aws lambda invoke --function-name my-function --cli-binary-format raw-in-base64-out --payload '{"command": "Hello world"}' /tmp/out.txt

Das cli-binary-format Die Option ist erforderlich, wenn Sie verwenden AWS CLI Version 2. Um dies zur Standardeinstellung zu machen, führen Sie aws configure set cli-binary-format raw-in-base64-out aus. Weitere Informationen finden Sie unter Von AWS CLI unterstützte globale Befehlszeilenoptionen im AWS Command Line Interface -Benutzerhandbuch für Version 2.