

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

# Memasang Guard sebagai AWS Lambda fungsi
<a name="setting-up-lambda"></a>

Anda dapat menginstal AWS CloudFormation Guard melalui Cargo, manajer paket Rust. *Guard as an AWS Lambda* function (`cfn-guard-lambda`) adalah pembungkus ringan di sekitar Guard (`cfn-guard`) yang dapat digunakan sebagai fungsi Lambda.

## Prasyarat
<a name="guard-as-lambda-prerequisites"></a>

Sebelum Anda dapat menginstal Guard sebagai fungsi Lambda, Anda harus memenuhi prasyarat berikut:
+ AWS Command Line Interface (AWS CLI) dikonfigurasi dengan izin untuk menyebarkan dan memanggil fungsi Lambda. Untuk informasi selengkapnya, lihat [Mengonfigurasi AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Peran AWS Lambda eksekusi dalam AWS Identity and Access Management (IAM). Untuk informasi selengkapnya, lihat [peran AWS Lambda eksekusi](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html).
+ Di CentOS/RHEL lingkungan, tambahkan repositori `musl-libc` paket ke konfigurasi yum Anda. Untuk informasi lebih lanjut, lihat [ngompa/musl-libc](https://copr.fedorainfracloud.org/coprs/ngompa/musl-libc/).

## Instal manajer paket Rust
<a name="install-rust-and-cargo"></a>

Cargo adalah manajer paket Rust. Selesaikan langkah-langkah berikut untuk menginstal Rust, yang mencakup Cargo.

1. Jalankan perintah berikut dari terminal, lalu ikuti petunjuk di layar untuk menginstal Rust.

   ```
   curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
   ```

   1. (Opsional) Untuk lingkungan Ubuntu, jalankan perintah berikut.

     ```
     sudo apt-get update; sudo apt install build-essential
     ```

1. Konfigurasikan variabel `PATH` lingkungan Anda, dan jalankan perintah berikut.

   ```
   source $HOME/.cargo/env
   ```

## Instal Guard sebagai fungsi Lambda (Linux, macOS, atau Unix)
<a name="to-isntall-guard-as-a-lambda"></a>

Untuk menginstal Guard sebagai fungsi Lambda, selesaikan langkah-langkah berikut.

1. Dari terminal perintah Anda, jalankan perintah berikut.

   ```
   cargo install cfn-guard-lambda
   ```

   1. (Opsional) Untuk mengkonfirmasi instalasi Guard sebagai fungsi Lambda, jalankan perintah berikut.

     ```
     cfn-guard-lambda --version
     ```

     Perintah mengembalikan output berikut.

     ```
     cfn-guard-lambda 3.1.2
     ```

1. Untuk menginstal `musl` dukungan, jalankan perintah berikut.

   ```
   rustup target add x86_64-unknown-linux-musl
   ```

1. Bangun dengan`musl`, lalu jalankan perintah berikut di terminal Anda.

   ```
   cargo build --release --target x86_64-unknown-linux-musl
   ```

   Untuk [runtime kustom](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), AWS Lambda memerlukan executable dengan nama `bootstrap` dalam file paket deployment .zip. Ganti nama `cfn-lambda` executable yang dihasilkan menjadi `bootstrap` dan kemudian tambahkan ke arsip.zip.

   1. Untuk lingkungan macOS, buat file konfigurasi kargo Anda di root proyek Rust atau di dalamnya. `~/.cargo/config`

     ```
     [target.x86_64-unknown-linux-musl]
     linker = "x86_64-linux-musl-gcc"
     ```

1. Ubah ke direktori `cfn-guard-lambda` root.

   ```
   cd ~/.cargo/bin/cfn-guard-lambda
   ```

1. Jalankan perintah berikut di terminal Anda.

   ```
   cp ./../target/x86_64-unknown-linux-musl/release/cfn-guard-lambda ./bootstrap && zip lambda.zip bootstrap && rm bootstrap
   ```

1. Jalankan perintah berikut untuk mengirimkan `cfn-guard` sebagai fungsi Lambda ke akun Anda.

   ```
   aws lambda create-function --function-name cfnGuard \
    --handler guard.handler \
    --zip-file fileb://./lambda.zip \
    --runtime provided \
    --role arn:aws:iam::444455556666:role/your_lambda_execution_role \
    --environment Variables={RUST_BACKTRACE=1} \
    --tracing-config Mode=Active
   ```

## Untuk membangun dan menjalankan Guard sebagai fungsi Lambda
<a name="build-and-run-lambda"></a>

Untuk memanggil yang dikirimkan `cfn-guard-lambda` sebagai fungsi Lambda, jalankan perintah berikut.

```
aws lambda invoke --function-name cfnGuard \
  --payload '{"data":"input data","rules":["rule1","rule2"]}' \
  output.json
```

## Untuk memanggil struktur permintaan fungsi Lambda
<a name="calling-the-lambda-function"></a>

Permintaan untuk `cfn-guard-lambda` mewajibkan bidang berikut:
+ `data`— Versi string dari template YAMAL atau JSON
+ `rules`— Versi string dari file set aturan