Guard als AWS Lambda Funktion installieren - AWS CloudFormation Guard

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

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

Bevor Sie Guard als Lambda-Funktion installieren können, müssen Sie die folgenden Voraussetzungen erfüllen:

Installieren Sie den Rust-Paketmanager

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
  2. 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)

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.0.0
  2. Führen Sie den folgenden Befehl aus, um den musl Support zu installieren.

    rustup target add x86_64-unknown-linux-musl
  3. 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 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"
  4. Wechseln Sie in das cfn-guard-lambda Stammverzeichnis.

    cd ~/.cargo/bin/cfn-guard-lambda
  5. 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
  6. 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

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

Fordert an, cfn-guard-lambda dass die folgenden Felder erforderlich sind:

  • data— Die String-Version der JSON Vorlage YAML oder

  • rules— Die String-Version der Regelsatzdatei