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 mithilfe von Cargo Lambda
Abschnitte
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-lambdaVerwenden Sie Homebrew, um Cargo Lambda auf macOS oder Linux zu installieren:
brew tap cargo-lambda/cargo-lambda brew install cargo-lambdaVerwenden Sie Scoop
, um Cargo Lambda auf Windows zu installieren: scoop bucket add cargo-lambda scoop install cargo-lambda/cargo-lambdaWeitere 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 newmy-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
--arm64-Flag hinzu, um Ihren Code für ARM-CPUs zu kompilieren.cargo lambda build --release --arm64 -
Bevor Sie Ihre Rust-Funktion bereitstellen, konfigurieren Sie die AWS-Anmeldeinformationen auf Ihrem Rechner.
aws configure
Bereitstellung der Binärdatei der Rust-Funktion mit Cargo Lambda
Verwenden Sie den Unterbefehl bereitstellen
cargo lambda deploymy-function
Bereitstellung der Binärdatei der Rust-Funktion mit der AWS CLI
Sie können Ihre Binärdatei auch mithilfe der AWS CLI bereitstellen.
-
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
--runtimedie Optionprovided.al2023fest. Dies ist eine reine Betriebssystem-Laufzeit. Reine Betriebssystemlaufzeiten werden verwendet, um kompilierte Binärdateien und benutzerdefinierte Laufzeiten für Lambda bereitzustellen. -
Für
--rolegeben Sie den ARN der Ausführungsrolle an.
aws lambda create-function \ --function-namemy-function\ --runtimeprovided.al2023\ --rolearn:aws:iam::111122223333:role/lambda-role\ --handler rust.handler \ --zip-file fileb://target/lambda/my-function/bootstrap.zip -
Bereitstellung der Binärdatei der Rust-Funktion mit der AWS SAM CLI
Sie können Ihre Binärdatei auch mithilfe der AWS SAM CLI bereitstellen.
-
Erstellen Sie eine AWS SAM-Vorlage mit der Ressourcen- und Eigenschaftsdefinition. Legen Sie für
Runtimedie Optionprovided.al2023fest. 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 im AWS Serverless Application Model Entwicklerhandbuch unter AWS::Serverless::Function.
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 im AWS Serverless Application Model-Entwicklerhandbuch unter Erstellen von Rust Lambda-Funktionen mit Cargo Lambda.
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 der AWS CLI
Sie können auch die AWS CLI verwenden, um die Funktion aufzurufen.
aws lambda invoke --function-namemy-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.