Bereitstellen von Lambda-Rust-Funktionen mit ZIP-Dateiarchiven - 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.

Bereitstellen von Lambda-Rust-Funktionen mit ZIP-Dateiarchiven

Anmerkung

Der Rust-Laufzeit-Client ist ein experimentelles Paket. Er kann sich ändern und ist nur zu Evaluierungszwecken gedacht.

Auf dieser Seite wird beschrieben, wie Sie Ihre Rust-Funktion kompilieren und dann die kompilierte Binärdatei AWS Lambda mithilfe von Cargo Lambda bereitstellen. Es zeigt auch, wie Sie die kompilierte Binärdatei mit dem AWS Command Line Interface und dem AWS Serverless Application Model CLI bereitstellen.

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 kompilieren.

  1. 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.

  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 AWS Graviton2 auf Lambda verwenden möchten, fügen Sie das --arm64 Flag hinzu, für das Sie Ihren Code kompilieren möchten. ARM CPUs

    cargo lambda build --release --arm64
  4. 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, 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 für Lambda bereitzustellen, führen Sie den Befehl create-function aus.

    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. Dies ist eine reine Betriebssystem-Laufzeit. Nur 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 unter AWS: :Serverless: :Function im Developer Guide.AWS Serverless Application Model

    Beispiel SAMRessourcen- 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 mit dem AWS SAM CLI finden Sie unter Erstellen von Rust-Lambda-Funktionen mit Cargo Lambda im AWS Serverless Application Model Entwicklerhandbuch.

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 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.