Menyebarkan fungsi Rust Lambda dengan arsip file.zip - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyebarkan fungsi Rust Lambda dengan arsip file.zip

catatan

Klien runtime Rust adalah paket eksperimental. Hal ini dapat berubah dan dimaksudkan hanya untuk tujuan evaluasi.

Halaman ini menjelaskan cara mengkompilasi fungsi Rust Anda, dan kemudian menerapkan biner yang dikompilasi untuk AWS Lambda menggunakan Cargo Lambda. Ini juga menunjukkan bagaimana menerapkan biner yang dikompilasi dengan AWS Command Line Interface dan AWS Serverless Application Model CLI.

Prasyarat

Membangun fungsi Rust di macOS, Windows, atau Linux

Langkah-langkah berikut menunjukkan cara membuat proyek untuk fungsi Lambda pertama Anda dengan Rust dan mengompilasinya dengan Cargo Lambda.

  1. Instal Cargo Lambda, subperintah Cargo, yang mengkompilasi fungsi Rust untuk Lambda di macOS, Windows, dan Linux.

    Untuk menginstal Cargo Lambda pada sistem apa pun yang telah menginstal Python 3, gunakan pip:

    pip3 install cargo-lambda

    Untuk menginstal Cargo Lambda di macOS atau Linux, gunakan Homebrew:

    brew tap cargo-lambda/cargo-lambda brew install cargo-lambda

    Untuk menginstal Cargo Lambda di Windows, gunakan Scoop:

    scoop bucket add cargo-lambda scoop install cargo-lambda/cargo-lambda

    Untuk opsi lain, lihat Instalasi di dokumentasi Cargo Lambda.

  2. Buat struktur paket. Perintah ini membuat beberapa kode fungsi dasar disrc/main.rs. Anda dapat menggunakan kode ini untuk menguji atau menggantinya dengan kode Anda sendiri.

    cargo lambda new my-function
  3. Di dalam direktori root paket, jalankan subperintah build untuk mengkompilasi kode dalam fungsi Anda.

    cargo lambda build --release

    (Opsional) Jika Anda ingin menggunakan AWS Graviton2 di Lambda, tambahkan --arm64 tanda untuk mengkompilasi kode Anda untuk CPU ARM.

    cargo lambda build --release --arm64
  4. Sebelum menerapkan fungsi Rust Anda, konfigurasikan AWS kredensil pada mesin Anda.

    aws configure

Menerapkan biner fungsi Rust dengan Cargo Lambda

Gunakan subperintah deploy untuk menyebarkan biner yang dikompilasi ke Lambda. Perintah ini menciptakan peran eksekusi dan kemudian membuat fungsi Lambda. Untuk menentukan peran eksekusi yang ada, gunakan flag --iam-role.

cargo lambda deploy my-function

Menerapkan biner fungsi Rust Anda dengan AWS CLI

Anda juga dapat menerapkan biner Anda dengan file. AWS CLI

  1. Gunakan subperintah build untuk membangun paket deployment .zip.

    cargo lambda build --release --output-format zip
  2. Terapkan paket.zip ke Lambda. Untuk--role, tentukan ARN dari peran eksekusi.

    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

Menerapkan biner fungsi Rust Anda dengan CLI AWS SAM

Anda juga dapat menerapkan biner Anda dengan AWS SAM CLI.

  1. Buat AWS SAM template dengan definisi sumber daya dan properti. Untuk informasi lebih lanjut, lihat AWS::Serverless::Function dalam Panduan PengembangAWS Serverless Application Model.

    contoh Sumber daya SAM dan definisi properti untuk biner 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. Gunakan subperintah build untuk mengkompilasi fungsi.

    cargo lambda build --release
  3. Gunakan perintah sam deploy untuk menyebarkan fungsi ke Lambda.

    sam deploy --guided

Untuk informasi selengkapnya tentang membangun fungsi Rust dengan AWS SAM CLI, lihat Membangun fungsi Lambda Karat dengan Cargo Lambda di Panduan Pengembang. AWS Serverless Application Model

Memanggil fungsi Rust Anda dengan Cargo Lambda

Gunakan subperintah pemanggilan untuk menguji fungsi Anda dengan payload.

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

Memanggil fungsi Rust Anda dengan AWS CLI

Anda juga dapat menggunakan AWS CLI untuk menjalankan fungsi.

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

cli-binary-formatOpsi ini diperlukan jika Anda menggunakan AWS CLI versi 2. Untuk menjadikan ini pengaturan default, jalankanaws configure set cli-binary-format raw-in-base64-out. Untuk informasi selengkapnya, lihat opsi baris perintah global yang AWS CLI didukung di Panduan AWS Command Line Interface Pengguna untuk Versi 2.