

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Instalación de Guard como AWS Lambda función
<a name="setting-up-lambda"></a>

Puede instalarlo AWS CloudFormation Guard a través de Cargo, el administrador de paquetes de Rust. *Guard as an AWS Lambda* function (`cfn-guard-lambda`) es un envoltorio ligero alrededor de Guard (`cfn-guard`) que se puede utilizar como una función Lambda.

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

Antes de poder instalar Guard como una función de Lambda, debe cumplir los siguientes requisitos previos:
+ AWS Command Line Interface (AWS CLI) configurado con permisos para implementar e invocar funciones Lambda. Para obtener más información, consulte [Configuración de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Una función AWS Lambda de ejecución en AWS Identity and Access Management (IAM). Para obtener más información, consulte [función AWS Lambda de ejecución](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html).
+ En CentOS/RHEL los entornos, agrega el repositorio de `musl-libc` paquetes a tu configuración de yum. Para obtener más información, consulta [ngompa/musl-libc](https://copr.fedorainfracloud.org/coprs/ngompa/musl-libc/).

## Instale el administrador de paquetes Rust
<a name="install-rust-and-cargo"></a>

Cargo es el administrador de paquetes de Rust. Complete los siguientes pasos para instalar Rust, que incluye Cargo.

1. Ejecute el siguiente comando desde una terminal y, a continuación, siga las instrucciones que aparecen en pantalla para instalar Rust.

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

   1. (Opcional) Para entornos Ubuntu, ejecuta el siguiente comando.

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

1. Configure la variable de `PATH` entorno y ejecute el siguiente comando.

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

## Instalar Guard como una función Lambda (Linux, macOS o Unix)
<a name="to-isntall-guard-as-a-lambda"></a>

Para instalar Guard como una función Lambda, complete los siguientes pasos.

1. Desde su terminal de comandos, ejecute el siguiente comando.

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

   1. (Opcional) Para confirmar la instalación de Guard como función Lambda, ejecute el siguiente comando.

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

     El comando devuelve el resultado siguiente.

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

1. Para instalar el `musl` soporte, ejecute el siguiente comando.

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

1. Compile con `musl` el siguiente comando y, a continuación, ejecútelo en su terminal.

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

   Para un [tiempo de ejecución personalizado](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), AWS Lambda requiere un ejecutable con el nombre del `bootstrap` archivo .zip del paquete de implementación. Cambie el nombre del `cfn-lambda` ejecutable generado a `bootstrap` y, a continuación, agréguelo al archivo.zip.

   1. Para entornos macOS, cree su archivo de configuración de carga en la raíz del proyecto Rust o en`~/.cargo/config`.

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

1. Cambia al directorio `cfn-guard-lambda` raíz.

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

1. Ejecute el siguiente comando en su terminal.

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

1. Ejecute el siguiente comando para enviarlo `cfn-guard` como una función Lambda a su cuenta.

   ```
   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 crear y ejecutar Guard como una función Lambda
<a name="build-and-run-lambda"></a>

Para invocar la función enviada `cfn-guard-lambda` como una función Lambda, ejecute el siguiente comando.

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

## Para llamar a la estructura de solicitudes de funciones Lambda
<a name="calling-the-lambda-function"></a>

Solicita que se `cfn-guard-lambda` requieran los siguientes campos:
+ `data`— La versión en cadena de la plantilla YAML o JSON
+ `rules`— La versión en cadena del archivo del conjunto de reglas