

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Guard als AWS Lambda Funktion installieren
<a name="setting-up-lambda"></a>

Sie können AWS CloudFormation Guard über Cargo, den Rust-Paketmanager, installieren. *Guard as an AWS Lambda* function (`cfn-guard-lambda`) ist ein leichter Wrapper für Guard (`cfn-guard`), der als Lambda-Funktion verwendet werden kann.

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

Bevor Sie Guard als Lambda-Funktion installieren können, müssen Sie die folgenden Voraussetzungen erfüllen:
+ AWS Command Line Interface (AWS CLI) konfiguriert mit Berechtigungen zum Bereitstellen und Aufrufen von Lambda-Funktionen. Weitere Informationen finden Sie unter [Konfigurieren der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Eine AWS Lambda Ausführungsrolle in AWS Identity and Access Management (IAM). Weitere Informationen finden Sie unter [AWS Lambda Ausführungsrolle](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html).
+ Fügen Sie in CentOS/RHEL Umgebungen das `musl-libc` Paket-Repository zu Ihrer Yum-Konfiguration hinzu. Weitere Informationen finden Sie unter [ngompa/musl-libc](https://copr.fedorainfracloud.org/coprs/ngompa/musl-libc/).

## Installieren Sie den Rust-Paketmanager
<a name="install-rust-and-cargo"></a>

Cargo ist der Rust-Paketmanager. Führen Sie die folgenden Schritte aus, um Rust zu installieren, zu dem auch Cargo gehört.

1. Führen Sie den folgenden Befehl von einem Terminal aus und folgen Sie dann den Anweisungen auf dem Bildschirm, um Rust zu installieren.

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

   1. (Optional) Führen Sie für Ubuntu-Umgebungen den folgenden Befehl aus.

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

1. Konfigurieren Sie Ihre `PATH` Umgebungsvariable und führen Sie den folgenden Befehl aus.

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

## Installieren Sie Guard als Lambda-Funktion (Linux, macOS oder Unix)
<a name="to-isntall-guard-as-a-lambda"></a>

Gehen Sie wie folgt vor, um Guard als Lambda-Funktion zu installieren.

1. Führen Sie von Ihrem Befehlsterminal aus den folgenden Befehl aus.

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

   1. (Optional) Führen Sie den folgenden Befehl aus, um die Installation von Guard als Lambda-Funktion zu bestätigen.

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

     Der Befehl gibt die folgende Ausgabe zurück.

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

1. Führen Sie den folgenden Befehl aus, um den `musl` Support zu installieren.

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

1. Erstellen Sie mit `musl` und führen Sie dann den folgenden Befehl in Ihrem Terminal aus.

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

   Für eine [benutzerdefinierte Laufzeit](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html) AWS Lambda ist eine ausführbare Datei mit dem Namen `bootstrap` in der ZIP-Datei des Bereitstellungspakets erforderlich. Benennen Sie die generierte `cfn-lambda` ausführbare Datei in um `bootstrap` und fügen Sie sie dann dem ZIP-Archiv hinzu.

   1. Erstellen Sie für macOS-Umgebungen Ihre Cargo-Konfigurationsdatei im Stammverzeichnis des Rust-Projekts oder in`~/.cargo/config`.

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

1. Wechseln Sie in das `cfn-guard-lambda` Stammverzeichnis.

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

1. Führen Sie den folgenden Befehl in Ihrem Terminal aus.

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

1. Führen Sie den folgenden Befehl aus, um ihn `cfn-guard` als Lambda-Funktion an Ihr Konto zu senden.

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

## Um Guard als Lambda-Funktion zu erstellen und auszuführen
<a name="build-and-run-lambda"></a>

Führen Sie den folgenden Befehl aus, um die `cfn-guard-lambda` als Lambda-Funktion eingereichte Datei aufzurufen.

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

## Um die Anforderungsstruktur der Lambda-Funktion aufzurufen
<a name="calling-the-lambda-function"></a>

Fordert an, `cfn-guard-lambda` dass die folgenden Felder erforderlich sind:
+ `data`— Die String-Version der YAML- oder JSON-Vorlage
+ `rules`— Die String-Version der Regelsatzdatei