Déploiement de fonctions Lambda Rust avec des archives de fichiers .zip
Note
Le client d’exécution Rust
Cette page décrit comment compiler votre fonction Rust, puis déployer le binaire compilé vers AWS Lambda en utilisant Cargo Lambda
Sections
Prérequis
Création de fonctions Rust sur macOS, Windows ou Linux
Les étapes suivantes montrent comment créer le projet de votre première fonction Lambda avec Rust et le compiler avec Cargo Lambda
-
Installez Cargo Lambda, une sous-commande Cargo, qui compile les fonctions Rust pour Lambda sur macOS, Windows et Linux.
Pour installer Cargo Lambda sur tout système où Python 3 est installé, utilisez pip :
pip3 install cargo-lambdaPour installer Cargo Lambda sur macOS ou Linux, utilisez Homebrew :
brew tap cargo-lambda/cargo-lambda brew install cargo-lambdaPour installer Cargo Lambda sous Windows, utilisez Scoop
: scoop bucket add cargo-lambda scoop install cargo-lambda/cargo-lambdaPour d’autres options, consultez Installation
dans la documentation de Cargo Lambda. -
Créez la structure du package. Cette commande crée un code de fonction de base dans
src/main.rs. Vous pouvez utiliser ce code pour le tester ou le remplacer par le vôtre.cargo lambda newmy-function -
À l’intérieur du répertoire racine du package, exécutez la sous-commande build
pour compiler le code de votre fonction. cargo lambda build --release(Facultatif) Si vous voulez utiliser AWS Graviton2 sur Lambda, ajoutez le drapeau
--arm64pour compiler votre code pour les processeurs ARM.cargo lambda build --release --arm64 -
Avant de déployer votre fonction Rust, configurez les informations d’identification AWS sur votre machine.
aws configure
Déploiement du binaire de la fonction Rust avec Cargo Lambda
Utilisez la sous-commande deploy
cargo lambda deploymy-function
Déploiement du binaire de votre fonction Rust avec la commande AWS CLI
Vous pouvez également déployer votre binaire avec la AWS CLI.
-
Utilisez la sous-commande build
pour créer le package de déploiement .zip. cargo lambda build --release --output-format zip -
Pour déployer le package .zip vers Lambda, exécutez la commande create-function
. -
Pour
--runtime, spécifiezprovided.al2023. Il s’agit d’un environnement d’exécution réservé au système d’exploitation. Les environnements d’exécution réservés au système d’exploitation sont utilisés pour déployer des fichiers binaires compilés et des environnements d’exécution personnalisés sur Lambda. -
Pour
--role, spécifiez l’ARN du rôle d’exécution.
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 -
Déploiement du binaire de votre fonction Rust avec la CLI AWS SAM
Vous pouvez également déployer votre binaire avec la CLI AWS SAM.
-
Créez un modèle AWS SAM avec la définition de la ressource et de la propriété. Pour
Runtime, spécifiezprovided.al2023. Il s’agit d’un environnement d’exécution réservé au système d’exploitation. Les environnements d’exécution réservés au système d’exploitation sont utilisés pour déployer des fichiers binaires compilés et des environnements d’exécution personnalisés sur Lambda.Pour en savoir plus sur le déploiement de fonctions Lambda à l’aide d’AWS SAM, consultez AWS::Serverless::Function dans le Guide du développeur AWS Serverless Application Model.
Exemple Définition des ressources et des propriétés SAM pour un binaire Rust
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 -
Utilisez la sous-commande build
pour compiler la fonction. cargo lambda build --release -
Utilisez la commande sam deploy pour déployer la fonction vers Lambda.
sam deploy --guided
Pour plus d’informations sur la création de fonctions Rust avec la CLI AWS SAM, consultez Création de fonctions Lambda Rust avec Cargo Lambda dans le Guide du développeur AWS Serverless Application Model.
Invocation de votre fonction Rust avec Cargo Lambda
Utilisez la sous-commande invoke
cargo lambda invoke --remote --data-ascii '{"command": "Hello world"}'my-function
Invocation de votre fonction Rust avec la sous-commande AWS CLI
Vous pouvez également utiliser la AWS CLI pour invoquer la fonction.
aws lambda invoke --function-namemy-function--cli-binary-format raw-in-base64-out --payload '{"command": "Hello world"}' /tmp/out.txt
L’option cli-binary-format est obligatoire si vous utilisez AWS CLI version 2. Pour faire de ce paramètre le paramètre par défaut, exécutez aws configure set cli-binary-format raw-in-base64-out. Pour plus d’informations, consultez les options de ligne de commande globales prises en charge par l’AWS CLI dans le Guide de l’utilisateur AWS Command Line Interface version 2.