

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Instalando o Guard como uma AWS Lambda função
<a name="setting-up-lambda"></a>

Você pode instalar AWS CloudFormation Guard por meio do Cargo, o gerenciador de pacotes Rust. *Guard as an AWS Lambda* function (`cfn-guard-lambda`) é um invólucro leve em torno de Guard (`cfn-guard`) que pode ser usado como uma função Lambda.

## Pré-requisitos
<a name="guard-as-lambda-prerequisites"></a>

Antes de instalar o Guard como uma função Lambda, você deve atender aos seguintes pré-requisitos:
+ AWS Command Line Interface (AWS CLI) configurado com permissões para implantar e invocar funções Lambda. Para obter mais informações, consulte [Configurar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Uma função de AWS Lambda execução em AWS Identity and Access Management (IAM). Para obter mais informações, consulte [função AWS Lambda de execução](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html).
+ Em CentOS/RHEL ambientes, adicione o repositório de `musl-libc` pacotes à sua configuração do yum. Para obter mais informações, consulte [ngompa/musl-libc](https://copr.fedorainfracloud.org/coprs/ngompa/musl-libc/).

## Instale o gerenciador de pacotes Rust
<a name="install-rust-and-cargo"></a>

Cargo é o gerenciador de pacotes Rust. Conclua as etapas a seguir para instalar o Rust, que inclui o Cargo.

1. Execute o comando a seguir em um terminal e siga as instruções na tela para instalar o Rust.

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

   1. (Opcional) Para ambientes Ubuntu, execute o comando a seguir.

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

1. Configure sua variável de `PATH` ambiente e execute o comando a seguir.

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

## Instale o Guard como uma função Lambda (Linux, macOS ou Unix)
<a name="to-isntall-guard-as-a-lambda"></a>

Para instalar o Guard como uma função Lambda, conclua as etapas a seguir.

1. No seu terminal de comando, execute o comando a seguir.

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

   1. (Opcional) Para confirmar a instalação do Guard como uma função Lambda, execute o comando a seguir.

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

     O comando retorna a seguinte saída.

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

1. Para instalar o `musl` suporte, execute o comando a seguir.

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

1. Crie com e`musl`, em seguida, execute o seguinte comando no seu terminal.

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

   Para um [tempo de execução personalizado](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), AWS Lambda requer um executável com o nome `bootstrap` no arquivo.zip do pacote de implantação. Renomeie o `cfn-lambda` executável gerado `bootstrap` e adicione-o ao arquivo.zip.

   1. Para ambientes macOS, crie seu arquivo de configuração de carga na raiz do projeto Rust ou em. `~/.cargo/config`

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

1. Mude para o diretório `cfn-guard-lambda` raiz.

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

1. Execute o comando a seguir no seu terminal.

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

1. Execute o comando a seguir para enviar `cfn-guard` como uma função Lambda para sua conta.

   ```
   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
   ```

## Para criar e executar o Guard como uma função Lambda
<a name="build-and-run-lambda"></a>

Para invocar o enviado `cfn-guard-lambda` como uma função Lambda, execute o comando a seguir.

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

## Para chamar a estrutura de solicitação da função Lambda
<a name="calling-the-lambda-function"></a>

Solicita a `cfn-guard-lambda` exigência dos seguintes campos:
+ `data`— A versão de string do modelo YAML ou JSON
+ `rules`— A versão em cadeia de caracteres do arquivo do conjunto de regras