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.
Bereitstellen von Lambda-Rust-Funktionen mit ZIP-Dateiarchiven
Anmerkung
Der Rust-Laufzeit-Client
Auf dieser Seite wird beschrieben, wie Sie Ihre Rust-Funktion kompilieren und dann die kompilierte Binärdatei AWS Lambda mithilfe von Cargo Lambda
Sections
Voraussetzungen
Aufbau von Rust-Funktionen auf macOS, Windows oder Linux
Die folgenden Schritte veranschaulichen, wie Sie das Projekt für Ihre erste Lambda-Funktion mit Rust erstellen und es mit Cargo Lambda
-
Installieren Sie Cargo Lambda, einen Cargo-Unterbefehl, der Rust-Funktionen für Lambda auf macOS, Windows und Linux kompiliert.
Verwenden Sie pip, um Cargo Lambda auf einem System zu installieren, auf dem Python 3 installiert ist:
pip3 install cargo-lambda
Verwenden Sie Homebrew, um Cargo Lambda auf macOS oder Linux zu installieren:
brew tap cargo-lambda/cargo-lambda brew install cargo-lambda
Verwenden Sie Scoop
, um Cargo Lambda auf Windows zu installieren: scoop bucket add cargo-lambda scoop install cargo-lambda/cargo-lambda
Weitere Optionen finden Sie unter Installation
in der Cargo-Lambda-Dokumentation. -
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
-
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 AWS Graviton2 auf Lambda verwenden möchten, fügen Sie das
--arm64
Flag hinzu, um Ihren Code für ARM zu kompilieren. CPUscargo lambda build --release --arm64
-
Bevor Sie Ihre Rust-Funktion bereitstellen, konfigurieren Sie die AWS Anmeldeinformationen auf Ihrem Computer.
aws configure
Bereitstellung der Binärdatei der Rust-Funktion mit Cargo Lambda
Verwenden Sie den Unterbefehl bereitstellen
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.
-
Verwenden Sie den Unterbefehl build
, um das .zip-Bereitstellungspaket zu erstellen. cargo lambda build --release --output-format zip
-
Um das .zip-Paket in Lambda bereitzustellen, führen Sie den Befehl create-function
aus. -
Legen Sie für
--runtime
die Optionprovided.al2023
fest. Dies ist eine reine Betriebssystem-Laufzeit. Reine Betriebssystemlaufzeiten werden verwendet, um kompilierte Binärdateien und benutzerdefinierte Laufzeiten für Lambda bereitzustellen. -
Für
--role
geben Sie den ARN der Ausführungsrolle an.
aws lambda create-function \ --function-name
my-function
\ --runtimeprovided.al2023
\ --rolearn:aws:iam::111122223333:role/lambda-role
\ --handler rust.handler \ --zip-file fileb://target/lambda/my-function/bootstrap.zip -
Bereitstellen Ihrer Rust-Funktionsbinärdatei mit der AWS SAM CLI
Sie können Ihre Binärdatei auch mit der AWS SAM CLI bereitstellen.
-
Erstellen Sie eine AWS SAM Vorlage mit der Ressourcen- und Eigenschaftsdefinition. Legen Sie für
Runtime
die Optionprovided.al2023
fest. Dies ist eine reine Betriebssystem-Laufzeit. Reine Betriebssystemlaufzeiten werden verwendet, um kompilierte Binärdateien und benutzerdefinierte Laufzeiten für Lambda bereitzustellen.Weitere Informationen zur Bereitstellung von Lambda-Funktionen mit AWS SAM finden Sie AWS::Serverless::Functionim AWS Serverless Application Model Entwicklerhandbuch.
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
-
Verwenden Sie den Unterbefehl build
, um die Funktion zu kompilieren. cargo lambda build --release
-
Verwenden Sie den Befehl sam deploy, um die Funktion in Lambda bereitzustellen.
sam deploy --guided
Weitere Informationen zum Erstellen von Rust-Funktionen mit der AWS SAM CLI finden Sie unter Build Rust Lambda functions with Cargo Lambda im AWS Serverless Application Model Developer Guide.
Aufrufen Ihrer Rust-Funktion mit Cargo Lambda
Verwenden Sie den Unterbefehl invoke
cargo lambda invoke --remote --data-ascii '{"command": "Hello world"}'
my-function
Aufrufen Ihrer Rust-Funktion mit dem AWS CLI
Sie können die Funktion auch 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
Die cli-binary-format Option ist erforderlich, wenn Sie AWS CLI Version 2 verwenden. 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.