Implementazione di funzioni Lambda per Go con gli archivi di file .zip
Nota
Il client di runtime Rust
Questa pagina descrive come compilare la funzione Rust e quindi implementare il file binario compilato su AWS Lambda utilizzando Cargo Lambda
Sezioni
Prerequisiti
Compilazione di funzioni Rust su macOS, Windows o Linux
La procedura seguente mostra come creare il progetto per la prima funzione Lambda con Rust e compilarlo con Cargo Lambda
-
Installa Cargo Lambda, un sottocomando Cargo, che compila le funzioni Rust per Lambda su macOS, Windows e Linux.
Per installare Cargo Lambda su qualsiasi sistema in cui è installato Python 3, utilizza pip:
pip3 install cargo-lambdaPer installare Cargo Lambda su macOS o Linux, utilizza Homebrew:
brew tap cargo-lambda/cargo-lambda brew install cargo-lambdaPer installare Cargo Lambda su Windows, utilizza Scoop
: scoop bucket add cargo-lambda scoop install cargo-lambda/cargo-lambdaPer altre opzioni, consulta la pagina Installazione
nella documentazione di Cargo Lambda. -
Crea la struttura del pacchetto. Questo comando crea un codice di funzione di base in
src/main.rs. A fini di test, puoi utilizzare questo codice o sostituirlo con il tuo codice personalizzato.cargo lambda newmy-function -
All'interno della directory principale del pacchetto, esegui il sottocomando build
per compilare il codice nella funzione. cargo lambda build --release(Facoltativo) Se desideri utilizzare AWS Graviton2 su Lambda, aggiungi il flag
--arm64per compilare il codice per le CPU ARM.cargo lambda build --release --arm64 -
Prima di implementare la funzione Rust, configura le credenziali AWS sul tuo computer.
aws configure
Implementazione del file binario di funzioni Rust con Cargo Lambda
Utilizza il sottocomando deploy
cargo lambda deploymy-function
Implementazione del file binario delle funzioni Rust con la AWS CLI
Puoi implementare il file binario anche con la AWS CLI.
-
Per compilare il pacchetto di implementazione .zip, utilizza il sottocomando build
. cargo lambda build --release --output-format zip -
Per implementare il pacchetto .zip su Lambda, eseguire il comando create-function
. -
Per
--runtime, specificareprovided.al2023. Questo è un runtime solo per il sistema operativo. I runtime solo per il sistema operativo vengono utilizzati per distribuire file binari compilati e runtime personalizzati su Lambda. -
Per
--role, specifica l'ARN del ruolo di esecuzione.
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 -
Implementazione del file binario delle funzioni Rust con la CLI AWS SAM
Puoi implementare il file binario anche con la CLI AWS SAM.
-
Crea un modello AWS SAM con la definizione della risorsa e della proprietà. Per
Runtime, specificareprovided.al2023. Questo è un runtime solo per il sistema operativo. I runtime solo per il sistema operativo vengono utilizzati per distribuire file binari compilati e runtime personalizzati su Lambda.Per ulteriori informazioni sull'implementazione delle funzioni Lambda tramite AWS SAM, consulta AWS::Serverless::Function nella Guida per gli sviluppatori di AWS Serverless Application Model.
Esempio Definizione di risorse e proprietà SAM per un file binario 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 -
Utilizza il sottocomando build
per compilare la funzione. cargo lambda build --release -
Utilizza il comando sam deploy per implementare la funzione su Lambda.
sam deploy --guided
Per ulteriori informazioni sulla creazione di funzioni Rust con la CLI AWS SAM, consulta la pagina Compilazione di funzioni Lambda Rust con Cargo Lambda nella Guida per gli sviluppatori di AWS Serverless Application Model.
Richiamo della funzione Rust con Cargo Lambda
Utilizza il sottocomando invoke
cargo lambda invoke --remote --data-ascii '{"command": "Hello world"}'my-function
Richiamo della funzione Rust con la AWS CLI
È inoltre possibile utilizzare AWS CLI per richiamare la funzione.
aws lambda invoke --function-namemy-function--cli-binary-format raw-in-base64-out --payload '{"command": "Hello world"}' /tmp/out.txt
L'opzione cli-binary-format è necessaria se si utilizza la versione 2 della AWS CLI. Per rendere questa impostazione come predefinita, esegui aws configure set cli-binary-format raw-in-base64-out. Per ulteriori informazioni, consulta la pagina AWS CLI supported global command line options nella Guida per l'utente di AWS Command Line Interface versione 2.