aws-lambda-S3 - Konstrukte für AWS S-Lösungen

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.

aws-lambda-S3

Alle Klassen befinden sich in aktiver Entwicklung und unterliegen nicht abwärtskompatiblen Änderungen oder Entfernen in jeder zukünftigen Version. Diese unterliegen nicht derSemantic Versionierung-Modell. Dies bedeutet, dass Sie möglicherweise Ihren Quellcode aktualisieren müssen, wenn Sie auf eine neuere Version dieses Pakets aktualisieren.

Hinweis: Um eine ordnungsgemäße Funktionalität sicherzustellen, müssen die AWS Solutions Constructs Pakete und AWS CDK-Pakete in Ihrem Projekt dieselbe Version aufweisen.

Sprache Paket
Python
aws_solutions_constructs.aws_lambda_s3
Typoskript
@aws-solutions-constructs/aws-lambda-s3
Java
software.amazon.awsconstructs.services.lambdas3

Overview

Diese AWS Solutions Construct implementiert eine AWS Lambda -Funktion, die mit einem Amazon S3 Bucket verbunden ist.

Hier ist eine minimale bereitstellbare Musterdefinition in TypeScript:

import { LambdaToS3 } from '@aws-solutions-constructs/aws-lambda-s3'; new LambdaToS3(this, 'LambdaToS3Pattern', { lambdaFunctionProps: { runtime: lambda.Runtime.NODEJS_14_X, // This assumes a handler function in lib/lambda/index.js code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' } });

Initializer

new LambdaToS3(scope: Construct, id: string, props: LambdaToS3Props);

Parameter

Muster-Konstrukt

Name Typ Beschreibung
Gibt es LambdaObj? lambda.Function Vorhandene Instanz des Lambda Function-Objekts, die sowohl diese als auchlambdaFunctionPropsführt zu einem -Fehler.
LambdaFunctionProps? lambda.FunctionProps Optionale vom Benutzer bereitgestellte Eigenschaften, um die Standardeigenschaften für die Lambda Funktion zu überschreiben. Wird ignoriert, wenn einexistingLambdaObjwird bereitgestellt.
Bestehend BuckeObj? s3.IBucket Vorhandene Instanz des S3 Bucket-Objekts. Wenn dies zur Verfügung gestellt wird, dann wird auch die BereitstellungbucketPropsist ein Fehler.
BucketProps? s3.BucketProps Optionale vom Benutzer bereitgestellte Eigenschaften, um die Standardeigenschaften für den Bucket zu überschreiben. Wird ignoriert, wenn einexistingBucketObjwird bereitgestellt.
BucketBerechtigungen? string[] Optionale Bucket-Berechtigungen, die der Lambda Funktion erteilt werden sollen. Eine oder mehrere der folgenden Aktionen können angegeben werden:Delete,Put,Read,ReadWrite,Write.
ExistenzVPC? ec2.IVpc Eine optionale vorhandene VPC, in der dieses Pattern bereitgestellt werden soll. Bei der Bereitstellung in einer VPC verwendet die Lambda Funktion ENIs in der VPC für den Zugriff auf Netzwerkressourcen, und ein Interface Endpoint wird in der VPC für Amazon SQS erstellt. Wenn eine vorhandene VPC bereitgestellt wird, wird diedeployVpckann nichttrue. Diese Verwendung vonec2.IVpc, damit Clients VPCs bereitstellen können, die außerhalb des Stacks vorhanden sind, mithilfe desec2.Vpc.fromLookup()-Methode.
DeployVPC? boolean Erstellen einer neuen VPC basierend aufvpcProps, in das dieses Muster bereitgestellt werden soll. Setzen Sie diese Einstellung auftruestellt die minimale, privatste VPC bereit, um das Pattern auszuführen:
  • Ein isoliertes Subnetz in jeder Availability Zone, die vom CDK-Programm verwendet wird.

  • enableDnsHostnamesundenableDnsSupportwerden beide auftrue.

Wenn diese Eigenschafttrue, dannexistingVpckann nicht angegeben werden. Standardeinstellung: false.
VPCProps? ec2.VpcProps Optionale vom Benutzer bereitgestellte Eigenschaften, um die Standardeigenschaften für die neue VPC zu überschreiben.enableDnsHostnames,enableDnsSupport,natGatewaysundsubnetConfigurationwerden durch das Muster festgelegt, so dass alle Werte für die hier angegebenen Eigenschaften überschrieben werden. WenndeployVpcist nichttruewird diese Eigenschaft ignoriert.
BucketEnvironmentVariableName? string Optionaler Name für die S3-Bucket-Umgebungsvariable, die für die Lambda Funktion festgelegt wurde.

Muster-Eigenschaften

Name Typ Beschreibung
LambdaFunction lambda.Function Gibt eine Instanz der Lambda Funktion zurück, die durch das Muster erstellt wurde.
S3-Bucket? s3.Bucket Gibt eine Instanz des S3-Buckets zurück, der durch das Muster erstellt wurde.
s3loggingBucket? s3.Bucket Gibt eine Instanz des Protokollierungsbuckets zurück, der durch das Muster für den S3-Bucket erstellt wurde.
vpc? ec2.IVpc Gibt eine Instanz der VPC zurück, die vom Muster verwendet wird (falls vorhanden). Dies kann eine VPC sein, die durch das Muster oder die VPC erstellt wurde, die dem Musterkonstruktor zur Verfügung gestellt wurde.

Standardeinstellung

Die vorgefertigte Implementierung dieses Musters ohne Überschreibungen setzt die folgenden Standardwerte:

AWS Lambda-Funktion

  • Konfigurieren Sie die IAM-Rolle für den eingeschränkten Zugriffsberechtigungen für Lambda Funktion.

  • Aktivieren Sie die Wiederverwendung von Verbindungen mit Keep-Alive für NodeJS Lambda Funktion.

  • Aktivieren der X-Ray blaufverfolgung

  • Festlegen von Umgebungsvariablen:

    • S3_BUCKET_NAME (Standard)

    • AWS_NODEJS_CONNECTION_REUSE_ENABLED(für Node 10.x und höhere Funktionen)

Amazon S3 Bucket

  • Konfigurieren Sie die Zugriffsprotokollierung für S3 Bucket.

  • Aktivieren Sie die serverseitige Verschlüsselung für S3 Bucket mit AWS verwaltetem KMS-Schlüssel.

  • Aktivieren Sie die Versionierung für S3 Bucket.

  • Erlauben Sie keinen öffentlichen Zugriff für S3 Bucket.

  • Behalten Sie den S3-Bucket beim Löschen des CloudFormation-Stacks bei.

  • Erzwingen der Verschlüsselung von Daten während der Übertragung

  • Wendet die Lebenszyklusregel an, um nicht aktuelle Objektversionen nach 90 Tagen in den Glacier-Speicher zu verschieben.

Architecture

GitHub

Um den Code für dieses Muster anzuzeigen, erstellen/anzeigen Probleme und Pull-Anforderungen usw.:
@aws -solutions-konstrukte/aws-lambda-s3