

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.

# Automatisieren Sie die Einrichtung von S3 Object Lambda mit einer Vorlage CloudFormation
<a name="olap-using-cfn-template"></a>

**Anmerkung**  
Seit dem 7. November 2025 ist S3 Object Lambda nur für Bestandskunden verfügbar, die den Service derzeit nutzen, sowie für ausgewählte AWS Partner Network (APN) -Partner. Weitere Informationen zu Features, die S3 Object Lambda ähneln, finden Sie hier – Änderung der [Verfügbarkeit von Amazon S3 Object Lambda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazons3-ol-change.html).

Sie können eine AWS CloudFormation Vorlage verwenden, um schnell einen Amazon S3 Object Lambda Access Point zu erstellen. Die CloudFormation Vorlage erstellt automatisch relevante Ressourcen, konfiguriert AWS Identity and Access Management (IAM) -Rollen und richtet eine AWS Lambda Funktion ein, die Anfragen automatisch über den Object Lambda Access Point verarbeitet. Mit der CloudFormation Vorlage können Sie bewährte Verfahren implementieren, Ihre Sicherheitslage verbessern und Fehler reduzieren, die durch manuelle Prozesse verursacht werden.

Dieses [GitHub Repository](https://github.com/aws-samples/amazon-s3-object-lambda-default-configuration) enthält die CloudFormation Vorlage und den Quellcode der Lambda-Funktion. Anweisungen zur Verwendung der Vorlage finden Sie unter [Erstellen von Object Lambda Zugangspunkten](olap-create.md).

Die in der Vorlage bereitgestellte Lambda-Funktion führt keine Transformation aus. Stattdessen werden Ihre Objekte unverändert aus der zugrunde liegenden Datenquelle zurückgegeben. Sie können die Funktion klonen und Ihren eigenen Transformationscode hinzufügen, um Daten zu ändern und zu verarbeiten, wenn sie an eine Anwendung zurückgegeben werden. Weitere Informationen zum Anpassen Ihrer Funktion finden Sie unter [Ändern der Lambda-Funktion](#modifying-lambda-function) und [Schreiben von Lambda-Funktionen für S3 Object Lambda Access Points](olap-writing-lambda.md). 

## Ändern der Vorlage
<a name="modifying-cfn-template"></a>

**Erstellen eines neuen unterstützenden Zugriffspunkts**  
S3 Object Lambda verwendet zwei Zugriffspunkte, einen Object Lambda Access Point und einen standardmäßigen S3-Zugriffspunkt, der als *unterstützender Zugriffspunkt* bezeichnet wird. Wenn Sie eine Anforderung an einen Object Lambda Access Point ausführen, ruft S3 entweder Lambda in Ihrem Namen auf oder delegiert die Anforderung an den unterstützenden Zugriffspunkt, abhängig von der Konfiguration von S3 Object Lambda. Sie können einen neuen unterstützenden Zugriffspunkt erstellen, indem Sie den folgenden Parameter als Teil des `aws cloudformation deploy`-Befehls, der beim Bereitstellen der Vorlage erstellt werden soll, übergeben.

```
CreateNewSupportingAccessPoint=true
```

**Konfigurieren einer Nutzlast-Funktion**  
Sie können eine Nutzlast konfigurieren, um der Lambda-Funktion zusätzliche Daten bereitzustellen, indem Sie beim Bereitstellen der Vorlage den folgenden Parameter als Teil des `aws cloudformation deploy`-Befehls übergeben.

```
LambdaFunctionPayload="format=json"
```

**CloudWatch Amazon-Überwachung aktivieren**  
Sie können die CloudWatch Überwachung aktivieren, indem Sie bei der Bereitstellung der Vorlage den folgenden Parameter als Teil des `aws cloudformation deploy` Befehls übergeben.

```
EnableCloudWatchMonitoring=true
```

Dieser Parameter aktiviert die Anforderungsmetriken Ihres Object Lambda Access Point für Amazon S3 und erstellt zwei CloudWatch Alarme zur Überwachung von clientseitigen und serverseitigen Fehlern.

**Anmerkung**  
Für die CloudWatch Nutzung durch Amazon fallen zusätzliche Kosten an. Weitere Informationen zu Amazon-S3-Anforderungsmetriken finden Sie unter [Überwachen und Protokollieren von Zugriffspunkten](access-points-monitoring-logging.md).  
Details zu den Preisen finden Sie unter [CloudWatch -Preise](https://aws.amazon.com/cloudwatch/pricing/). 

**Konfigurieren von Provisioned Concurrency**  
Zur Reduzierung der Latenz können Sie bereitgestellte Parallelität für die Lambda-Funktion konfigurieren, die den Object Lambda Access Point unterstützt, indem Sie die Vorlage so bearbeiten, dass sie die folgenden Zeilen unter `Resources` einschließt.

```
LambdaFunctionVersion:
      Type: AWS::Lambda::Version
      Properties:
        FunctionName: !Ref LambdaFunction
        ProvisionedConcurrencyConfig:
            ProvisionedConcurrentExecutions: Integer
```

**Anmerkung**  
Für die Bereitstellung von Nebenläufigkeit fallen zusätzliche Gebühren an. Weitere Informationen zur bereitgestellten Parallelität finden Sie unter [Verwalten der von Lambda bereitgestellten Parallelität](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) im *AWS Lambda -Entwicklerhandbuch*.  
Details zu den Preisen finden Sie unter [AWS Lambda -Preise](https://aws.amazon.com/lambda/pricing/).

## Ändern der Lambda-Funktion
<a name="modifying-lambda-function"></a>

**Ändern der Header-Werte für eine `GetObject`-Anforderung**  
Standardmäßig leitet die Lambda-Funktion alle Header mit Ausnahme von `Content-Length` und `ETag` von der vorsignierten URL-Anforderung an den `GetObject`-Client weiter. Basierend auf Ihrem Transformationscode in der Lambda-Funktion können Sie wählen, ob Sie neue Header-Werte an den `GetObject`-Client senden.

Sie können Ihre Lambda-Funktion aktualisieren, um neue Header-Werte zu senden, indem Sie sie in der `WriteGetObjectResponse`-API-Operation übergeben.

Wenn Ihre Lambda-Funktion beispielsweise den Text in Amazon-S3-Objekten in eine andere Sprache übersetzt, können Sie einen neuen Wert im `Content-Language`-Header bestätigen. Ändern Sie die `writeResponse`-Funktion dazu wie folgt:

```
async function writeResponse (s3Client: S3, requestContext: GetObjectContext, transformedObject: Buffer,
  headers: Headers): Promise<PromiseResult<{}, AWSError>> {
  const { algorithm, digest } = getChecksum(transformedObject);

  return s3Client.writeGetObjectResponse({
    RequestRoute: requestContext.outputRoute,
    RequestToken: requestContext.outputToken,
    Body: transformedObject,
    Metadata: {
      'body-checksum-algorithm': algorithm,
      'body-checksum-digest': digest
    },
    ...headers,
    ContentLanguage: 'my-new-language'
  }).promise();
}
```

Eine vollständige Liste der unterstützten Header finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/API_WriteGetObjectResponse.html#API_WriteGetObjectResponse_RequestSyntax](https://docs.aws.amazon.com/AmazonS3/latest/API/API_WriteGetObjectResponse.html#API_WriteGetObjectResponse_RequestSyntax) in der *API-Referenz zu Amazon Simple Storage Service*.

**Zurückgeben von Metadaten Headern**  
Sie können Ihre Lambda-Funktion aktualisieren, um neue Header-Werte zu senden, indem Sie sie in der Anforderung der API-Operation [https://docs.aws.amazon.com/AmazonS3/latest/API/API_WriteGetObjectResponse.html#API_WriteGetObjectResponse_RequestSyntax](https://docs.aws.amazon.com/AmazonS3/latest/API/API_WriteGetObjectResponse.html#API_WriteGetObjectResponse_RequestSyntax) übergeben.

```
async function writeResponse (s3Client: S3, requestContext: GetObjectContext, transformedObject: Buffer,
  headers: Headers): Promise<PromiseResult<{}, AWSError>> {
  const { algorithm, digest } = getChecksum(transformedObject);

  return s3Client.writeGetObjectResponse({
    RequestRoute: requestContext.outputRoute,
    RequestToken: requestContext.outputToken,
    Body: transformedObject,
    Metadata: {
      'body-checksum-algorithm': algorithm,
      'body-checksum-digest': digest,
      'my-new-header': 'my-new-value' 
    },
    ...headers
  }).promise();
}
```

**Einen neuen Statuscode zurückgeben**  
Sie können einen benutzerdefinierten Statuscode an den `GetObject`-Client zurückgeben, indem Sie ihn in der Anforderung der API-Operation [https://docs.aws.amazon.com/AmazonS3/latest/API/API_WriteGetObjectResponse.html#API_WriteGetObjectResponse_RequestSyntax](https://docs.aws.amazon.com/AmazonS3/latest/API/API_WriteGetObjectResponse.html#API_WriteGetObjectResponse_RequestSyntax) übergeben.

```
async function writeResponse (s3Client: S3, requestContext: GetObjectContext, transformedObject: Buffer,
  headers: Headers): Promise<PromiseResult<{}, AWSError>> {
  const { algorithm, digest } = getChecksum(transformedObject);

  return s3Client.writeGetObjectResponse({
    RequestRoute: requestContext.outputRoute,
    RequestToken: requestContext.outputToken,
    Body: transformedObject,
    Metadata: {
      'body-checksum-algorithm': algorithm,
      'body-checksum-digest': digest
    },
    ...headers,
    StatusCode: Integer
  }).promise();
}
```

Eine vollständige Liste der unterstützten Statuscodes finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/API_WriteGetObjectResponse.html#API_WriteGetObjectResponse_RequestSyntax](https://docs.aws.amazon.com/AmazonS3/latest/API/API_WriteGetObjectResponse.html#API_WriteGetObjectResponse_RequestSyntax) in der *API-Referenz zu Amazon Simple Storage Service*.

**Anwenden der Parameter `Range` und `partNumber` auf das Quellobjekt**  
Standardmäßig kann der von der CloudFormation Vorlage erstellte Object Lambda Access Point die `partNumber` Parameter `Range` und verarbeiten. Die Lambda-Funktion wendet den Bereich oder die Teilenummer an, die auf das transformierte Objekt angefordert wird. Dazu muss die Funktion das gesamte Objekt herunterladen und die Transformation ausführen. In einigen Fällen werden Ihre transformierten Objektbereiche möglicherweise genau Ihren Quellobjektbereichen zugeordnet. Dies bedeutet, dass das Anfordern des Bytebereichs A-B für Ihr Quellobjekt und das Ausführen der Transformation zum gleichen Ergebnis führen kann, wie das Anfordern des gesamten Objekts, das Ausführen der Transformation und das Zurückgeben des Bytebereichs A-B für das transformierte Objekt.

In solchen Fällen können Sie die Implementierung der Lambda-Funktion ändern, um den Bereich oder die Teilenummer direkt auf das Quellobjekt anzuwenden. Dieser Ansatz verbessert die allgemeine Funktionslatenz und den erforderlichen Speicher. Weitere Informationen finden Sie unter [Arbeiten mit Range- und partNumber-Headern](range-get-olap.md).

**Deaktivieren der Verarbeitung von `Range` und `partNumber`**  
Standardmäßig kann der von der CloudFormation Vorlage erstellte Object Lambda Access Point die `partNumber` Parameter `Range` und verarbeiten. Wenn Sie dieses Verhalten nicht benötigen, können Sie es deaktivieren, indem Sie die folgenden Zeilen aus der Vorlage entfernen.

```
AllowedFeatures:
  - GetObject-Range
  - GetObject-PartNumber
  - HeadObject-Range 
  - HeadObject-PartNumber
```

**Transformieren von großen Objekten**  
Standardmäßig verarbeitet die Lambda-Funktion das gesamte Objekt im Speicher, bevor es mit dem Streamen der Antwort auf S3 Object Lambda beginnen kann. Sie können die Funktion ändern, um die Antwort zu streamen, während sie die Transformation durchführt. Dies hilft, die Transformationslatenz und die Speichergröße der Lambda-Funktion zu reduzieren. Eine Beispielimplementierung finden Sie unter [Beispiel für komprimierte Inhalte streamen](olap-writing-lambda.md#olap-getobject-response).