

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
<a name="rust-package"></a>

Halaman ini menjelaskan cara mengkompilasi fungsi Rust Anda, dan kemudian menerapkan biner yang dikompilasi untuk AWS Lambda menggunakan Cargo [Lambda](https://www.cargo-lambda.info/guide/what-is-cargo-lambda.html). Ini juga menunjukkan bagaimana menerapkan biner yang dikompilasi dengan AWS Command Line Interface dan AWS Serverless Application Model CLI.

**Topics**
+ [

## Prasyarat
](#rust-package-prerequisites)
+ [

## Membangun fungsi Rust di macOS, Windows, atau Linux
](#rust-package-build)
+ [

## Menerapkan biner fungsi Rust dengan Cargo Lambda
](#rust-deploy-cargo)
+ [

## Memanggil fungsi Rust Anda dengan Cargo Lambda
](#rust-invoke-function)

## Prasyarat
<a name="rust-package-prerequisites"></a>
+ [Karat](https://www.rust-lang.org/tools/install)
+ [AWS CLI versi 2](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)

## Membangun fungsi Rust di macOS, Windows, atau Linux
<a name="rust-package-build"></a>

Langkah-langkah berikut menunjukkan cara membuat proyek untuk fungsi Lambda pertama Anda dengan Rust dan mengompilasinya dengan Cargo [Lambda](https://www.cargo-lambda.info/), ekstensi sumber terbuka pihak ketiga ke alat baris perintah Cargo yang menyederhanakan pembuatan dan penerapan fungsi Rust Lambda.

1. Instal [Cargo Lambda](https://www.cargo-lambda.info/guide/what-is-cargo-lambda.html), ekstensi sumber terbuka pihak ketiga ke alat baris perintah Cargo yang menyederhanakan pembuatan dan penerapan fungsi Rust Lambda:

   ```
   cargo install cargo-lambda
   ```

   Untuk opsi penginstalan lainnya, lihat [Instalasi](https://www.cargo-lambda.info/guide/installation.html) di dokumentasi Cargo Lambda.

1. Buat struktur paket. Perintah ini membuat beberapa kode fungsi dasar di`src/main.rs`. Anda dapat menggunakan kode ini untuk menguji atau menggantinya dengan kode Anda sendiri.

   ```
   cargo lambda new my-function
   ```

1. Di dalam direktori root paket, jalankan subperintah [build](https://www.cargo-lambda.info/commands/build.html) untuk mengkompilasi kode dalam fungsi Anda.

   ```
   cargo lambda build --release
   ```

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

   ```
   cargo lambda build --release --arm64
   ```

1. Sebelum menerapkan fungsi Rust Anda, konfigurasikan AWS kredensil pada mesin Anda.

   ```
   aws configure
   ```

## Menerapkan biner fungsi Rust dengan Cargo Lambda
<a name="rust-deploy-cargo"></a>

Gunakan subperintah [deploy](https://www.cargo-lambda.info/commands/deploy.html) untuk menyebarkan biner yang dikompilasi ke Lambda. Perintah ini menciptakan [peran eksekusi](lambda-intro-execution-role.md) dan kemudian membuat fungsi Lambda. Untuk menentukan peran eksekusi yang ada, gunakan [flag --iam-role](https://www.cargo-lambda.info/commands/deploy.html#iam-roles).

```
cargo lambda deploy my-function
```

### Menerapkan biner fungsi Rust Anda dengan AWS CLI
<a name="rust-deploy-aws-cli"></a>

Anda juga dapat menerapkan biner Anda dengan file. AWS CLI

1. Gunakan subperintah [build](https://www.cargo-lambda.info/commands/build.html) untuk membangun paket deployment .zip.

   ```
   cargo lambda build --release --output-format zip
   ```

1. [Untuk menyebarkan paket.zip ke Lambda, jalankan perintah create-function.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html)
   + Untuk `--runtime`, tentukan `provided.al2023`. Ini adalah runtime [khusus OS](runtimes-provided.md). Runtime khusus OS digunakan untuk menyebarkan binari yang dikompilasi dan runtime khusus ke Lambda.
   + Untuk`--role`, tentukan ARN dari peran [eksekusi](lambda-intro-execution-role.md).

   ```
   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
<a name="rust-deploy-sam-cli"></a>

Anda juga dapat menerapkan biner Anda dengan AWS SAM CLI.

1. Buat AWS SAM template dengan definisi sumber daya dan properti. Untuk `Runtime`, tentukan `provided.al2023`. Ini adalah runtime [khusus OS](runtimes-provided.md). Runtime khusus OS digunakan untuk menyebarkan binari yang dikompilasi dan runtime khusus ke Lambda.

   Untuk informasi selengkapnya tentang penerapan fungsi Lambda AWS SAM menggunakan, [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html)lihat di Panduan *AWS Serverless Application Model Pengembang.*  
**Example 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
   ```

1. Gunakan subperintah [build](https://www.cargo-lambda.info/commands/build.html) untuk mengkompilasi fungsi.

   ```
   cargo lambda build --release
   ```

1. Gunakan perintah [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html) 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](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-rust.html).AWS Serverless Application Model *

## Memanggil fungsi Rust Anda dengan Cargo Lambda
<a name="rust-invoke-function"></a>

Gunakan subperintah [pemanggilan](https://www.cargo-lambda.info/commands/invoke.html) untuk menguji fungsi Anda dengan payload.

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

### Memanggil fungsi Rust Anda dengan AWS CLI
<a name="rust-invoke-cli"></a>

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-format**Opsi ini diperlukan jika Anda menggunakan AWS CLI versi 2. Untuk menjadikan ini pengaturan default, jalankan`aws configure set cli-binary-format raw-in-base64-out`. Untuk informasi selengkapnya, lihat [opsi baris perintah global yang AWS CLI didukung](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html#cli-configure-options-list) di *Panduan AWS Command Line Interface Pengguna untuk Versi 2*.