View a markdown version of this page

Implementa le funzioni di evento Rust Lambda con archivi di file .zip - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Implementa le funzioni di evento Rust Lambda con archivi di file .zip

Questa pagina descrive come compilare la tua Rust Event Function e quindi distribuire il binario compilato su AWS Lambda utilizzando Cargo Lambda. Mostra anche come distribuire il binario compilato con AWS Command Line Interface e il AWS Serverless Application Model CLIP.

Prerequisiti

Compilazione di funzioni Rust su macOS, Windows o Linux

I passaggi seguenti mostrano come creare il progetto per la tua prima funzione Lambda con Rust e compilarlo con Cargo Lambda, un'estensione open source di terze parti dello strumento a riga di comando Cargo che semplifica la creazione e l'implementazione di funzioni Rust Lambda.

  1. Installa Cargo Lambda, un'estensione open source di terze parti dello strumento a riga di comando Cargo che semplifica la creazione e l'implementazione delle funzioni Rust Lambda:

    cargo install cargo-lambda

    Per altre opzioni di installazione, vedi Installazione nella documentazione Cargo Lambda.

  2. 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 new my-function
  3. All'interno della directory principale del pacchetto, esegui il sottocomando build per compilare il codice nella funzione.

    cargo lambda build --release

    (Facoltativo) Se si desidera utilizzare AWS Graviton su Lambda, aggiungi --arm64 flag per compilare il codice per le CPU ARM.

    cargo lambda build --release --arm64
  4. Prima di implementare la tua funzione Rust, configura AWS credenziali sul tuo computer.

    aws configure

Implementazione del file binario di funzioni Rust con Cargo Lambda

Utilizza il sottocomando deploy per implementare il file binario compilato su Lambda. Questo comando crea un ruolo di esecuzione e quindi crea la funzione Lambda. Per specificare un ruolo di esecuzione esistente, utilizza il flag --iam-role.

cargo lambda deploy my-function

Distribuire il binario della funzione Rust con AWS CLI

Puoi anche distribuire il tuo binario con AWS CLI.

  1. Per compilare il pacchetto di implementazione .zip, utilizza il sottocomando build.

    cargo lambda build --release --output-format zip
  2. Per implementare il pacchetto .zip su Lambda, eseguire il comando create-function.

    • Per --runtime, specificare provided.al2023. Questo è un OS-only runtime. OS-only i runtime vengono utilizzati per distribuire binari compilati e runtime personalizzati su Lambda.

    • Per --role, specifica l'ARN del ruolo di esecuzione.

    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

Distribuire il binario della funzione Rust con AWS SAM CLI

Puoi anche distribuire il tuo binario con AWS SAM CLI.

  1. Crea un AWS SAM modello con la definizione della risorsa e della proprietà. Per Runtime, specificare provided.al2023. Questo è un OS-only runtime. OS-only i runtime vengono utilizzati per distribuire binari compilati e runtime personalizzati su Lambda.

    Per ulteriori informazioni sulla distribuzione delle funzioni Lambda utilizzando AWS SAM, vedi AWS::Serverless::Funzione nel AWS Serverless Application Model Guida per gli sviluppatori.

    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
  2. Utilizza il sottocomando build per compilare la funzione.

    cargo lambda build --release
  3. Utilizza il comando sam deploy per implementare la funzione su Lambda.

    sam deploy --guided

Per ulteriori informazioni sulla creazione di funzioni Rust con AWS SAM CLI, vedi Creazione di funzioni Rust Lambda con Cargo Lambda nel AWS Serverless Application Model Guida per gli sviluppatori.

Richiamo della funzione Rust con Cargo Lambda

Utilizza il sottocomando invoke per testare la tua funzione con un payload.

cargo lambda invoke --remote --data-ascii '{"command": "Hello world"}' my-function

Invocando la tua funzione Rust con AWS CLI

Puoi anche usare il AWS CLI per richiamare la funzione.

aws lambda invoke --function-name my-function --cli-binary-format raw-in-base64-out --payload '{"command": "Hello world"}' /tmp/out.txt

La cli-binary-format l'opzione è obbligatoria se si utilizza AWS CLI versione 2. 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.