

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Installazione di Guard come AWS Lambda funzione
<a name="setting-up-lambda"></a>

È possibile installare AWS CloudFormation Guard tramite Cargo, il gestore di pacchetti di Rust. *Guard as an AWS Lambda* function (`cfn-guard-lambda`) è un wrapper leggero per Guard (`cfn-guard`) che può essere usato come funzione Lambda.

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

Prima di poter installare Guard come funzione Lambda, devi soddisfare i seguenti prerequisiti:
+ AWS Command Line Interface (AWS CLI) configurato con le autorizzazioni per distribuire e richiamare funzioni Lambda. Per ulteriori informazioni, consultare la pagina relativa alla [configurazione di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Un ruolo di AWS Lambda esecuzione in AWS Identity and Access Management (IAM). Per ulteriori informazioni, consulta il [ruolo di AWS Lambda esecuzione](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html).
+ Negli CentOS/RHEL ambienti, aggiungi il repository dei `musl-libc` pacchetti alla configurazione di yum. [Per ulteriori informazioni, vedere ngompa/musl-libc.](https://copr.fedorainfracloud.org/coprs/ngompa/musl-libc/)

## Installa il gestore di pacchetti Rust
<a name="install-rust-and-cargo"></a>

Cargo è il gestore di pacchetti Rust. Completa i seguenti passaggi per installare Rust, che include Cargo.

1. Esegui il seguente comando da un terminale, quindi segui le istruzioni sullo schermo per installare Rust.

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

   1. (Facoltativo) Per gli ambienti Ubuntu, esegui il seguente comando.

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

1. Configura la variabile di `PATH` ambiente ed esegui il comando seguente.

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

## Installa Guard come funzione Lambda (Linux, macOS o Unix)
<a name="to-isntall-guard-as-a-lambda"></a>

Per installare Guard come funzione Lambda, completa i seguenti passaggi.

1. Dal terminale di comando, esegui il comando seguente.

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

   1. (Facoltativo) Per confermare l'installazione di Guard come funzione Lambda, esegui il comando seguente.

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

     Questo comando restituisce il seguente output.

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

1. Per installare il `musl` supporto, esegui il comando seguente.

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

1. Crea con`musl`, quindi esegui il comando seguente nel tuo terminale.

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

   Per un [runtime personalizzato](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), AWS Lambda richiede un eseguibile con il nome `bootstrap` nel file.zip del pacchetto di distribuzione. Rinomina l'`cfn-lambda`eseguibile generato in `bootstrap` e aggiungilo all'archivio.zip.

   1. Per gli ambienti macOS, crea il tuo file di configurazione cargo nella radice del progetto Rust o in. `~/.cargo/config`

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

1. Passa alla directory `cfn-guard-lambda` principale.

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

1. Esegui il seguente comando nel tuo terminale.

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

1. Esegui il comando seguente per inviarlo `cfn-guard` come funzione Lambda al tuo account.

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

## Per creare ed eseguire Guard come funzione Lambda
<a name="build-and-run-lambda"></a>

Per richiamare l'invio `cfn-guard-lambda` come funzione Lambda, esegui il comando seguente.

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

## Per chiamare la struttura della richiesta della funzione Lambda
<a name="calling-the-lambda-function"></a>

Richieste per `cfn-guard-lambda` richiedere i seguenti campi:
+ `data`— La versione in formato stringa del modello YAML o JSON
+ `rules`— La versione in formato stringa del file del set di regole