

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.

# Transformieren von Objekten mit S3 Object Lambda
<a name="transforming-objects"></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).

Mit S3 Object Lambda können Sie `GET`-, `LIST`- und `HEAD`-Anforderungen von Amazon S3 eigenen Code hinzufügen, um Daten zu ändern und zu verarbeiten, wenn sie an eine Anwendung zurückgegeben werden. Sie können mit benutzerdefiniertem Code die von S3-`GET`-Anforderungen zurückgegebenen Daten ändern, um Zeilen zu filtern, Bilder dynamisch in der Größe zu ändern und mit Wassermarken zu versehen, vertrauliche Daten zu redigieren und mehr. Sie können S3 Object Lambda auch verwenden, um die Ausgabe von S3-`LIST`-Anforderungen zu ändern und eine benutzerdefinierte Ansicht aller Objekte in einem Bucket zu erstellen, und von S3-`HEAD`-Anforderungen zum Ändern von Objektmetadaten wie Objektname und -größe. Sie können S3 Object Lambda als Quelle für Ihre CloudFront Amazon-Distribution verwenden, um Daten für Endbenutzer maßzuschneidern, z. B. die automatische Größenänderung von Bildern, die Transcodierung älterer Formate (wie von JPEG nach WebP) oder das Entfernen von Metadaten. Weitere Informationen finden Sie im AWS Blogbeitrag [Verwenden Sie Amazon S3 Object Lambda mit Amazon CloudFront](https://aws.amazon.com/blogs/aws/new-use-amazon-s3-object-lambda-with-amazon-cloudfront-to-tailor-content-for-end-users/). Ihr Code wird von AWS Lambda-Funktionen unterstützt und läuft auf einer Infrastruktur, die vollständig von AWS verwaltet wird. Mit S3 Object Lambda wird die Notwendigkeit reduziert, abgeleitete Kopien Ihrer Daten zu erstellen und zu speichern oder Proxys auszuführen. Dabei sind keine Änderungen an Ihren Anwendungen erforderlich.

**So funktioniert S3 Object Lambda**  
S3 Object Lambda verwendet AWS Lambda Funktionen, um die Ausgabe von Standard-S3- `GET``LIST`, oder `HEAD` -Anfragen automatisch zu verarbeiten. AWS Lambda ist ein serverloser Rechendienst, der kundendefinierten Code ausführt, ohne dass die Verwaltung der zugrunde liegenden Rechenressourcen erforderlich ist. Sie können Ihre eigenen benutzerdefinierten Lambda-Funktionen erstellen und ausführen und die Datentransformation an Ihren spezifischen Anwendungsfall anpassen. 

Nachdem Sie eine Lambda-Funktion konfiguriert haben, fügen Sie sie an einen Serviceendpunkt von S3 Object Lambda-an, der als *Object Lambda Access Point* bezeichnet wird. Der Object Lambda Zugangspunkt verwendet einen standardmäßigen S3-Zugangspunkt, der als *unterstützender Zugangspunkt* bezeichnet wird, um auf Daten zuzugreifen.

Wenn Sie eine Anforderung an Ihren Object Lambda Access Point senden, ruft Amazon S3 Ihre Lambda-Funktion automatisch auf. Dann geben alle Daten, die mit der S3-Anforderung `GET`, `LIST` oder `HEAD` über den Object Lambda Access Point abgerufen werden, ein transformiertes Ergebnis an die Anwendung zurück. Alle anderen Anforderungen werden wie gewohnt verarbeitet, wie im folgenden Diagramm dargestellt. 



![\[Diagramm, das zeigt, wie S3 Object Lambda funktioniert.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/ObjectLamdaDiagram.png)


Die Themen in diesem Abschnitt beschreiben, wie Sie mit S3 Object Lambda arbeiten.

**Topics**
+ [Erstellen von Object Lambda Zugangspunkten](olap-create.md)
+ [Verwenden von Amazon S3 Objekt-Lambda-Zugriffspunkten](olap-use.md)
+ [Sicherheitsüberlegungen für S3 Object Lambda-Zugriffspunkte](olap-security.md)
+ [Schreiben von Lambda-Funktionen für S3 Object Lambda Access Points](olap-writing-lambda.md)
+ [Verwenden von AWS integrierten Lambda-Funktionen](olap-examples.md)
+ [Bewährte Methoden und Richtlinien für S3 Object Lambda](olap-best-practices.md)
+ [Tutorials zu S3 Object Lambda](olap-tutorials.md)
+ [Debugging und Problembehandlung für S3 Object Lambda](olap-debugging-lambda.md)

# Erstellen von Object Lambda Zugangspunkten
<a name="olap-create"></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).

Ein Objekt-Lambda-Zugangspunkt ist mit genau einem Standard-Zugangspunkt verknüpft, den Sie bei der Erstellung angeben. Zum Erstellen eines Object Lambda Access Point benötigen Sie folgende Ressourcen:
+ **Ein standardmäßiger S3-Zugriffspunkt** Wenn Sie mit Object Lambda Access Points arbeiten, wird dieser Standard-Access Point als *unterstützender Access Point* bezeichnet und ist an einen S3-Bucket oder ein Amazon FSx for OpenZFS-Volume angehängt. Informationen zum Erstellen von Standardzugriffspunkten finden Sie unter [Erstellen eines Zugriffspunkts](creating-access-points.md).
+ **Eine Funktion. AWS Lambda ** Sie können entweder Ihre eigene Lambda-Funktion erstellen oder eine vordefinierte Funktion verwenden. Weitere Informationen zum Erstellen von Lambda-Funktionen finden Sie unter [Schreiben von Lambda-Funktionen für S3 Object Lambda Access Points](olap-writing-lambda.md). Weitere Hinweise zu vorgefertigten Funktionen finden Sie unter [Verwenden von AWS integrierten Lambda-Funktionen](olap-examples.md).
+ **(Optional) Eine AWS Identity and Access Management (IAM-) Richtlinie.** Amazon-S3-Zugriffspunkte unterstützen IAM-Ressourcenrichtlinien, mit denen Sie die Verwendung des Zugriffspunkts nach Ressource, Benutzer oder anderen Bedingungen steuern können. Weitere Informationen zum Erstellen dieser Richtlinien finden Sie unter [Konfigurieren von IAM-Richtlinien für Object Lambda Access Points](olap-policies.md).

In den folgenden Abschnitten wird beschrieben, wie Sie einen Object Lambda Access Point mit Folgendem erstellen:
+ Die AWS-Managementkonsole
+ Das AWS Command Line Interface (AWS CLI)
+ Eine AWS CloudFormation Vorlage
+ Die AWS Cloud Development Kit (AWS CDK)

Informationen zum Erstellen eines Object Lambda Access Point mithilfe der REST-API finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html) in der *API-Referenz zu Amazon Simple Storage Service*.

## Erstellen eines Object Lambda Access Point
<a name="create-olap"></a>

Erstellen Sie Ihren Object Lambda Access Point mit einem der folgenden Verfahren. 

### Verwenden der S3-Konsole
<a name="olap-create-console"></a>

**So erstellen Sie einen Object Lambda Access Point mit der Konsole**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie in der Navigationsleiste den Namen der aktuell angezeigten Datei aus AWS-Region. Wählen Sie dann die Region aus, zu der Sie wechseln möchten. 

1. Wählen Sie im linken Navigationsbereich **Objekt-Lambda-Zugriffspunkte** aus.

1. Wählen Sie auf der Seite **Object Lambda access points (Objekt-Lambda-Zugriffspunkte)** die Option **Create Object Lambda access point (Objekt-Lambda-Zugriffspunkt erstellen)**.

1. Geben Sie unter **Object Lambda access point name** (Name des Objekt-Lambda-Zugriffspunkts) den Namen ein, den Sie für den Zugriffspunkt verwenden möchten. 

   Wie bei Standard-Zugriffspunkten gibt es Regeln für die Benennung von Object Lambda Access Points. Weitere Informationen finden Sie unter [Regeln für die Benennung von Zugangspunkten](access-points-restrictions-limitations-naming-rules.md#access-points-names).

1. Geben Sie für **Supporting Access Point** (Unterstützender Access Point) den Standard-Zugriffspunkt ein, den Sie verwenden möchten, oder navigieren Sie zu diesem. Der Access Point muss sich in demselben Zustand befinden AWS-Region wie die Objekte, die Sie transformieren möchten. Informationen zum Erstellen von Standardzugriffspunkten finden Sie unter [Erstellen eines Zugriffspunkts](creating-access-points.md).

1. Unter **Transformationskonfiguration** können Sie eine Funktion hinzufügen, die Ihre Daten für den Object Lambda Access Point transformiert. Führen Sie eine der folgenden Aktionen aus:
   + Wenn Sie bereits eine AWS Lambda Funktion in Ihrem Konto haben, können Sie diese unter **Lambda-Funktion aufrufen** auswählen. Hier können Sie den Amazon-Ressourcennamen (ARN) einer Lambda-Funktion in Ihre eingeben AWS-Konto oder eine Lambda-Funktion aus dem Drop-down-Menü auswählen.
   + Wenn Sie eine AWS eingebaute Funktion verwenden möchten, wählen Sie den Funktionsnamen unter **AWS Built-Funktion** und wählen Sie **Lambda-Funktion erstellen** aus. Dadurch gelangen Sie zur Lambda-Konsole, wo Sie eine integrierte Funktion in Ihrem AWS-Konto implementieren können. Weitere Hinweise zu integrierten Funktionen finden Sie unter [Verwenden von AWS integrierten Lambda-Funktionen](olap-examples.md).

   Wählen Sie unter **S3** eine oder mehrere API-Operationen aus APIs, die aufgerufen werden sollen. Für jede ausgewählte API müssen Sie eine Lambda-Funktion angeben, die aufgerufen werden soll. 

1. (Optional) Fügen Sie unter **Payload** (Nutzlast) JSON-Text hinzu, den Sie Ihrer Lambda-Funktion als Eingabe zur Verfügung stellen möchten. Sie können Nutzlasten mit verschiedenen Parametern für verschiedene Object Lambda Access Points konfigurieren, die dieselbe Lambda-Funktion aufrufen, wodurch die Flexibilität Ihrer Lambda-Funktion erhöht wird.
**Wichtig**  
Wenn Sie Object Lambda Access Points verwenden, stellen Sie sicher, dass die Nutzlast keine vertraulichen Informationen enthält.

1. (Optional) Für **Range and part number** (Bereichs- und Teilenummer) müssen Sie diese Option aktivieren, wenn Sie `GET`- und `HEAD`-Anforderungen mit Bereichs- und Teilenummern-Headern bearbeiten möchten. Durch Aktivieren dieser Option wird bestätigt, dass Ihre Lambda-Funktion diese Anforderungen erkennen und bearbeiten kann. Weitere Informationen zu Bereichsüberschriften und Teilenummern finden Sie unter [Arbeiten mit Range- und partNumber-Headern](range-get-olap.md).

1. (Optional) Wählen Sie für **Anforderungsmetriken** die Option **Aktivieren** oder **Deaktivieren** aus, um Ihrem Object Lambda Access Point Amazon-S3-Überwachung hinzuzufügen. Anforderungsmetriken werden zum CloudWatch Standardtarif von Amazon abgerechnet.

1. (Optional) Legen Sie unter **Object Lambda Access Point policy** (Objekt-Lambda-Access-Point-Richtlinie) eine Ressourcenrichtlinie fest. Ressourcenrichtlinien erteilen Berechtigungen für den angegebenen Object Lambda Access Point und können die Verwendung des Zugriffspunkts nach Ressource, Benutzer oder anderen Bedingungen steuern. Weitere Hinweise zu Ressourcenrichtlinien für Objekt-Lambda-Zugriffspunkten finden Sie unter [Konfigurieren von IAM-Richtlinien für Object Lambda Access Points](olap-policies.md).

1. Wählen Sie unter **Block Public Access settings for this Object Lambda Access Point** (Einstellungen für die Blockierung des öffentlichen Zugriffs für diesen Objekt-Lambda-Zugriffspunkt) die Einstellungen für die Blockierung des öffentlichen Zugriffs aus, die Sie anwenden möchten. Alle Einstellungen für die Blockierung des öffentlichen Zugriffs sind standardmäßig für neue Objekt-Lambda-Zugriffspunkte aktiviert. Wir empfehlen Ihnen, die Standardeinstellungen aktiviert zu lassen. Amazon S3 unterstützt derzeit nicht das Ändern der Einstellungen für die Blockierung des öffentlichen Zugriffs eines Objekt-Lambda-Zugriffspunkts, nachdem der Objekt-Lambda-Zugriffspunkt erstellt wurde.

   Weitere Informationen über die Blockierung des öffentlichen Zugriffs in Amazon S3 finden Sie unter [Verwalten des öffentlichen Zugriffs auf Zugangspunkte für Allzweck-Buckets](access-points-bpa-settings.md).

1. Wählen Sie **Create Object Lambda Access Point** (Objekt-Lambda-Access-Point erstellen) aus.

### Unter Verwendung des AWS CLI
<a name="olap-create-cli"></a>

**So erstellen Sie einen Object Lambda Access Point mithilfe einer Vorlage AWS CloudFormation**
**Anmerkung**  
Wenn Sie die folgenden Befehle verwenden, ersetzen Sie `user input placeholders` durch eigene Informationen.

1. Laden Sie das AWS Lambda Funktionsbereitstellungspaket `s3objectlambda_deployment_package.zip` in der [Standardkonfiguration von S3 Object Lambda](https://github.com/aws-samples/amazon-s3-object-lambda-default-configuration) herunter.

1. Führen Sie den folgenden `put-object`-Befehl aus, um das Paket in einen Amazon-S3-Bucket hochzuladen.

   ```
   aws s3api put-object --bucket Amazon S3 bucket name --key s3objectlambda_deployment_package.zip --body release/s3objectlambda_deployment_package.zip
   ```

1. Laden Sie die AWS CloudFormation Vorlage `s3objectlambda_defaultconfig.yaml` in der [Standardkonfiguration von S3 Object Lambda](https://github.com/aws-samples/amazon-s3-object-lambda-default-configuration) herunter.

1. Führen Sie den folgenden `deploy`-Befehl aus, um die Vorlage in Ihrem AWS-Konto bereitzustellen.

   ```
   aws cloudformation deploy --template-file s3objectlambda_defaultconfig.yaml \
    --stack-name CloudFormation stack name \ 
    --parameter-overrides ObjectLambdaAccessPointName=Object Lambda Access Point name \
     SupportingAccessPointName=Amazon S3 access point S3BucketName=Amazon S3 bucket \
     LambdaFunctionS3BucketName=Amazon S3 bucket containing your Lambda package \ 
     LambdaFunctionS3Key=Lambda object key LambdaFunctionS3ObjectVersion=Lambda object version \ 
     LambdaFunctionRuntime=Lambda function runtime --capabilities capability_IAM
   ```

Sie können diese AWS CloudFormation Vorlage so konfigurieren, dass Lambda für `GET``HEAD`, und `LIST` API-Operationen aufgerufen wird. Weitere Informationen zum Ändern der Standardkonfiguration der Vorlage finden Sie unter [Automatisieren Sie die Einrichtung von S3 Object Lambda mit einer Vorlage CloudFormation](olap-using-cfn-template.md).<a name="olap-create-cli-specific"></a>

**So erstellen Sie einen Object Lambda Access Point mit dem AWS CLI**
**Anmerkung**  
Wenn Sie die folgenden Befehle verwenden, ersetzen Sie `user input placeholders` durch eigene Informationen.

Im folgenden Beispiel wird ein Object Lambda Access Point mit dem Namen *`my-object-lambda-ap`* für den Bucket *`amzn-s3-demo-bucket1`* im Konto *`111122223333`* erstellt. In diesem Beispiel wird davon ausgegangen, dass bereits ein Standard-Zugriffspunkt mit dem Namen *`example-ap`* erstellt wurde. Informationen zum Erstellen eines Standardzugriffspunkts finden Sie unter [Erstellen eines Zugriffspunkts](creating-access-points.md).

In diesem Beispiel wird die AWS vorgefertigte Funktion verwendet. `decompress` Weitere Hinweise zu vorgefertigten Funktionen finden Sie unter [Verwenden von AWS integrierten Lambda-Funktionen](olap-examples.md).

1. Erstellen Sie einen Bucket. In diesem Beispiel verwenden wir *`amzn-s3-demo-bucket1`*. Informationen zum Erstellen von Buckets finden Sie unter [Erstellen eines Allzweck-Buckets](create-bucket-overview.md).

1. Erstellen Sie einen Standardzugriffspunkt und hängen Sie ihn an Ihren Bucket an. In diesem Beispiel verwenden wir *`example-ap`*. Informationen zum Erstellen von Standardzugriffspunkten finden Sie unter [Erstellen eines Zugriffspunkts](creating-access-points.md).

1. Führen Sie eine der folgenden Aktionen aus: 
   + Erstellen Sie in Ihrem Konto eine Lambda-Funktion, mit der Sie Ihr Amazon-S3-Objekt transformieren möchten. Weitere Informationen zum Erstellen von Lambda-Funktionen finden Sie unter [Schreiben von Lambda-Funktionen für S3 Object Lambda Access Points](olap-writing-lambda.md). Informationen zur Verwendung Ihrer benutzerdefinierten Funktion mit dem AWS CLI finden Sie unter [Verwenden von Lambda mit dem AWS CLI](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-awscli.html) im *AWS Lambda Entwicklerhandbuch*.
   + Verwenden Sie eine AWS vorgefertigte Lambda-Funktion. Weitere Hinweise zu vorgefertigten Funktionen finden Sie unter [Verwenden von AWS integrierten Lambda-Funktionen](olap-examples.md).

1. Erstellen einer JSON-Konfigurationsdate namens `my-olap-configuration.json`. Geben Sie in dieser Konfiguration den unterstützenden Zugriffspunkt und den Amazon-Ressourcennamen (ARN) für die Lambda-Funktion an, die Sie in den vorherigen Schritten erstellt haben, oder den ARN für die vorkonfigurierte Funktion, die Sie verwenden.  
**Example**  

   

   ```
   {
       "SupportingAccessPoint" : "arn:aws:s3:us-east-1:111122223333:accesspoint/example-ap",
       "TransformationConfigurations": [{
           "Actions" : ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"],
           "ContentTransformation" : {
               "AwsLambda": {
                   "FunctionPayload" : "{\"compressionType\":\"gzip\"}",
                   "FunctionArn" : "arn:aws:lambda:us-east-1:111122223333:function/compress"
               }
           }
       }]
   }
   ```

1. Führen Sie den Befehl `create-access-point-for-object-lambda` aus, um den Object Lambda Access Point zu erstellen.

   ```
   aws s3control create-access-point-for-object-lambda --account-id 111122223333 --name my-object-lambda-ap --configuration file://my-olap-configuration.json
   ```

1. (Optional) Erstellen Sie eine JSON-Richtliniendatei namens `my-olap-policy.json`.

   Durch Hinzufügen einer Ressourcenrichtlinie für Objekt-Lambda-Zugriffspunkte lässt sich die Verwendung des Zugriffspunkts nach Ressource, Benutzer oder anderen Bedingungen steuern. Diese Ressourcenrichtlinie gewährt dem angegebenen Object Lambda Access Point die `GetObject`-Berechtigung für das Konto *`444455556666`*.  
**Example**  

   

   ```
   {
       "Version": "2008-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Grant account 444455556666 GetObject access",
               "Effect": "Allow",
               "Action": "s3-object-lambda:GetObject",
               "Principal": {
                   "AWS": "arn:aws:iam::444455556666:root"
               },
               "Resource": "your-object-lambda-access-point-arn"
           }
       ]
   }
   ```

1. (Optional) Führen Sie den Befehl `put-access-point-policy-for-object-lambda` aus, um Ihre Ressourcenrichtlinie festzulegen.

   ```
   aws s3control put-access-point-policy-for-object-lambda --account-id 111122223333 --name my-object-lambda-ap --policy file://my-olap-policy.json
   ```

1. (Optional) Geben Sie eine Nutzlast an.

   Eine Payload ist optionales JSON, das Sie Ihrer AWS Lambda Funktion als Eingabe zur Verfügung stellen können. Sie können Nutzlasten mit verschiedenen Parametern für verschiedene Object Lambda Access Points konfigurieren, die dieselbe Lambda-Funktion aufrufen, wodurch die Flexibilität Ihrer Lambda-Funktion erhöht wird.

   Die folgende Konfiguration des Object Lambda Access Point zeigt eine Nutzlast mit zwei Parametern.

   ```
   {
   	"SupportingAccessPoint": "AccessPointArn",
   	"CloudWatchMetricsEnabled": false,
   	"TransformationConfigurations": [{
   		"Actions": ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"],
   		"ContentTransformation": {
   			"AwsLambda": {
   				"FunctionArn": "FunctionArn",
   				"FunctionPayload": "{\"res-x\": \"100\",\"res-y\": \"100\"}"
   			}
   		}
   	}]
   }
   ```

   Die folgende Konfiguration des Object Lambda Access Point zeigt eine Nutzlast mit einem Parameter und den aktivierten Einstellungen `GetObject-Range`, `GetObject-PartNumber`, `HeadObject-Range` und `HeadObject-PartNumber`.

   ```
   {
       "SupportingAccessPoint":"AccessPointArn",
       "CloudWatchMetricsEnabled": false,
       "AllowedFeatures": ["GetObject-Range", "GetObject-PartNumber", "HeadObject-Range", "HeadObject-PartNumber"],        
       "TransformationConfigurations": [{
           "Action": ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"],
           "ContentTransformation": {
               "AwsLambda": {
                   "FunctionArn":"FunctionArn",
                   "FunctionPayload": "{\"compression-amount\": \"5\"}"
               }
           }
       }]
   }
   ```
**Wichtig**  
Wenn Sie Object Lambda Access Points verwenden, stellen Sie sicher, dass die Nutzlast keine vertraulichen Informationen enthält.

### Verwenden der AWS CloudFormation Konsole und der Vorlage
<a name="olap-create-cfn-console"></a>

Sie können einen Object Lambda Access Point mithilfe der von Amazon S3 bereitgestellten Standardkonfiguration erstellen. Sie können eine AWS CloudFormation Vorlage und den Quellcode einer Lambda-Funktion aus dem [GitHub Repository](https://github.com/aws-samples/amazon-s3-object-lambda-default-configuration) herunterladen und diese Ressourcen bereitstellen, um einen funktionierenden Object Lambda Access Point einzurichten.

Informationen zum Ändern der Standardkonfiguration der AWS CloudFormation Vorlage finden Sie unter. [Automatisieren Sie die Einrichtung von S3 Object Lambda mit einer Vorlage CloudFormation](olap-using-cfn-template.md)

Informationen zur Konfiguration von Object Lambda Access Points CloudFormation ohne Vorlage finden Sie [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspoint.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspoint.html)im *AWS CloudFormation Benutzerhandbuch*.

**So laden Sie das Bereitstellungspaket für die Lambda-Funktion hoch**

1. Laden Sie das AWS Lambda Funktionsbereitstellungspaket `s3objectlambda_deployment_package.zip` in der [Standardkonfiguration von S3 Object Lambda](https://github.com/aws-samples/amazon-s3-object-lambda-default-configuration) herunter.

1. Hochladen des Pakets in einen Amazon S3 Bucket

**So erstellen Sie einen Object Lambda Access Point mithilfe der Konsole AWS CloudFormation**

1. Laden Sie die AWS CloudFormation Vorlage `s3objectlambda_defaultconfig.yaml` in der [Standardkonfiguration von S3 Object Lambda](https://github.com/aws-samples/amazon-s3-object-lambda-default-configuration) herunter.

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die AWS CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Führen Sie eine der folgenden Aktionen aus: 
   + Wenn Sie es noch nie AWS CloudFormation zuvor verwendet haben, wählen Sie auf der AWS CloudFormation Startseite die Option Stack **erstellen** aus.
   + Wenn Sie es schon AWS CloudFormation einmal verwendet haben, wählen Sie im linken Navigationsbereich **Stacks** aus. Wählen Sie **Create stack** (Stack erstellen) und dann **With new resources (standard)** (Mit neuen Ressourcen (Standard)) aus.

1. Wählen Sie für **Voraussetzung - Vorlage vorbereiten** die Option **Vorlage ist bereit** aus.

1. Wählen Sie unter **Specify template** (Vorlage angeben) die Option **Upload a template file** (Vorlagendatei hochladen) aus und laden Sie `s3objectlambda_defaultconfig.yaml` hoch.

1. Wählen Sie **Weiter** aus.

1. Geben Sie auf der Seite **Stack-Details angeben** einen Namen für den Stack ein.

1. Geben Sie im Abschnitt **Parameters** (Parameter) die folgenden Parameter an, die in der Stack-Vorlage definiert sind:

   1. Führen Sie für **CreateNewSupportingAccessPoint** einen der folgenden Schritte aus: 
      + Wenn Sie bereits einen unterstützenden Zugriffspunkt für den S3-Bucket haben, in den Sie die Vorlage hochgeladen haben, wählen Sie **false** (falsch) aus.
      + Wenn Sie einen neuen Zugriffspunkt für diesen Bucket erstellen möchten, wählen Sie **true** (wahr) aus. 

   1. Wählen Sie für **EnableCloudWatchMonitoring****wahr** oder **falsch**, je nachdem, ob Sie CloudWatch Amazon-Anforderungsmetriken und Alarme aktivieren möchten. 

   1. (Optional) Fügen Sie JSON-Text hinzu, den Sie Ihrer Lambda-Funktion als Eingabe zur Verfügung stellen möchten. **LambdaFunctionPayload** Sie können Nutzlasten mit verschiedenen Parametern für verschiedene Object Lambda Access Points konfigurieren, die dieselbe Lambda-Funktion aufrufen, wodurch die Flexibilität Ihrer Lambda-Funktion erhöht wird.
**Wichtig**  
Wenn Sie Object Lambda Access Points verwenden, stellen Sie sicher, dass die Nutzlast keine vertraulichen Informationen enthält.

   1. Geben Sie für **LambdaFunctionRuntime**Ihre bevorzugte Laufzeit für die Lambda-Funktion ein. Die verfügbaren Auswahlmöglichkeiten sind `nodejs14.x`, `python3.9`, `java11`.

   1. Geben Sie für **LambdaFunctionS3 BucketName** den Amazon S3 S3-Bucket-Namen ein, in den Sie das Bereitstellungspaket hochgeladen haben.

   1. Geben Sie für **LambdaFunctionS3Key** den Amazon S3 S3-Objektschlüssel ein, in den Sie das Bereitstellungspaket hochgeladen haben.

   1. Geben Sie für **LambdaFunctionS3** die Amazon S3 S3-Objektversion einObjectVersion, in die Sie das Bereitstellungspaket hochgeladen haben.

   1. Geben Sie für **ObjectLambdaAccessPointName**einen Namen für Ihren Object Lambda Access Point ein.

   1. Geben Sie für **S3 BucketName** den Amazon S3 S3-Bucket-Namen ein, der Ihrem Object Lambda Access Point zugeordnet wird.

   1. Geben Sie für **SupportingAccessPointName**den Namen Ihres unterstützenden Access Points ein.
**Anmerkung**  
Dies ist ein Zugriffspunkt, der mit dem Amazon-S3-Bucket verknüpft ist, den Sie im vorherigen Schritt ausgewählt haben. Wenn Ihrem Amazon S3 S3-Bucket keine Access Points zugeordnet sind, können Sie die Vorlage so konfigurieren, dass sie einen für Sie erstellt, indem Sie **true** for wählen **CreateNewSupportingAccessPoint**.

1. Wählen Sie **Weiter** aus.

1. Wählen Sie auf der Seite **Configure stack options** (Stack-Optionen konfigurieren) **Next** (Weiter) aus.

   Weitere Informationen zu den optionalen Einstellungen auf dieser Seite finden Sie unter [Einstellen von AWS CloudFormation -Stack-Optionen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-add-tags.html) im *AWS CloudFormation -Benutzerhandbuch*.

1. Wählen Sie auf der Seite **Prüfen** **Stack erstellen** aus.

### Mit dem AWS Cloud Development Kit (AWS CDK)
<a name="olap-create-cdk"></a>

Weitere Informationen zur Konfiguration von Object Lambda Access Points mithilfe von finden Sie unter [`AWS::S3ObjectLambda`Construct Library](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-s3objectlambda-readme.html) in der *AWS Cloud Development Kit (AWS CDK) API-Referenz. AWS CDK*

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

# Verwenden von Amazon S3 Objekt-Lambda-Zugriffspunkten
<a name="olap-use"></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 Anforderungen über Amazon S3 Object Lambda Access Points ebenso vornehmen wie über andere Zugriffspunkte. Weitere Informationen darüber, wie Sie Anforderungen über einen Zugriffspunkt vornehmen können, finden Sie unter [Verwenden von Amazon-S3-Zugangspunkten für Allzweck-Buckets](using-access-points.md). Sie können Anfragen über Object Lambda Access Points stellen, indem Sie die Amazon S3 S3-Konsole AWS Command Line Interface (AWS CLI) oder die Amazon S3 S3-REST-API verwenden. AWS SDKs

**Wichtig**  
Die Amazon-Ressourcennamen (ARNs) für Object Lambda Access Points verwenden den `s3-object-lambda` Servicenamen. Somit ARNs beginnt Object Lambda Access Point mit dem`arn:aws::s3-object-lambda`, was mit anderen Access Points verwendet wird`arn:aws::s3`, und nicht mit dem, was mit anderen Access Points verwendet wird.

## So finden Sie den ARN für Ihren Object Lambda Access Point
<a name="olap-find-arn"></a>

Um einen Object Lambda Access Point mit dem AWS CLI oder zu verwenden AWS SDKs, müssen Sie den Amazon-Ressourcennamen (ARN) des Object Lambda Access Points kennen. Die folgenden Beispiele zeigen, wie Sie den ARN für einen Object Lambda Access Point mithilfe der Amazon-S3-Konsole oder der AWS CLI finden. 

### Verwenden der S3-Konsole
<a name="olap-use-arn-console"></a>

**So finden Sie den ARN für Ihren Object Lambda Access Point mithilfe der Konsole**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Objekt-Lambda-Zugriffspunkte** aus.

1. Wählen Sie das Optionsfeld neben dem Object Lambda Access Point aus, dessen ARN Sie kopieren möchten.

1. Klicken Sie auf **Copy ARN** (ARN kopieren).

### Verwenden Sie den AWS CLI
<a name="olap-use-arn-cli"></a>

**Um den ARN für Ihren Object Lambda Access Point zu finden, verwenden Sie den AWS CLI**

1. Führen Sie den folgenden Befehl aus, um eine Liste der Object Lambda Access Points abzurufen, die mit Ihrem AWS-Konto verbunden sind. Bevor Sie den Befehl ausführen, ersetzen Sie die Konto-ID *`111122223333`* durch Ihre AWS-Konto ID.

   ```
   aws s3control list-access-points-for-object-lambda --account-id 111122223333
   ```

1. Überprüfen Sie die Befehlsausgabe, um den ARN des Object Lambda Access Point zu finden, den Sie verwenden möchten. Die Ausgabe des vorherigen Befehls sollte dem folgenden Beispiel gleichen.

   ```
   {
       "ObjectLambdaAccessPointList": [
           {
               "Name": "my-object-lambda-ap",
               "ObjectLambdaAccessPointArn": "arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/my-object-lambda-ap"
           },
           ...
       ]
   }
   ```

## So verwenden Sie einen Alias im Bucket-Stil für den Object Lambda Access Point Ihres S3-Buckets
<a name="ol-access-points-alias"></a>

Wenn Sie einen Object Lambda Access Point erstellen, generiert Amazon S3 automatisch einen eindeutigen Alias für den Object Lambda Access Point. Sie können diesen Alias anstelle eines Amazon-S3-Bucket-Namens oder des Amazon-Ressourcennamens (ARN) des Object Lambda Access Point in einer Anforderung für Zugriffspunkt-Operationen auf Datenebene verwenden. Eine Liste dieser Vorgänge finden Sie unter [Kompatibilität von Zugangspunkten](access-points-service-api-support.md).

Ein Aliasname eines Object Lambda Access Point wird innerhalb desselben Namespace wie ein Amazon-S3-Bucket erstellt. Dieser Aliasname wird automatisch generiert und kann nicht geändert werden. Für einen vorhandenen Object Lambda Access Point wird automatisch ein Alias zur Verwendung zugewiesen. Ein Aliasname eines Object Lambda Access Point erfüllt alle Anforderungen eines gültigen Amazon-S3-Bucket-Namens und besteht aus den folgenden Teilen:

`Object Lambda Access Point name prefix-metadata--ol-s3`

**Anmerkung**  
Das Suffix `--ol-s3` ist für Aliasnamen von Object Lambda Access Points reserviert und kann nicht für die Bucket-Namen oder die Namen von Object Lambda Access Points verwendet werden. Weitere Informationen zu Amazon-S3-Bucket-Benennungsregeln finden Sie unter [Benennungsregeln für Allzweck-Buckets](bucketnamingrules.md).

Das folgende Beispiel zeigt den ARN und den Alias für einen Object Lambda Access Point namens `my-object-lambda-access-point`:
+ **ARN** – `arn:aws:s3-object-lambda:region:account-id:accesspoint/my-object-lambda-access-point`
+ **Alias des Object Lambda Access Point** – `my-object-lambda-acc-1a4n8yjrb3kda96f67zwrwiiuse1a--ol-s3`

Wenn Sie einen Object Lambda Access Point verwenden, können Sie den Aliasnamen des Object Lambda Access Point verwenden, ohne dass umfangreiche Codeänderungen erforderlich sind.

Wenn Sie einen Object Lambda Access Point löschen, wird der Aliasname des Object Lambda Access Point inaktiv und die Bereitstellung wird aufgehoben.

### So finden Sie den Alias für Ihren Object Lambda Access Point
<a name="olap-find-alias"></a>

#### Verwenden der S3-Konsole
<a name="olap-use-alias-console"></a>

**So finden Sie den Alias für Ihren Object Lambda Access Point mithilfe der Konsole**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Objekt-Lambda-Zugriffspunkte** aus.

1. Kopieren Sie den Wert unter **Alias des Objekt-Lambda-Zugriffspunkts** für den Object Lambda Access Point, den Sie verwenden möchten.

#### Verwenden Sie den AWS CLI
<a name="olap-use-alias-cli"></a>

Wenn Sie einen Object Lambda Access Point erstellen, generiert Amazon S3 automatisch einen Aliasnamen für den Object Lambda Access Point wie im folgenden Beispielbefehl gezeigt. Zum Ausführen dieses Befehls ersetzen Sie `user input placeholders` durch Ihre Informationen. Informationen zum Erstellen eines Object Lambda Access Points mithilfe von finden Sie AWS CLI unter[So erstellen Sie einen Object Lambda Access Point mit dem AWS CLI](olap-create.md#olap-create-cli-specific).

```
aws s3control create-access-point-for-object-lambda --account-id 111122223333 --name my-object-lambda-access-point --configuration file://my-olap-configuration.json
{
    "ObjectLambdaAccessPointArn": "arn:aws:s3:region:111122223333:accesspoint/my-access-point",
    "Alias": {
        "Value": "my-object-lambda-acc-1a4n8yjrb3kda96f67zwrwiiuse1a--ol-s3",
        "Status": "READY"
    }
}
```

Der generierte Aliasname des Object Lambda Access Point besteht aus zwei Feldern: 
+ Das Feld `Value` ist der Aliaswert des Object Lambda Access Point. 
+ Das Feld `Status` ist der Status des Alias des Object Lambda Access Point. Wenn der Status `PROVISIONING` lautet, stellt Amazon S3 den Alias des Object Lambda Access Point bereit und der Alias kann noch nicht verwendet werden. Wenn der Status `READY` lautet, wurde der Alias des Object Lambda Access Point erfolgreich bereitgestellt und kann verwendet werden.

Weitere Informationen zum Datentyp `ObjectLambdaAccessPointAlias` in der REST-API finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html) und [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ObjectLambdaAccessPointAlias.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ObjectLambdaAccessPointAlias.html) in der *API-Referenz zu Amazon Simple Storage Service*.

### So verwenden Sie den Alias des Object Lambda Access Point
<a name="use-olap-alias"></a>

Sie können einen Alias eines Object Lambda Access Point anstelle eines Amazon-S3-Bucket-Namens für die unter [Kompatibilität von Zugangspunkten](access-points-service-api-support.md) aufgeführten Operationen verwenden.

Im folgenden AWS CLI Beispiel für den `get-bucket-location` Befehl wird der Access Point-Alias des Buckets verwendet, um zurückzugeben AWS-Region , in dem sich der Bucket befindet. Zum Ausführen dieses Befehls ersetzen Sie `user input placeholders` durch Ihre Informationen.

```
aws s3api get-bucket-location --bucket my-object-lambda-acc-w7i37nq6xuzgax3jw3oqtifiusw2a--ol-s3
            
{
    "LocationConstraint": "us-west-2"
}
```

Wenn der Alias des Object Lambda Access Point in einer Anforderung nicht gültig ist, wird der Fehlercode `InvalidAccessPointAliasError` zurückgegeben. Weitere Informationen zu `InvalidAccessPointAliasError` finden Sie unter [Liste der Fehlercodes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) in der *API-Referenz zu Amazon Simple Storage Service*.

Die Einschränkungen eines Alias eines Object Lambda Access Point sind die gleichen wie bei einem Zugriffspunkt-Alias. Weitere Informationen zu den Einschränkungen eines Zugriffspunkt-Alias finden Sie unter [Einschränkungen für Zugangspunkt-Alias](access-points-naming.md#use-ap-alias-limitations).

# Sicherheitsüberlegungen für S3 Object Lambda-Zugriffspunkte
<a name="olap-security"></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).

Mit Amazon S3 Object Lambda können Sie benutzerdefinierte Transformationen an Daten durchführen, wenn diese Amazon S3 verlassen, indem Sie den Umfang und die Flexibilität von AWS Lambda als Rechenplattform nutzen. S3 und Lambda bleiben standardmäßig sicher, aber besondere Rücksicht vom Lambda-Funktionsautor ist erforderlich, um diese Sicherheit zu gewährleisten. S3 Object Lambda verlangt, dass der gesamte Zugriff von authentifizierten Prinzipalen (kein anonymer Zugriff) und über HTTPS erfolgt.

Es wird Folgendes empfohlen, um Sicherheitsrisiken zu minimieren: 
+ Beschränken Sie die Lambda-Ausführungsrolle auf den geringsten Satz von Berechtigungen.
+ Stellen Sie nach Möglichkeit sicher, dass Ihre Lambda-Funktion über die bereitgestellte vorsignierte URL auf Amazon S3 zugreift. 

## Konfigurieren von IAM-Richtlinien
<a name="olap-iam-policies"></a>

S3 Access Points unterstützen Ressourcenrichtlinien AWS Identity and Access Management (IAM), mit denen Sie die Nutzung des Access Points nach Ressourcen, Benutzern oder anderen Bedingungen steuern können. Weitere Informationen finden Sie unter [Konfigurieren von IAM-Richtlinien für Object Lambda Access Points](olap-policies.md).

## Verhalten der Verschlüsselung
<a name="olap-encryption"></a>

Da Object Lambda Access Points sowohl Amazon S3 als auch verwenden AWS Lambda, gibt es Unterschiede im Verschlüsselungsverhalten. Weitere Informationen zum standardmäßigen S3-Verschlüsselungsverhalten finden Sie unter [Einstellen des Verhaltens der serverseitigen Verschlüsselung für Amazon S3-Buckets](bucket-encryption.md).
+ Wenn Sie die serverseitige Verschlüsselung in S3 mit Object Lambda Access Points verwenden, wird das Objekt entschlüsselt, bevor es an Lambda gesendet wird. Nachdem das Objekt an Lambda gesendet wurde, wird es unverschlüsselt verarbeitet (im Fall einer `GET`- oder `HEAD`-Anforderung).
+ Um zu verhindern, dass der Verschlüsselungsschlüssel protokolliert wird, lehnt S3 `GET`- und `HEAD`-Anforderungen für Objekte ab, die mit vom Kunden bereitgestellte Schlüssel über serverseitige Verschlüsselung (SSE-C) verschlüsselt wurden. Die Lambda-Funktion kann diese Objekte jedoch weiterhin abrufen, sofern sie Zugriff auf den vom Client bereitgestellten Schlüssel hat.
+ Wenn Sie die clientseitige Verschlüsselung in S3 mit Object Lambda Access Points verwenden, stellen Sie sicher, dass Lambda Zugriff auf den Verschlüsselungsschlüssel hat, damit es das Objekt entschlüsseln und erneut verschlüsseln kann.

## Sicherheit für Zugriffspunkte
<a name="olap-access-points-security"></a>

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. Wenn Lambda für eine Anforderung aufgerufen wird, generiert S3 eine vorsignierte URL zu Ihrem Objekt in Ihrem Namen über den unterstützenden Zugriffspunkt. Ihre Lambda-Funktion erhält diese URL als Eingabe, wenn die Funktion aufgerufen wird.

Sie können Ihre Lambda-Funktion so einstellen, dass diese vorsignierte URL zum Abrufen des ursprünglichen Objekts verwendet wird, anstatt S3 direkt aufzurufen. Mit diesem Modell können Sie bessere Sicherheitsgrenzen auf Ihre Objekte anwenden. Sie können den direkten Objektzugriff über S3 Buckets oder S3-Zugriffspunkte auf einen begrenzten Satz von IAM-Rollen oder Benutzern beschränken. Dieser Ansatz schützt Ihre Lambda-Funktionen auch davor, dem [Problem des verwirrten Stellvertreters](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) ausgesetzt zu sein, bei dem eine falsch konfigurierte Funktion mit anderen Berechtigungen als Ihr Aufrufer den Zugriff auf Objekte zulassen oder verweigern könnte, wenn dies nicht der Fall ist.

## Öffentlicher Zugriff auf Objekt-Lambda-Zugriffspunkt
<a name="olap-public-access"></a>

S3 Object Lambda erlaubt keinen anonymen oder öffentlichen Zugriff, da Amazon S3 Ihre Identität autorisieren muss, um eine S3-Object-Lambda-Anforderung abzuschließen. Wenn Sie Anforderungen über einen Object Lambda Access Point aufrufen, benötigen Sie die Berechtigung `lambda:InvokeFunction` für die konfigurierte Lambda-Funktion. Entsprechend müssen Sie beim Aufrufen anderer API-Operationen über einen Object Lambda Access Point über die erforderlichen `s3:*`-Berechtigungen verfügen. 

Ohne diese Berechtigungen schlagen Anforderungen zum Aufrufen von Lambda oder Delegieren an S3 als „HTTP 403 Verboten“-Fehler fehl. Jeder Zugriff muss von authentifizierten Prinzipalen erfolgen. Wenn Sie einen öffentlichen Zugang benötigen, können Sie Lambda@Edge als mögliche Alternative verwenden. Weitere Informationen finden Sie unter [Customizing at the Edge with Lambda @Edge](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html) im *Amazon CloudFront Developer Guide*.

## IP-Adressen von Object Lambda Access Points
<a name="olap-ips"></a>

Die `describe-managed-prefix-lists`-Subnetze unterstützen Gateway-Endpunkte der Virtual Private Cloud (VPC) und beziehen sich auf die Routingtabelle der VPC-Endpunkte. Da der Object-Lambda-Zugangspunkt keine Gateway-VPC unterstützt, fehlen dessen IP-Bereiche. Die fehlenden Bereiche gehören zu Amazon S3, werden jedoch von Gateway-VPC-Endpunkten nicht unterstützt. Weitere Informationen zu `describe-managed-prefix-lists` finden Sie [DescribeManagedPrefixLists](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeManagedPrefixLists.html)in der *Amazon EC2 API-Referenz* und [AWS IP-Adressbereiche](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html) in der *Allgemeine AWS-Referenz*.

# Konfigurieren von IAM-Richtlinien für Object Lambda Access Points
<a name="olap-policies"></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).

Amazon S3 Access Points unterstützen Ressourcenrichtlinien AWS Identity and Access Management (IAM), mit denen Sie die Nutzung des Access Points nach Ressourcen, Benutzern oder anderen Bedingungen steuern können. Sie können den Zugriff über eine optionale Ressourcenrichtlinie auf Ihrem Object Lambda Access Point oder eine Ressourcenrichtlinie für unterstützende Zugriffspunkte steuern. step-by-stepBeispiele finden Sie unter [Tutorial: Transformieren von Daten für Ihre Anwendung mit S3 Object Lambda](tutorial-s3-object-lambda-uppercase.md) und[Tutorial: Erkennen und Redigieren von PII-Daten mit S3 Object Lambda und Amazon Comprehend](tutorial-s3-object-lambda-redact-pii.md). 

Die vier folgenden Ressourcen müssen über Berechtigungen verfügen, um mit Object Lambda Access Points zu arbeiten:
+ Die IAM-Identität, z. B. Benutzer oder Rolle. Weitere Informationen zu unterschiedlichen IAM-Identitäten und bewährten Methoden finden Sie unter [IAM-Identitäten (Benutzer, Benutzergruppen und Rollen)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) im *IAM-Benutzerhandbuch*.
+ Der Standard-Access Point, der mit einer zugrunde liegenden Datenquelle wie einem S3-Bucket oder einem Amazon FSx for OpenZFS-Volume verbunden ist. Wenn Sie mit Object Lambda Access Point arbeiten, wird dieser Standardzugriffspunkt als *unterstützender Zugriffspunkt* bezeichnet.
+ Der Object Lambda Access Point.
+ Die AWS Lambda Funktion.

**Wichtig**  
Bevor Sie Ihre Richtlinie speichern, stellen Sie sicher, dass Sie Sicherheitswarnungen, Fehler, allgemeine Warnungen und Vorschläge von behoben haben AWS Identity and Access Management Access Analyzer. IAM Access Analyzer führt Richtlinienprüfungen durch, um Ihre Richtlinie anhand der [IAM-Richtliniengrammatik](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) und der [bewährten Methoden](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) zu validieren. Diese Prüfungen generieren Ergebnisse und bieten umsetzbare Empfehlungen, die Sie beim Erstellen von Richtlinien unterstützen, die funktionsfähig sind und den bewährten Methoden für Sicherheit entsprechen.   
Weitere Informationen zum Validieren von Richtlinien mit IAM Access Analyzer finden Sie unter [Validierung der IAM-Access-Analyzer-Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) im *IAM-Benutzerhandbuch*. Eine Liste der Warnungen, Fehler und Vorschläge, die von IAM Access Analyzer zurückgegeben werden, finden Sie unter [IAM-Access-Analyzer-Richtlinienprüfungsreferenz](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html).

In den nachstehenden Richtlinienbeispielen wird davon ausgegangen, dass Sie die folgenden Ressourcen haben:
+ Ein Amazon-S3-Bucket mit folgendem Amazon-Ressourcennamen (ARN): 

  `arn:aws:s3:::amzn-s3-demo-bucket1`
+ Ein Amazon-S3-Standard-Zugriffspunkt für diesen Bucket mit dem folgenden ARN: 

  `arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point`
+ Object Lambda Access Point mit dem folgenden ARN: 

  `arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/my-object-lambda-ap`
+ Eine AWS Lambda Funktion mit dem folgenden ARN: 

  `arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction`

**Anmerkung**  
Wenn Sie eine Lambda-Funktion aus Ihrem Konto verwenden, müssen Sie die spezifische Funktionsversion in Ihre Richtlinienanweisung einfügen. Im folgenden Beispiel-ARN ist die Version durch *1* angegeben:  
`arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction:1`  
Lambda unterstützt das Hinzufügen von IAM-Richtlinien zur Version `$LATEST` nicht. Weitere Informationen zu Lambda-Funktionsversionen finden Sie unter [Lambda-Funktionsversionen](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html) im *AWS Lambda -Entwicklerhandbuch*.

**Example – Bucket-Richtlinie zum Delegieren der Zugriffskontrolle an Standardzugriffspunkte**  
Das folgende Beispiel für eine S3-Bucket-Richtlinie delegiert die Zugriffskontrolle für einen Bucket an die Standardzugriffspunkte des Buckets. Diese Richtlinie ermöglicht Vollzugriff auf alle Zugriffspunkte, die dem Konto des Bucket-Eigentümers gehören. Somit wird der gesamte Zugriff auf diesen Bucket durch die an seine Zugriffspunkte angehängten Richtlinien gesteuert. Benutzer können nur über einen Zugriffspunkt aus dem Bucket lesen, was bedeutet, dass Operationen nur über Zugriffspunkte aufgerufen werden können. Weitere Informationen finden Sie unter [Delegieren der Zugangskontrolle an Zugriffspunkte](access-points-policies.md#access-points-delegating-control).     
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement" : [
    {
        "Effect": "Allow",
        "Principal" : { "AWS":"account-ARN"},
        "Action" : "*",
        "Resource" : [
            "arn:aws:s3:::amzn-s3-demo-bucket", 
            "arn:aws:s3:::amzn-s3-demo-bucket/*"
        ],
        "Condition": {
            "StringEquals" : { "s3:DataAccessPointAccount" : "Bucket owner's account ID" }
        }
    }]
}
```

**Example – IAM-Richtlinie, die einem Benutzer die erforderlichen Berechtigungen zur Verwendung eines Object Lambda Access Point gewährt**  
Die folgende IAM-Richtlinie erteilt einem Benutzer Berechtigungen für die Lambda-Funktion, den Standardzugriffspunkt und den Object Lambda Access Point.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowLambdaInvocation",
      "Action": [
        "lambda:InvokeFunction"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction:1",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:CalledVia": [
            "s3-object-lambda.amazonaws.com"
          ]
        }
      }
    },
    {
      "Sid": "AllowStandardAccessPointAccess",
      "Action": [
        "s3:Get*",
        "s3:List*"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point/*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:CalledVia": [
            "s3-object-lambda.amazonaws.com"
          ]
        }
      }
    },
    {
      "Sid": "AllowObjectLambdaAccess",
      "Action": [
        "s3-object-lambda:Get*",
        "s3-object-lambda:List*"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/my-object-lambda-ap"
    }
  ]
}
```

## Aktivieren von Berechtigungen für Lambda-Ausführungsrollen
<a name="olap-execution-role"></a>

Wenn `GET`-Anforderungen an einen Object Lambda Access Point ausgeführt werden, benötigt Ihre Lambda-Funktion die Berechtigung, Daten an S3 Object Lambda Access Point zu senden. Diese Berechtigung wird durch Aktivieren der `s3-object-lambda:WriteGetObjectResponse`-Berechtigung für die Ausführungsrolle Ihrer Lambda-Funktion bereitgestellt. Sie können eine neue Ausführungsrolle erstellen oder eine vorhandene Rolle aktualisieren.

**Anmerkung**  
Ihre Funktion benötigt die `s3-object-lambda:WriteGetObjectResponse`-Berechtigung nur, wenn Sie eine `GET`-Anforderung stellen.

**So erstellen Sie eine Ausführungsrolle in der IAM-Konsole**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im linken Navigationsbereich **Roles** aus. 

1. Wählen Sie **Rolle erstellen** aus.

1. Wählen Sie unter **Häufige Anwendungsfälle** die Option **Lambda** aus.

1. Wählen Sie **Weiter** aus.

1. Suchen Sie auf der Seite „**Berechtigungen hinzufügen**“ nach der AWS verwalteten Richtlinie [https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy$serviceLevelSummary](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy$serviceLevelSummary)und aktivieren Sie dann das Kontrollkästchen neben dem Richtliniennamen. 

   Diese Richtlinie sollte die Aktion `s3-object-lambda:WriteGetObjectResponse` enthalten.

1. Wählen Sie **Weiter** aus.

1. Geben Sie auf der Seite **Name, review, and create** (Name, prüfen und erstellen) für **Role name** (Rollenname) **s3-object-lambda-role** ein.

1. (Optional) Fügen Sie eine Beschreibung und Tags für diese Rolle hinzu. 

1. Wählen Sie **Rolle erstellen** aus.

1. Wenden Sie die neu erstellte **s3-object-lambda-role** als Ausführungsrolle Ihrer Lambda-Funktion. Dies kann während oder nach der Erstellung der Lambda-Funktion in der Lambda-Konsole erfolgen.

Weitere Informationen zu Ausführungsrollen finden Sie unter [Lambda-Ausführungsrolle](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) im *Entwicklerhandbuch für AWS Lambda *.

## Verwenden von Kontextschlüsseln mit Object Lambda Access Points
<a name="olap-keys"></a>

S3 Object Lambda wertet Kontextschlüssel wie `s3-object-lambda:TlsVersion` oder `s3-object-lambda:AuthType` im Zusammenhang mit der Verbindung oder dem Signieren der Anfrage aus. Alle anderen Kontextschlüssel, wie z. B. `s3:prefix`, werden von Amazon S3 ausgewertet. 

## Unterstützung von CORS in Object Lambda Access Point
<a name="olap-cors"></a>

Wenn S3 Object Lambda eine Anforderung von einem Browser empfängt oder die Anforderung einen `Origin`-Header enthält, fügt S3 Object Lambda immer das Header-Feld `"AllowedOrigins":"*"` hinzu.

Weitere Informationen finden Sie unter [Cross-Origin Resource Sharing (CORS) verwenden](cors.md).

# Schreiben von Lambda-Funktionen für S3 Object Lambda Access Points
<a name="olap-writing-lambda"></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).

In diesem Abschnitt wird beschrieben, wie AWS Lambda Funktionen für die Verwendung mit Amazon S3 Object Lambda Access Points geschrieben werden.

Informationen zu den vollständigen end-to-end Verfahren für einige S3 Object Lambda-Aufgaben finden Sie im Folgenden:
+ [Tutorial: Transformieren von Daten für Ihre Anwendung mit S3 Object Lambda](tutorial-s3-object-lambda-uppercase.md)
+ [Tutorial: Erkennen und Redigieren von PII-Daten mit S3 Object Lambda und Amazon Comprehend](tutorial-s3-object-lambda-redact-pii.md)
+ [Tutorial: Verwenden von S3 Object Lambda, um Bilder beim Abrufen dynamisch mit Wasserzeichen zu versehen](https://aws.amazon.com/getting-started/hands-on/amazon-s3-object-lambda-to-dynamically-watermark-images/?ref=docs_gateway/amazons3/olap-writing-lambda.html)

**Topics**
+ [Arbeiten mit `GetObject`-Anforderungen in Lambda](#olap-getobject-response)
+ [Arbeiten mit `HeadObject`-Anforderungen in Lambda](#olap-headobject)
+ [Arbeiten mit `ListObjects`-Anforderungen in Lambda](#olap-listobjects)
+ [Arbeiten mit `ListObjectsV2`-Anforderungen in Lambda](#olap-listobjectsv2)
+ [Format und Verwendung des Ereigniskontexts](olap-event-context.md)
+ [Arbeiten mit Range- und partNumber-Headern](range-get-olap.md)

## Arbeiten mit `GetObject`-Anforderungen in Lambda
<a name="olap-getobject-response"></a>

In diesem Abschnitt wird davon ausgegangen, dass Ihr Object Lambda Access Point für den Aufruf der Lambda-Funktion für `GetObject` konfiguriert ist. S3 Objekt Lambda enthält die Amazon-S3-API-Operation `WriteGetObjectResponse`, mit der die Lambda-Funktion dem `GetObject`-Aufrufer benutzerdefinierte Daten und Antwort-Header bereitstellen kann. 

`WriteGetObjectResponse` bietet Ihnen eine umfassende Kontrolle über den Statuscode, die Antwort-Header und den Antworttext, basierend auf Ihren Verarbeitungsanforderungen. Sie können `WriteGetObjectResponse` verwenden, um mit dem gesamten transformierten Objekt, Teilen des transformierten Objekts oder anderen Antworten basierend auf dem Kontext Ihrer Anwendung zu antworten. Der folgende Abschnitt zeigt eindeutige Beispiele für die Verwendung des `WriteGetObjectResponse`-API-Vorgangs.
+ **Beispiel 1:** Mit einem HTTP-Statuscode 403 (Forbidden) antworten 
+ **Beispiel 2:** Reagieren Sie mit einem transformierten Bild
+ **Beispiel 3:** Komprimierte Inhalte streamen

**Beispiel 1: Mit einem HTTP-Statuscode 403 (Forbidden) antworten **

Sie können `WriteGetObjectResponse` verwenden, um basierend auf dem Inhalt des Objekts mit dem HTTP-Statuscode 403 (Forbidden) zu antworten.

------
#### [ Java ]



```
package com.amazon.s3.objectlambda;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.events.S3ObjectLambdaEvent;
import software.amazon.awssdk.core.sync.RequestBody;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.WriteGetObjectResponseRequest;

import java.io.ByteArrayInputStream;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Example1 {

    public void handleRequest(S3ObjectLambdaEvent event, Context context) throws Exception {
        S3Client s3Client = S3Client.builder().build();

        // Check to see if the request contains all of the necessary information.
        // If it does not, send a 4XX response and a custom error code and message.
        // Otherwise, retrieve the object from S3 and stream it
        // to the client unchanged.
        var tokenIsNotPresent = !event.getUserRequest().getHeaders().containsKey("requiredToken");
        if (tokenIsNotPresent) {
            s3Client.writeGetObjectResponse(WriteGetObjectResponseRequest.builder()
                    .requestRoute(event.outputRoute())
                    .requestToken(event.outputToken())
                    .statusCode(403)
                    .contentLength(0L)
                    .errorCode("MissingRequiredToken")
                    .errorMessage("The required token was not present in the request.")
                    .build(),
                    RequestBody.fromInputStream(new ByteArrayInputStream(new byte[0]), 0L));
            return;
        }

        // Prepare the presigned URL for use and make the request to S3.
        HttpClient httpClient = HttpClient.newBuilder().build();
        var presignedResponse = httpClient.send(
                HttpRequest.newBuilder(new URI(event.inputS3Url())).GET().build(),
                HttpResponse.BodyHandlers.ofInputStream());

        // Stream the original bytes back to the caller.
        s3Client.writeGetObjectResponse(WriteGetObjectResponseRequest.builder()
                .requestRoute(event.outputRoute())
                .requestToken(event.outputToken())
                .build(),
                RequestBody.fromInputStream(presignedResponse.body(),
                    presignedResponse.headers().firstValueAsLong("content-length").orElse(-1L)));
    }
}
```

------
#### [ Python ]



```
import boto3
import requests 

def handler(event, context):
    s3 = boto3.client('s3')

    """
    Retrieve the operation context object from the event. This object indicates where the WriteGetObjectResponse request
    should be delivered and contains a presigned URL in 'inputS3Url' where we can download the requested object from.
    The 'userRequest' object has information related to the user who made this 'GetObject' request to 
    S3 Object Lambda.
    """
    get_context = event["getObjectContext"]
    user_request_headers = event["userRequest"]["headers"]

    route = get_context["outputRoute"]
    token = get_context["outputToken"]
    s3_url = get_context["inputS3Url"]

    # Check for the presence of a 'CustomHeader' header and deny or allow based on that header.
    is_token_present = "SuperSecretToken" in user_request_headers

    if is_token_present:
        # If the user presented our custom 'SuperSecretToken' header, we send the requested object back to the user.
        response = requests.get(s3_url)
        s3.write_get_object_response(RequestRoute=route, RequestToken=token, Body=response.content)
    else:
        # If the token is not present, we send an error back to the user. 
        s3.write_get_object_response(RequestRoute=route, RequestToken=token, StatusCode=403,
        ErrorCode="NoSuperSecretTokenFound", ErrorMessage="The request was not secret enough.")

    # Gracefully exit the Lambda function.
    return { 'status_code': 200 }
```

------
#### [ Node.js ]



```
const { S3 } = require('aws-sdk');
const axios = require('axios').default;

exports.handler = async (event) => {
    const s3 = new S3();

    // Retrieve the operation context object from the event. This object indicates where the WriteGetObjectResponse request
    // should be delivered and contains a presigned URL in 'inputS3Url' where we can download the requested object from.
    // The 'userRequest' object has information related to the user who made this 'GetObject' request to S3 Object Lambda.
    const { userRequest, getObjectContext } = event;
    const { outputRoute, outputToken, inputS3Url } = getObjectContext;

    // Check for the presence of a 'CustomHeader' header and deny or allow based on that header.
    const isTokenPresent = Object
        .keys(userRequest.headers)
        .includes("SuperSecretToken");

    if (!isTokenPresent) {
        // If the token is not present, we send an error back to the user. The 'await' in front of the request
        // indicates that we want to wait for this request to finish sending before moving on. 
        await s3.writeGetObjectResponse({
            RequestRoute: outputRoute,
            RequestToken: outputToken,
            StatusCode: 403,
            ErrorCode: "NoSuperSecretTokenFound",
            ErrorMessage: "The request was not secret enough.",
        }).promise();
    } else {
        // If the user presented our custom 'SuperSecretToken' header, we send the requested object back to the user.
        // Again, note the presence of 'await'.
        const presignedResponse = await axios.get(inputS3Url);
        await s3.writeGetObjectResponse({
            RequestRoute: outputRoute,
            RequestToken: outputToken,
            Body: presignedResponse.data,
        }).promise();
    }

    // Gracefully exit the Lambda function.
    return { statusCode: 200 };
}
```

------

**Beispiel 2:** Reagieren Sie mit einem transformierten Bild

Wenn Sie eine Bildtransformation durchführen, stellen Sie möglicherweise fest, dass Sie alle Bytes des Quellobjekts benötigen, bevor Sie mit der Verarbeitung beginnen können. In diesem Fall gibt Ihre `WriteGetObjectResponse`-Anforderung das gesamte Objekt in einem Aufruf an die anfragende Anwendung zurück.

------
#### [ Java ]



```
package com.amazon.s3.objectlambda;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.events.S3ObjectLambdaEvent;
import software.amazon.awssdk.core.sync.RequestBody;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.WriteGetObjectResponseRequest;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.io.ByteArrayOutputStream;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Example2V2 {

    private static final int HEIGHT = 250;
    private static final int WIDTH = 250;

    public void handleRequest(S3ObjectLambdaEvent event, Context context) throws Exception {
        S3Client s3Client = S3Client.builder().build();
        HttpClient httpClient = HttpClient.newBuilder().build();

        // Prepare the presigned URL for use and make the request to S3.
        var presignedResponse = httpClient.send(
                HttpRequest.newBuilder(new URI(event.inputS3Url())).GET().build(),
                HttpResponse.BodyHandlers.ofInputStream());

        // The entire image is loaded into memory here so that we can resize it.
        // Once the resizing is completed, we write the bytes into the body
        // of the WriteGetObjectResponse request.
        var originalImage = ImageIO.read(presignedResponse.body());
        var resizingImage = originalImage.getScaledInstance(WIDTH, HEIGHT, Image.SCALE_DEFAULT);
        var resizedImage = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
        resizedImage.createGraphics().drawImage(resizingImage, 0, 0, WIDTH, HEIGHT, null);

        var baos = new ByteArrayOutputStream();
        ImageIO.write(resizedImage, "png", baos);

        // Stream the bytes back to the caller.
        s3Client.writeGetObjectResponse(WriteGetObjectResponseRequest.builder()
                .requestRoute(event.outputRoute())
                .requestToken(event.outputToken())
                .build(), RequestBody.fromBytes(baos.toByteArray()));
    }
}
```

------
#### [ Python ]



```
import boto3
import requests 
import io
from PIL import Image

def handler(event, context):
    """
    Retrieve the operation context object from the event. This object indicates where the WriteGetObjectResponse request
    should be delivered and has a presigned URL in 'inputS3Url' where we can download the requested object from.
    The 'userRequest' object has information related to the user who made this 'GetObject' request to 
    S3 Object Lambda.
    """
    get_context = event["getObjectContext"]
    route = get_context["outputRoute"]
    token = get_context["outputToken"]
    s3_url = get_context["inputS3Url"]

    """
    In this case, we're resizing .png images that are stored in S3 and are accessible through the presigned URL
    'inputS3Url'.
    """
    image_request = requests.get(s3_url)
    image = Image.open(io.BytesIO(image_request.content))
    image.thumbnail((256,256), Image.ANTIALIAS)

    transformed = io.BytesIO()
    image.save(transformed, "png")

    # Send the resized image back to the client.
    s3 = boto3.client('s3')
    s3.write_get_object_response(Body=transformed.getvalue(), RequestRoute=route, RequestToken=token)

    # Gracefully exit the Lambda function.
    return { 'status_code': 200 }
```

------
#### [ Node.js ]



```
const { S3 } = require('aws-sdk');
const axios = require('axios').default;
const sharp = require('sharp');

exports.handler = async (event) => {
    const s3 = new S3();

    // Retrieve the operation context object from the event. This object indicates where the WriteGetObjectResponse request
    // should be delivered and has a presigned URL in 'inputS3Url' where we can download the requested object from.
    const { getObjectContext } = event;
    const { outputRoute, outputToken, inputS3Url } = getObjectContext;

    // In this case, we're resizing .png images that are stored in S3 and are accessible through the presigned URL
    // 'inputS3Url'.
    const { data } = await axios.get(inputS3Url, { responseType: 'arraybuffer' });

    // Resize the image.
    const resized = await sharp(data)
        .resize({ width: 256, height: 256 })
        .toBuffer();

    // Send the resized image back to the client.
    await s3.writeGetObjectResponse({
        RequestRoute: outputRoute,
        RequestToken: outputToken,
        Body: resized,
    }).promise();

    // Gracefully exit the Lambda function.
    return { statusCode: 200 };
}
```

------

**Beispiel 3:** Komprimierte Inhalte streamen

Beim Komprimieren von Objekten werden komprimierte Daten inkrementell erzeugt. Folglich können Sie Ihre `WriteGetObjectResponse`-Anforderung verwenden, um die komprimierten Daten zurückzugeben, sobald sie bereit sind. Wie in diesem Beispiel gezeigt, ist es nicht notwendig, die Länge der abgeschlossenen Transformation zu kennen.

------
#### [ Java ]



```
package com.amazon.s3.objectlambda;

import com.amazonaws.services.lambda.runtime.events.S3ObjectLambdaEvent;
import com.amazonaws.services.lambda.runtime.Context;
import software.amazon.awssdk.core.sync.RequestBody;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.WriteGetObjectResponseRequest;

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Example3 {

    public void handleRequest(S3ObjectLambdaEvent event, Context context) throws Exception {
        S3Client s3Client = S3Client.builder().build();
        HttpClient httpClient = HttpClient.newBuilder().build();

        // Request the original object from S3.
        var presignedResponse = httpClient.send(
                HttpRequest.newBuilder(new URI(event.inputS3Url())).GET().build(),
                HttpResponse.BodyHandlers.ofInputStream());

        // Consume the incoming response body from the presigned request,
        // apply our transformation on that data, and emit the transformed bytes
        // into the body of the WriteGetObjectResponse request as soon as they're ready.
        // This example compresses the data from S3, but any processing pertinent
        // to your application can be performed here.
        var bodyStream = new GZIPCompressingInputStream(presignedResponse.body());

        // Stream the bytes back to the caller.
        s3Client.writeGetObjectResponse(WriteGetObjectResponseRequest.builder()
                .requestRoute(event.outputRoute())
                .requestToken(event.outputToken())
                .build(),
                RequestBody.fromInputStream(bodyStream,
                    presignedResponse.headers().firstValueAsLong("content-length").orElse(-1L)));
    }
}
```

------
#### [ Python ]



```
import boto3
import requests
import zlib
from botocore.config import Config


"""
A helper class to work with content iterators. Takes an interator and compresses the bytes that come from it. It
implements 'read' and '__iter__' so that the SDK can stream the response. 
"""
class Compress:
    def __init__(self, content_iter):
        self.content = content_iter
        self.compressed_obj = zlib.compressobj()

    def read(self, _size):
        for data in self.__iter__()
            return data

    def __iter__(self):
        while True:
            data = next(self.content)
            chunk = self.compressed_obj.compress(data)
            if not chunk:
                break

            yield chunk

        yield self.compressed_obj.flush()


def handler(event, context):
    """
    Setting the 'payload_signing_enabled' property to False allows us to send a streamed response back to the client.
    in this scenario, a streamed response means that the bytes are not buffered into memory as we're compressing them,
    but instead are sent straight to the user.
    """
    my_config = Config(
        region_name='eu-west-1',
        signature_version='s3v4',
        s3={
            "payload_signing_enabled": False
        }
    )
    s3 = boto3.client('s3', config=my_config)

    """
    Retrieve the operation context object from the event. This object indicates where the WriteGetObjectResponse request
    should be delivered and has a presigned URL in 'inputS3Url' where we can download the requested object from.
    The 'userRequest' object has information related to the user who made this 'GetObject' request to S3 Object Lambda.
    """
    get_context = event["getObjectContext"]
    route = get_context["outputRoute"]
    token = get_context["outputToken"]
    s3_url = get_context["inputS3Url"]

    # Compress the 'get' request stream.
    with requests.get(s3_url, stream=True) as r:
        compressed = Compress(r.iter_content())

        # Send the stream back to the client.
        s3.write_get_object_response(Body=compressed, RequestRoute=route, RequestToken=token, ContentType="text/plain",
                                     ContentEncoding="gzip")

    # Gracefully exit the Lambda function.
    return {'status_code': 200}
```

------
#### [ Node.js ]



```
const { S3 } = require('aws-sdk');
const axios = require('axios').default;
const zlib = require('zlib');

exports.handler = async (event) => {
    const s3 = new S3();

    // Retrieve the operation context object from the event. This object indicates where the WriteGetObjectResponse request
    // should be delivered and has a presigned URL in 'inputS3Url' where we can download the requested object from.
    const { getObjectContext } = event;
    const { outputRoute, outputToken, inputS3Url } = getObjectContext;

    // Download the object from S3 and process it as a stream, because it might be a huge object and we don't want to
    // buffer it in memory. Note the use of 'await' because we want to wait for 'writeGetObjectResponse' to finish 
    // before we can exit the Lambda function. 
    await axios({
        method: 'GET',
        url: inputS3Url,
        responseType: 'stream',
    }).then(
        // Gzip the stream.
        response => response.data.pipe(zlib.createGzip())
    ).then(
        // Finally send the gzip-ed stream back to the client.
        stream => s3.writeGetObjectResponse({
            RequestRoute: outputRoute,
            RequestToken: outputToken,
            Body: stream,
            ContentType: "text/plain",
            ContentEncoding: "gzip",
        }).promise()
    );

    // Gracefully exit the Lambda function.
    return { statusCode: 200 };
}
```

------

**Anmerkung**  
Obwohl S3 Object Lambda ermöglicht, bis zu 60 Sekunden eine vollständige Antwort an den Aufrufer über die `WriteGetObjectResponse`-Anforderung zu senden, ist die tatsächlich verfügbare Zeit möglicherweise geringer. Zum Beispiel kann Ihr Timeout für Lambda-Funktionen weniger als 60 Sekunden betragen. In anderen Fällen kann der Aufrufer strengere Zeitbeschränkungen haben. 

Damit der ursprüngliche Aufrufer eine andere Antwort als einen HTTP-Statuscode 500 (Interner Serverfehler) erhält, muss der `WriteGetObjectResponse`-Aufruf abgeschlossen sein. Wenn die Lambda-Funktion mit einer Ausnahme oder anderweitig Ergebnisse zurückgibt, bevor die API-Operation `WriteGetObjectResponse` aufgerufen wird, erhält der ursprüngliche Aufrufer eine 500-Antwort (Interner Serverfehler). Ausnahmen, die während der Zeit ausgelöst werden, die zum Abschließen der Antwort benötigt wird, führen zu verkürzten Antworten an den Aufrufer. Wenn die Lambda-Funktion eine HTTP-Statuscode 200 (OK)-Antwort vom `WriteGetObjectResponse`-API-Aufruf erhält, hat der ursprüngliche Aufrufer die vollständige Anforderung gesendet. Die Antwort der Lambda-Funktion, wird von S3 Object Lambda, unabhängig davon, ob eine Ausnahme ausgelöst wird oder nicht, ignoriert.

Beim Aufruf der API-Operation `WriteGetObjectResponse` benötigt Amazon S3 den Routen- und Anforderungstoken aus dem Ereigniskontext. Weitere Informationen finden Sie unter [Format und Verwendung des Ereigniskontexts](olap-event-context.md).

Die Routen- und Anforderungstokenparameter sind erforderlich, um die `WriteGetObjectResult`-Antwort mit dem ursprünglichen Aufrufer zu verbinden. Obwohl es immer angemessen ist, 500-Antworten (Interner Serverfehler) zu wiederholen, beachten Sie, dass es sich bei dem Anforderungstoken um ein einmaliges Verwendungstoken handelt und nachfolgende Verwendungsversuche zu HTTP-Statuscode 400 (Bad Request)-Antworten führen können. Obwohl der Aufruf an `WriteGetObjectResponse` mit den Routen- und Anforderungstoken nicht von der aufgerufenen Lambda-Funktion erfolgen muss, ist hierfür eine Identität im selben Konto erforderlich. Der Aufruf muss außerdem abgeschlossen sein, bevor die Lambda-Funktion die Ausführung beendet.

## Arbeiten mit `HeadObject`-Anforderungen in Lambda
<a name="olap-headobject"></a>

In diesem Abschnitt wird davon ausgegangen, dass Ihr Object Lambda Access Point für den Aufruf der Lambda-Funktion für `HeadObject` konfiguriert ist. Lambda erhält eine JSON-Nutzlast, die einen Schlüssel namens `headObjectContext` enthält. Innerhalb des Kontexts gibt es eine einzelne Eigenschaft namens `inputS3Url`, bei der es sich um eine vorsignierte URL für den unterstützenden Zugriffspunkt für `HeadObject` handelt.

Die vorsignierte URL enthält die folgenden Eigenschaften, wenn sie angegeben sind: 
+ `versionId` (in den Abfrageparametern)
+ `requestPayer` (im `x-amz-request-payer`-Header)
+ `expectedBucketOwner` (im `x-amz-expected-bucket-owner`-Header)

Andere Eigenschaften werden nicht vorsigniert und daher nicht berücksichtigt. Nicht signierte Optionen, die als Header gesendet werden, können manuell zur Anforderung hinzugefügt werden, wenn die vorsignierte URL aufgerufen wird, die sich in den `userRequest`-Headern befindet. Serverseitige Verschlüsselungsoptionen werden für `HeadObject` nicht unterstützt.

Informationen zu den URI-Parametern der Anforderungssyntax finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) in der *API-Referenz für Amazon Simple Storage Service*.

Das folgende Beispiel zeigt eine Lambda-JSON-Eingabe-Nutzlast für `HeadObject`.

```
{
  "xAmzRequestId": "requestId",
  "**headObjectContext**": {
    "**inputS3Url**": "https://my-s3-ap-111122223333.s3-accesspoint.us-east-1.amazonaws.com/example?X-Amz-Security-Token=<snip>"
  },
  "configuration": {
       "accessPointArn": "arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/example-object-lambda-ap",
       "supportingAccessPointArn": "arn:aws:s3:us-east-1:111122223333:accesspoint/example-ap",
       "payload": "{}"
  },
  "userRequest": {
       "url": "https://object-lambda-111122223333.s3-object-lambda.us-east-1.amazonaws.com/example",
       "headers": {
           "Host": "object-lambda-111122223333.s3-object-lambda.us-east-1.amazonaws.com",
           "Accept-Encoding": "identity",
           "X-Amz-Content-SHA256": "e3b0c44298fc1example"
       }
   },
   "userIdentity": {
       "type": "AssumedRole",
       "principalId": "principalId",
       "arn": "arn:aws:sts::111122223333:assumed-role/Admin/example",       
       "accountId": "111122223333",
       "accessKeyId": "accessKeyId",
       "sessionContext": {
            "attributes": {
            "mfaAuthenticated": "false",
            "creationDate": "Wed Mar 10 23:41:52 UTC 2021"
       },
       "sessionIssuer": {
            "type": "Role",
            "principalId": "principalId",
            "arn": "arn:aws:iam::111122223333:role/Admin",
            "accountId": "111122223333",
            "userName": "Admin"
            }
       }
    },
  "protocolVersion": "1.00"
}
```

Ihre Lambda-Funktion sollte ein JSON-Objekt zurückgeben, das die Header und Werte enthält, die für den `HeadObject`-Aufruf zurückgegeben werden.

Das folgende Beispiel zeigt die Struktur der JSON-Nachricht der Lambda-Antwort für `HeadObject`.

```
{
    "statusCode": <number>; // Required
    "errorCode": <string>;
    "errorMessage": <string>;
    "headers": {
        "Accept-Ranges": <string>,
        "x-amz-archive-status": <string>,
        "x-amz-server-side-encryption-bucket-key-enabled": <boolean>,
        "Cache-Control": <string>,
        "Content-Disposition": <string>,
        "Content-Encoding": <string>,
        "Content-Language": <string>,
        "Content-Length": <number>, // Required
        "Content-Type": <string>,
        "x-amz-delete-marker": <boolean>,
        "ETag": <string>,
        "Expires": <string>,
        "x-amz-expiration": <string>,
        "Last-Modified": <string>,
        "x-amz-missing-meta": <number>,
        "x-amz-object-lock-mode": <string>,
        "x-amz-object-lock-legal-hold": <string>,
        "x-amz-object-lock-retain-until-date": <string>,
        "x-amz-mp-parts-count": <number>,
        "x-amz-replication-status": <string>,
        "x-amz-request-charged": <string>,
        "x-amz-restore": <string>,
        "x-amz-server-side-encryption": <string>,
        "x-amz-server-side-encryption-customer-algorithm": <string>,
        "x-amz-server-side-encryption-aws-kms-key-id": <string>,
        "x-amz-server-side-encryption-customer-key-MD5": <string>,
        "x-amz-storage-class": <string>,
        "x-amz-tagging-count": <number>,
        "x-amz-version-id": <string>,
        <x-amz-meta-headers>: <string>, // user-defined metadata 
        "x-amz-meta-meta1": <string>, // example of the user-defined metadata header, it will need the x-amz-meta prefix
        "x-amz-meta-meta2": <string>
        ...
    };
}
```

Das folgende Beispiel zeigt, wie Sie die vorsignierte URL verwenden, um Ihre Antwort aufzufüllen, indem Sie die Header-Werte nach Bedarf ändern, bevor das JSON-Objekt zurückgegeben wird.

------
#### [ Python ]



```
import requests

def lambda_handler(event, context):
    print(event)
    
    # Extract the presigned URL from the input.
    s3_url = event["headObjectContext"]["inputS3Url"]

    # Get the head of the object from S3.     
    response = requests.head(s3_url)
    
    # Return the error to S3 Object Lambda (if applicable).           
    if (response.status_code >= 400):
        return {
            "statusCode": response.status_code,
            "errorCode": "RequestFailure",                         
            "errorMessage": "Request to S3 failed"    
    }
    
    # Store the headers in a dictionary.
    response_headers = dict(response.headers)

    # This obscures Content-Type in a transformation, it is optional to add
    response_headers["Content-Type"] = "" 

    # Return the headers to S3 Object Lambda.     
    return {
        "statusCode": response.status_code,
        "headers": response_headers     
        }
```

------

## Arbeiten mit `ListObjects`-Anforderungen in Lambda
<a name="olap-listobjects"></a>

In diesem Abschnitt wird davon ausgegangen, dass Ihr Object Lambda Access Point für den Aufruf der Lambda-Funktion für `ListObjects` konfiguriert ist. Lambda erhält die JSON-Nutzlast mit einem neuen Objekt namens `listObjectsContext`. `listObjectsContext` enthält eine einzelne Eigenschaft, `inputS3Url`, bei der es sich um eine vorsignierte URL für den unterstützenden Zugriffspunkt `ListObjects` handelt.

Im Gegensatz zu `GetObject` und `HeadObject` enthält die vorsignierte URL die folgenden Eigenschaften, wenn sie angegeben sind:
+ Alle Abfrageparameter
+ `requestPayer` (im `x-amz-request-payer`-Header) 
+ `expectedBucketOwner` (im `x-amz-expected-bucket-owner`-Header)

Informationen zu den URI-Parametern der Anforderungssyntax finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) in der *API-Referenz für Amazon Simple Storage Service*.

**Wichtig**  
Wir empfehlen, bei der Entwicklung von Anwendungen die neuere Version [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) zu verwenden. Aus Gründen der Abwärtskompatibilität unterstützt Amazon S3 weiterhin `ListObjects`.

Das folgende Beispiel zeigt die Lambda-JSON-Eingabe-Nutzlast für `ListObjects`.

```
{
    "xAmzRequestId": "requestId",
     "**listObjectsContext**": {
     "**inputS3Url**": "https://my-s3-ap-111122223333.s3-accesspoint.us-east-1.amazonaws.com/?X-Amz-Security-Token=<snip>",
     },
    "configuration": {
        "accessPointArn": "arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/example-object-lambda-ap",
        "supportingAccessPointArn": "arn:aws:s3:us-east-1:111122223333:accesspoint/example-ap",
        "payload": "{}"
    },
    "userRequest": {
        "url": "https://object-lambda-111122223333.s3-object-lambda.us-east-1.amazonaws.com/example",
        "headers": {
            "Host": "object-lambda-111122223333.s3-object-lambda.us-east-1.amazonaws.com",
            "Accept-Encoding": "identity",
            "X-Amz-Content-SHA256": "e3b0c44298fc1example"
        }
    },
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "principalId",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/example",
        "accountId": "111122223333",
        "accessKeyId": "accessKeyId",
        "sessionContext": {
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "Wed Mar 10 23:41:52 UTC 2021"
            },
            "sessionIssuer": {
                "type": "Role",
                "principalId": "principalId",
                "arn": "arn:aws:iam::111122223333:role/Admin",
                "accountId": "111122223333",
                "userName": "Admin"
            }
        }
    },
  "protocolVersion": "1.00"
}
```

Ihre Lambda-Funktion sollte ein JSON-Objekt zurückgeben, das den Statuscode, das Listen-XML-Ergebnis oder die Fehlerinformationen enthält, die von S3 Object Lambda zurückgegeben werden.

S3 Object Lambda verarbeitet oder validiert `listResultXml` nicht, sondern leitet es an den `ListObjects`-Aufrufer weiter. Für `listBucketResult` erwartet S3 Object Lambda, dass bestimmte Eigenschaften von einem speziellen Typ sind, und löst Ausnahmen aus, wenn es sie nicht analysieren kann. `listResultXml` und `listBucketResult` können nicht gleichzeitig bereitgestellt werden.

Das folgende Beispiel zeigt, wie die vorsignierte URL verwendet wird, um Amazon S3 aufzurufen und das Ergebnis zum Auffüllen einer Antwort einschließlich der Fehlerprüfung zu nutzen.

------
#### [ Python ]

```
import requests 
import xmltodict

def lambda_handler(event, context):
    # Extract the presigned URL from the input.
    s3_url = event["listObjectsContext"]["inputS3Url"]


    # Get the head of the object from Amazon S3.
    response = requests.get(s3_url)

    # Return the error to S3 Object Lambda (if applicable).
    if (response.status_code >= 400):
        error = xmltodict.parse(response.content)
        return {
            "statusCode": response.status_code,
            "errorCode": error["Error"]["Code"],
            "errorMessage": error["Error"]["Message"]
        }

    # Store the XML result in a dict.
    response_dict = xmltodict.parse(response.content)

    # This obscures StorageClass in a transformation, it is optional to add
    for item in response_dict['ListBucketResult']['Contents']:
        item['StorageClass'] = ""

    # Convert back to XML.
    listResultXml = xmltodict.unparse(response_dict)
    
    # Create response with listResultXml.
    response_with_list_result_xml = {
        'statusCode': 200,
        'listResultXml': listResultXml
    }

    # Create response with listBucketResult.
    response_dict['ListBucketResult'] = sanitize_response_dict(response_dict['ListBucketResult'])
    response_with_list_bucket_result = {
        'statusCode': 200,
        'listBucketResult': response_dict['ListBucketResult']
    }

    # Return the list to S3 Object Lambda.
    # Can return response_with_list_result_xml or response_with_list_bucket_result
    return response_with_list_result_xml

# Converting the response_dict's key to correct casing
def sanitize_response_dict(response_dict: dict):
    new_response_dict = dict()
    for key, value in response_dict.items():
        new_key = key[0].lower() + key[1:] if key != "ID" else 'id'
        if type(value) == list:
            newlist = []
            for element in value:
                if type(element) == type(dict()):
                    element = sanitize_response_dict(element)
                newlist.append(element)
            value = newlist
        elif type(value) == dict:
            value = sanitize_response_dict(value)
        new_response_dict[new_key] = value
    return new_response_dict
```

------

Das folgende Beispiel zeigt die Struktur der JSON-Nachricht der Lambda-Antwort für `ListObjects`.

```
{ 
  "statusCode": <number>; // Required
  "errorCode": <string>;
  "errorMessage": <string>;
  "listResultXml": <string>; // This can also be Error XML string in case S3 returned error response when calling the pre-signed URL

  "listBucketResult": {  // listBucketResult can be provided instead of listResultXml, however they can not both be provided in the JSON response  
        "name": <string>,  // Required for 'listBucketResult'
        "prefix": <string>,  
        "marker": <string>, 
        "nextMarker": <string>, 
        "maxKeys": <int>,   // Required for 'listBucketResult'
        "delimiter": <string>, 
        "encodingType": <string>  
        "isTruncated": <boolean>,  // Required for 'listBucketResult'
        "contents": [  { 
            "key": <string>,  // Required for 'content'
            "lastModified": <string>,  
            "eTag": <string>,  
            "checksumAlgorithm": <string>,   // CRC32,  CRC32C,  SHA1,  SHA256
            "size": <int>,   // Required for 'content'
            "owner": {  
                "displayName": <string>,  // Required for 'owner'
                "id": <string>,  // Required for 'owner'
            },  
            "storageClass": <string>  
            },  
        ...  
        ],  
        "commonPrefixes": [  {  
            "prefix": <string>   // Required for 'commonPrefix'
        },  
        ...  
        ],  
    }
}
```

## Arbeiten mit `ListObjectsV2`-Anforderungen in Lambda
<a name="olap-listobjectsv2"></a>

In diesem Abschnitt wird davon ausgegangen, dass Ihr Object Lambda Access Point für den Aufruf der Lambda-Funktion für `ListObjectsV2` konfiguriert ist. Lambda erhält die JSON-Nutzlast mit einem neuen Objekt namens `listObjectsV2Context`. `listObjectsV2Context` enthält eine einzelne Eigenschaft, `inputS3Url`, bei der es sich um eine vorsignierte URL für den unterstützenden Zugriffspunkt `ListObjectsV2` handelt.

Im Gegensatz zu `GetObject` und `HeadObject` enthält die vorsignierte URL die folgenden Eigenschaften, wenn sie angegeben sind: 
+ Alle Abfrageparameter
+ `requestPayer` (im `x-amz-request-payer`-Header) 
+ `expectedBucketOwner` (im `x-amz-expected-bucket-owner`-Header)

Informationen zu den URI-Parametern der Anforderungssyntax finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) in der *API-Referenz für Amazon Simple Storage Service*.

Das folgende Beispiel zeigt die Lambda-JSON-Eingabe-Nutzlast für `ListObjectsV2`.

```
{
    "xAmzRequestId": "requestId",
     "**listObjectsV2Context**": {
     "**inputS3Url**": "https://my-s3-ap-111122223333.s3-accesspoint.us-east-1.amazonaws.com/?list-type=2&X-Amz-Security-Token=<snip>",
     },
    "configuration": {
        "accessPointArn": "arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/example-object-lambda-ap",
        "supportingAccessPointArn": "arn:aws:s3:us-east-1:111122223333:accesspoint/example-ap",
        "payload": "{}"
    },
    "userRequest": {
        "url": "https://object-lambda-111122223333.s3-object-lambda.us-east-1.amazonaws.com/example",
        "headers": {
            "Host": "object-lambda-111122223333.s3-object-lambda.us-east-1.amazonaws.com",
            "Accept-Encoding": "identity",
            "X-Amz-Content-SHA256": "e3b0c44298fc1example"
        }
    },
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "principalId",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/example",
        "accountId": "111122223333",
        "accessKeyId": "accessKeyId",
        "sessionContext": {
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "Wed Mar 10 23:41:52 UTC 2021"
            },
            "sessionIssuer": {
                "type": "Role",
                "principalId": "principalId",
                "arn": "arn:aws:iam::111122223333:role/Admin",
                "accountId": "111122223333",
                "userName": "Admin"
            }
        }
    },
  "protocolVersion": "1.00" 
}
```

Ihre Lambda-Funktion sollte ein JSON-Objekt zurückgeben, das den Statuscode, das Listen-XML-Ergebnis oder die Fehlerinformationen enthält, die von S3 Object Lambda zurückgegeben werden.

S3 Object Lambda verarbeitet oder validiert `listResultXml` nicht, sondern leitet es an den `ListObjectsV2`-Aufrufer weiter. Für `listBucketResult` erwartet S3 Object Lambda, dass bestimmte Eigenschaften von einem speziellen Typ sind, und löst Ausnahmen aus, wenn es sie nicht analysieren kann. `listResultXml` und `listBucketResult` können nicht gleichzeitig bereitgestellt werden.

Das folgende Beispiel zeigt, wie die vorsignierte URL verwendet wird, um Amazon S3 aufzurufen und das Ergebnis zum Auffüllen einer Antwort einschließlich der Fehlerprüfung zu nutzen.

------
#### [ Python ]

```
import requests 
import xmltodict

def lambda_handler(event, context):
    # Extract the presigned URL from the input.
    s3_url = event["listObjectsV2Context"]["inputS3Url"]


    # Get the head of the object from Amazon S3.
    response = requests.get(s3_url)

    # Return the error to S3 Object Lambda (if applicable).
    if (response.status_code >= 400):
        error = xmltodict.parse(response.content)
        return {
            "statusCode": response.status_code,
            "errorCode": error["Error"]["Code"],
            "errorMessage": error["Error"]["Message"]
        }

    # Store the XML result in a dict.
    response_dict = xmltodict.parse(response.content)

    # This obscures StorageClass in a transformation, it is optional to add
    for item in response_dict['ListBucketResult']['Contents']:
        item['StorageClass'] = ""

    # Convert back to XML.
    listResultXml = xmltodict.unparse(response_dict)
    
    # Create response with listResultXml.
    response_with_list_result_xml = {
        'statusCode': 200,
        'listResultXml': listResultXml
    }

    # Create response with listBucketResult.
    response_dict['ListBucketResult'] = sanitize_response_dict(response_dict['ListBucketResult'])
    response_with_list_bucket_result = {
        'statusCode': 200,
        'listBucketResult': response_dict['ListBucketResult']
    }

    # Return the list to S3 Object Lambda.
    # Can return response_with_list_result_xml or response_with_list_bucket_result
    return response_with_list_result_xml

# Converting the response_dict's key to correct casing
def sanitize_response_dict(response_dict: dict):
    new_response_dict = dict()
    for key, value in response_dict.items():
        new_key = key[0].lower() + key[1:] if key != "ID" else 'id'
        if type(value) == list:
            newlist = []
            for element in value:
                if type(element) == type(dict()):
                    element = sanitize_response_dict(element)
                newlist.append(element)
            value = newlist
        elif type(value) == dict:
            value = sanitize_response_dict(value)
        new_response_dict[new_key] = value
    return new_response_dict
```

------

Das folgende Beispiel zeigt die Struktur der JSON-Nachricht der Lambda-Antwort für `ListObjectsV2`.

```
{  
    "statusCode": <number>; // Required  
    "errorCode": <string>;  
    "errorMessage": <string>;  
    "listResultXml": <string>; // This can also be Error XML string in case S3 returned error response when calling the pre-signed URL  
  
    "listBucketResult": {  // listBucketResult can be provided instead of listResultXml, however they can not both be provided in the JSON response 
        "name": <string>, // Required for 'listBucketResult'  
        "prefix": <string>,  
        "startAfter": <string>,  
        "continuationToken": <string>,  
        "nextContinuationToken": <string>,
        "keyCount": <int>, // Required for 'listBucketResult'  
        "maxKeys": <int>, // Required for 'listBucketResult'  
        "delimiter": <string>,  
        "encodingType": <string>  
        "isTruncated": <boolean>, // Required for 'listBucketResult'  
        "contents": [ {  
            "key": <string>, // Required for 'content'  
            "lastModified": <string>,  
            "eTag": <string>,  
            "checksumAlgorithm": <string>, // CRC32, CRC32C, SHA1, SHA256  
            "size": <int>, // Required for 'content'  
            "owner": {  
                "displayName": <string>, // Required for 'owner'  
                "id": <string>, // Required for 'owner'  
            },  
            "storageClass": <string>  
            },  
            ...  
        ],  
        "commonPrefixes": [ {  
            "prefix": <string> // Required for 'commonPrefix'  
            },  
        ...  
        ],  
    }  
}
```

# Format und Verwendung des Ereigniskontexts
<a name="olap-event-context"></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).

Amazon S3 Object Lambda bietet Kontext zu der Anfrage, die in dem Ereignis gestellt wird, das an Ihre AWS Lambda Funktion übergeben wird. Nachstehend finden Sie eine Beispielanforderung: Beschreibungen der Felder folgen nach dem Beispiel.

```
{
    "xAmzRequestId": "requestId",
    "getObjectContext": {
        "inputS3Url": "https://my-s3-ap-111122223333.s3-accesspoint.us-east-1.amazonaws.com/example?X-Amz-Security-Token=<snip>",
        "outputRoute": "io-use1-001",
        "outputToken": "OutputToken"
    },
    "configuration": {
        "accessPointArn": "arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/example-object-lambda-ap",
        "supportingAccessPointArn": "arn:aws:s3:us-east-1:111122223333:accesspoint/example-ap",
        "payload": "{}"
    },
    "userRequest": {
        "url": "https://object-lambda-111122223333.s3-object-lambda.us-east-1.amazonaws.com/example",
        "headers": {
            "Host": "object-lambda-111122223333.s3-object-lambda.us-east-1.amazonaws.com",
            "Accept-Encoding": "identity",
            "X-Amz-Content-SHA256": "e3b0c44298fc1example"
        }
    },
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "principalId",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/example",
        "accountId": "111122223333",
        "accessKeyId": "accessKeyId",
        "sessionContext": {
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "Wed Mar 10 23:41:52 UTC 2021"
            },
            "sessionIssuer": {
                "type": "Role",
                "principalId": "principalId",
                "arn": "arn:aws:iam::111122223333:role/Admin",
                "accountId": "111122223333",
                "userName": "Admin"
            }
        }
    },
    "protocolVersion": "1.00"
}
```

Die folgenden Felder sind in der Anforderung enthalten:
+ `xAmzRequestId` – Die Amazon-S3-Anforderungs-ID für diese Anforderung. Wir empfehlen, diesen Wert zu protokollieren, um beim Debuggen zu helfen.
+ `getObjectContext` – Die Eingabe- und Ausgabedetails für Verbindungen zu Amazon S3 und S3 Object Lambda.
  + `inputS3Url` – Eine vorsignierte URL, die verwendet werden kann, um das ursprüngliche Objekt von Amazon S3 abzurufen. Die URL wird mit der Identität des ursprünglichen Aufrufers signiert und die Berechtigungen des entsprechenden Benutzers gelten, wenn die URL verwendet wird. Wenn die URL signierte Header enthält, muss die Lambda-Funktion diese Header in den Aufruf von Amazon S3 aufnehmen, mit Ausnahme des `Host`-Headers.
  + `outputRoute` – Ein Routing-Token, das der Lambda-URL des S3-Objekts hinzugefügt wird, wenn die Lambda-Funktion `WriteGetObjectResponse` aufruft.
  + `outputToken` – Ein undurchsichtiges Token, das von S3 Object Lambda verwendet wird, um den `WriteGetObjectResponse`-Aufruf mit dem ursprünglichen Aufrufer abzugleichen.
+ `configuration` – Informationen zur Konfiguration des Object Lambda Access Point.
  + `accessPointArn` – Der Amazon-Ressourcenname (ARN) des Object Lambda Access Point, der diese Anforderung erhalten hat.
  + `supportingAccessPointArn` – Der ARN des unterstützenden Zugriffspunkts, der in der Konfiguration des Object Lambda Access Point angegeben ist.
  + `payload` – Benutzerdefinierte Daten, die auf die Konfiguration des Object Lambda Access Point angewendet werden. S3 Object Lambda behandelt diese Daten als eine undurchsichtige Zeichenfolge, daher muss sie möglicherweise vor der Verwendung dekodiert werden.
+ `userRequest` – Informationen über den ursprünglichen Aufruf von S3 Object Lambda.
  + `url` – Die dekodierte URL der Anforderung, wie sie von S3 Object Lambda empfangen wurde, ohne autorisierungsbezogene Abfrageparameter.
  + `headers` – Eine Zuordnung von Zeichenfolgen zu Zeichenfolgen, die die HTTP-Header und ihre Werte aus dem ursprünglichen Aufruf enthalten, ohne autorisierungsbezogene Header. Wenn derselbe Header mehrfach erscheint, werden die Werte von jeder Instance desselben Header zu einer durch Kommata getrennten Liste zusammengefasst. Der Fall der ursprünglichen Header wird in dieser Zuordnung beibehalten.
+ `userIdentity` – Details zur die Identität, die den Aufruf von S3 Object Lambda getätigt hat. Weitere Informationen finden Sie unter [Protokollieren von Datenereignissen für Trails](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html) im *AWS CloudTrail -Benutzerhandbuch.*
  + `type` – Die Art der Identität.
  + `accountId`— Der AWS-Konto , zu dem die Identität gehört.
  + `userName` – Der Anzeigename der Identität, von der der Aufruf stammt.
  + `principalId` – Die eindeutige ID für die Entität, von der der Aufruf stammt.
  + `arn` – Der ARN des Prinzipals, von dem der Aufruf stammt. Der letzte Abschnitt des ARN enthält den Benutzer oder die Rolle, von dem/der der Aufruf stammt.
  + `sessionContext` – Erfolgte die Abfrage mittels temporärer Sicherheitsanmeldeinformationen, stellt dieses Element Informationen über die Sitzung bereit, das für diese Anmeldeinformationen erstellt wurde.
  + `invokedBy`— Der Name desjenigen AWS-Service , der die Anfrage gestellt hat, z. B. Amazon EC2 Auto Scaling oder AWS Elastic Beanstalk.
  + `sessionIssuer` – Erfolgte die Abfrage mittels temporärer Sicherheitsanmeldeinformationen, gibt dieses Element Auskunft darüber, wie die Anmeldeinformationen erhalten wurden.
+ `protocolVersion` – Die Versions-ID des bereitgestellten Kontextes. Das Format des Felds ist `{Major Version}.{Minor Version}`. Die Nebenversionsnummern sind immer zweistellige Zahlen. Jede Entfernung oder Änderung der Semantik eines Feldes erfordert einen Sprung der Hauptversion und erfordert ein aktives Opt-In. Amazon S3 kann jederzeit neue Felder hinzufügen. Zu diesem Zeitpunkt kann es zu einem Sprung der Nebenversion kommen. Aufgrund der Art der Software-Einführung sehen Sie möglicherweise die Verwendung mehrerer Nebenversionen gleichzeitig.

# Arbeiten mit Range- und partNumber-Headern
<a name="range-get-olap"></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).

Wenn Sie mit großen Objekten in Amazon S3 Object Lambda arbeiten, können Sie den `Range`-HTTP-Header verwenden, um einen bestimmten Bytebereich von einem Objekt herunterzuladen. Sie können gleichzeitige Verbindungen zu Amazon S3 verwenden, um verschiedene Bytebereiche aus demselben Objekt abzurufen. Sie können auch den `partNumber`-Parameter (eine Ganzzahl zwischen 1 und 10 000) verwenden, der eine „ranged“ Anforderung für das angegebene Teil des Objekts ausführt.

Weil es mehrere Möglichkeiten gibt, eine Anforderung zu bearbeiten, die den `Range`- oder `partNumber`-Parameter beinhaltet, wendet S3 Object Lambda diese Parameter nicht auf das transformierte Objekt an. Stattdessen muss Ihre AWS Lambda Funktion diese Funktionalität nach Bedarf für Ihre Anwendung implementieren.

Wenn Sie die Parameter `Range` und `partNumber` mit S3 Object Lambda verwenden möchten, gehen Sie wie folgt vor: 
+ Aktivieren Sie diese Parameter in der Konfiguration Ihres Object Lambda Access Point.
+ Schreiben Sie eine Lambda-Funktion, die Anforderungen verarbeiten kann, die diese Parameter enthalten.

In den folgenden Schritten wird beschrieben, wie Sie dies erreichen.

## Schritt 1: Konfigurieren Ihres Object Lambda Access Point
<a name="range-get-olap-step-1"></a>

Standardmäßig antworten Object Lambda Access Points mit dem HTTP-Statuscodefehler 501 (Nicht implementiert) auf jede `GetObject`- oder `HeadObject`-Anforderung, die entweder in den Headern oder in den Abfrageparametern einen `Range`- oder `partNumber`-Parameter enthält. 

Damit ein Object-Lambda-Zugriffspunkt solche Anforderungen annehmen kann, müssen Sie `GetObject-Range`, `GetObject-PartNumber`, `HeadObject-Range` oder `HeadObject-PartNumber` in den `AllowedFeatures`-Abschnitt die Konfiguration Ihres Object-Lambda-Zugangspunkts einschließen. Weitere Informationen zur Aktualisierung der Konfiguration Ihres Object Lambda Access Point finden Sie unter [Erstellen von Object Lambda Zugangspunkten](olap-create.md). 

## Schritt 2: Implementieren Sie das `Range` oder `partNumber` in Ihrer Lambda-Funktion
<a name="range-get-olap-step-2"></a>

Wenn Ihr Object Lambda Access Point Ihre Lambda-Funktion mit einer `GetObject`- oder `HeadObject`-Bereichsanforderung aufruft, ist der `Range`- oder `partNumber`-Parameter im Ereigniskontext enthalten. Die Position des Parameters im Ereigniskontext hängt davon ab, welcher Parameter verwendet wurde und wie er in die ursprüngliche Anforderung an den Object Lambda Access Point aufgenommen wurde, wie in der folgenden Tabelle erläutert. 


| Parameter | Ort des Ereigniskontexts | 
| --- | --- | 
|  `Range` (Header)  |  `userRequest.headers.Range`  | 
|  `Range` (Abfrageparameter)  |  `userRequest.url` (Abfrageparameter `Range`)  | 
|  `partNumber`  |  `userRequest.url` (Abfrageparameter `partNumber`)  | 

**Wichtig**  
Die bereitgestellte vorsignierte URL für Ihren Object Lambda Access Point enthält nicht den `Range`- oder `partNumber`-Parameter aus der ursprünglichen Anforderung. In den folgenden Optionen erfahren Sie, wie Sie diese Parameter in Ihrer AWS Lambda Funktion handhaben können.

Nachdem Sie den `Range`- oder `partNumber`-Wert extrahiert haben, können Sie einen der folgenden Ansätze wählen, basierend auf den Anforderungen Ihrer Anwendung:

1. **Ordnen Sie den angeforderten `Range`- oder `partNumber`-Wert dem transformierten Objekt zu (empfohlen).** 

   Die zuverlässigste Art, `Range`- oder `partNumber`-Anforderungen zu bearbeiten, ist folgende: 
   + Rufen Sie das vollständige Objekt aus Amazon S3 ab.
   + Transformieren Sie das Objekt.
   + Wenden Sie die angeforderten `Range`- oder `partNumber`-Parameter auf das transformierte Objekt an.

   Verwenden Sie dazu die bereitgestellte vorsignierte URL, um das gesamte Objekt von Amazon S3 abzurufen und das Objekt dann nach Bedarf zu verarbeiten. Ein Beispiel für eine Lambda-Funktion, die einen `Range` Parameter auf diese Weise verarbeitet, finden Sie in [diesem Beispiel](https://github.com/aws-samples/amazon-s3-object-lambda-default-configuration/blob/main/function/nodejs_20_x/src/response/range_mapper.ts) im AWS GitHub Samples-Repository.

1. **Ordnen Sie den angeforderten `Range` der vorsignierten URL zu.**

   In einigen Fällen kann Ihre Lambda-Funktion den angeforderten `Range` direkt der vorsignierten URL zuordnen, um nur einen Teil des Objekts von Amazon S3 abzurufen. Dieser Ansatz ist nur dann geeignet, wenn Ihre Transformation die beiden folgenden Kriterien erfüllt:

   1. Ihre Transformationsfunktion kann auf partielle Objektbereiche angewendet werden.

   1. Das Anwenden der `Range`-Parameter vor oder nach der Transformationsfunktion führt zu demselben transformierten Objekt.

   Beispielsweise erfüllt eine Transformationsfunktion, die alle Zeichen in einem ASCII-kodierten Objekt in Großbuchstaben konvertiert, beide vorhergehenden Kriterien. Die Transformation kann auf einen Teil eines Objekts angewendet werden, und durch Anwenden des `Range`-Parameters vor der Transformation wird das gleiche Ergebnis erzielt wie beim Anwenden des Parameters nach der Transformation.

   Im Gegensatz dazu erfüllt eine Funktion, die die Zeichen in einem ASCII-kodierten Objekt umkehrt, diese Kriterien nicht. Eine solche Funktion erfüllt Kriterium 1, da sie auf partielle Objektbereiche angewendet werden kann. Sie erfüllt jedoch nicht Kriterium 2, da das Anwenden des `Range`-Parameters vor der Transformation andere Ergebnisse erzielt als das Anwenden des Parameters nach der Transformation. 

   Betrachten Sie eine Anforderung, die Funktion auf die ersten drei Zeichen eines Objekts mit dem Inhalt `abcdefg` anzuwenden. Das Anwenden des `Range`-Parameters vor der Transformation ruft nur `abc`ab und kehrt dann die Daten um und gibt `cba` zurück. Wenn der Parameter jedoch nach der Transformation angewendet wird, ruft die Funktion das gesamte Objekt ab, kehrt es um und wendet dann den `Range`-Parameter, um `gfe` zurückzugeben. Da diese Ergebnisse unterschiedlich sind, sollte diese Funktion den `Range`-Parameter beim Abrufen des Objekts von Amazon S3 nicht anwenden. Stattdessen sollte es das gesamte Objekt abrufen, die Transformation durchführen und erst dann den `Range`-Parameter anwenden. 
**Warnung**  
In vielen Fällen führt die Anwendung des `Range`-Parameters für die vorsignierte URL zu einem unerwarteten Verhalten durch die Lambda-Funktion oder den anfordernden Client. Wenn Sie nicht sicher sind, dass Ihre Anwendung ordnungsgemäß funktioniert, wenn Sie nur ein Teilobjekt von Amazon S3 abrufen, empfehlen wir Ihnen, vollständige Objekte abzurufen und zu transformieren, wie zuvor in Ansatz A beschrieben. 

   Wenn Ihre Anwendung die zuvor in Ansatz B beschriebenen Kriterien erfüllt, können Sie Ihre AWS Lambda Funktion vereinfachen, indem Sie nur den angeforderten Objektbereich abrufen und dann Ihre Transformation für diesen Bereich ausführen. 

   Im folgenden Java-Codebeispiel wird folgende Vorgehensweise gezeigt: 
   + Rufen Sie den `Range`-Header aus der `GetObject`-Anforderung ab.
   + Fügen Sie der vorsignierten URL den `Range`-Header hinzu, mit dem Lambda den angeforderten Bereich von Amazon S3 abrufen kann.

   ```
   private HttpRequest.Builder applyRangeHeader(ObjectLambdaEvent event, HttpRequest.Builder presignedRequest) {
       var header = event.getUserRequest().getHeaders().entrySet().stream()
               .filter(e -> e.getKey().toLowerCase(Locale.ROOT).equals("range"))
               .findFirst();
   
       // Add check in the query string itself.
       header.ifPresent(entry -> presignedRequest.header(entry.getKey(), entry.getValue()));
       return presignedRequest;
   }
   ```

# Verwenden von AWS integrierten Lambda-Funktionen
<a name="olap-examples"></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).

AWS bietet einige vorgefertigte AWS Lambda Funktionen, die Sie mit Amazon S3 Object Lambda verwenden können, um personenbezogene Daten (PII) zu erkennen und zu redigieren und S3-Objekte zu dekomprimieren. Diese Lambda-Funktionen sind in AWS Serverless Application Repository verfügbar. Sie können diese Funktionen über die AWS-Managementkonsole auswählen, wenn Sie Ihren Object Lambda Access Point erstellen. 

*Weitere Informationen zur Bereitstellung serverloser Anwendungen finden Sie unter [Deploying](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/serverlessrepo-consuming-applications.html) Applications im AWS Serverless Application Repository Developer Guide.AWS Serverless Application Repository *

**Anmerkung**  
Die folgenden Beispiele können nur mit `GetObject`-Anforderungen verwendet werden.

## Beispiel 1: PII-Zugriffskontrolle
<a name="olap-examples-1"></a>

Die Lambda-Funktion nutzt Amazon Comprehend, ein Natural Language Processing (NLP)-Service, der Machine Learning nutzt, um Einsichten und Zusammenhänge im Text zu finden. Diese Funktion erkennt automatisch persönlich identifizierbare Informationen (PII) wie Namen, Adressen, Daten, Kreditkartennummern und Sozialversicherungsnummern aus Dokumenten in Ihrem Amazon-S3-Bucket. Wenn Sie Dokumente in Ihrem Bucket haben, die PII enthalten, können Sie die PII-Zugriffskontrollfunktion konfigurieren, um diese PII-Entitätstypen zu erkennen und den Zugriff auf nicht autorisierte Benutzer zu beschränken.

Stellen Sie zunächst die folgende Lambda-Funktion in Ihrem Konto bereit und fügen Sie der Konfiguration Ihres Object Lambda Access Point den Amazon-Ressourcennamen (ARN) für die Funktion hinzu.

Es folgt ein Beispiel für einen ARN für diese Funktion:

```
arn:aws:serverlessrepo:us-east-1:111122223333:applications/ComprehendPiiAccessControlS3ObjectLambda
```

Sie können diese Funktion auf dem hinzufügen oder anzeigen, AWS-Managementkonsole indem Sie den folgenden AWS Serverless Application Repository Link verwenden: [ComprehendPiiAccessControlS3 ObjectLambda](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:839782855223:applications/ComprehendPiiAccessControlS3ObjectLambda).

Informationen zur Anzeige dieser Funktion finden Sie unter [Amazon Comprehend S3 Object Lambda](https://github.com/aws-samples/amazon-comprehend-s3-object-lambdas). GitHub

## Beispiel 2: PII-Redigierung
<a name="olap-examples-2"></a>

Die Lambda-Funktion nutzt Amazon Comprehend, ein Natural Language Processing (NLP)-Service, der Machine Learning nutzt, um Einsichten und Zusammenhänge im Text zu finden. Sie redigiert automatisch persönlich identifizierbare Informationen (PII) wie Namen, Adressen, Daten, Kreditkartennummern und Sozialversicherungsnummern aus Dokumenten in Ihrem Amazon-S3-Bucket. 

Wenn Sie Dokumente in Ihrem Bucket haben, die Informationen wie Kreditkartennummern oder Bankkontoinformationen enthalten, können Sie die PII-Redigierungs-S3 Object Lambda-Funktion konfigurieren, um PII zu erkennen, und dann eine Kopie dieser Dokumente zurückgeben, in denen die Typen von PII-Entitäten redigiert werden.

Stellen Sie zunächst die folgende Lambda-Funktion in Ihrem Konto bereit und fügen Sie der Konfiguration Ihres Object Lambda Access Point den ARN für die Funktion hinzu.

Es folgt ein Beispiel für einen ARN für diese Funktion:

```
arn:aws:serverlessrepo:us-east-1:111122223333::applications/ComprehendPiiRedactionS3ObjectLambda
```

[Sie können diese Funktion auf dem hinzufügen oder anzeigen, AWS-Managementkonsole indem Sie den folgenden AWS Serverless Application Repository Link verwenden: S3. ComprehendPiiRedaction ObjectLambda](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:839782855223:applications/ComprehendPiiRedactionS3ObjectLambda)

Informationen zur Anzeige dieser Funktion finden Sie unter [Amazon Comprehend S3 Object Lambda](https://github.com/aws-samples/amazon-comprehend-s3-object-lambdas). GitHub

Informationen zu den vollständigen end-to-end Verfahren für einige S3 Object Lambda-Aufgaben bei der PII-Schwärzung finden Sie unter. [Tutorial: Erkennen und Redigieren von PII-Daten mit S3 Object Lambda und Amazon Comprehend](tutorial-s3-object-lambda-redact-pii.md)

## Beispiel 3: Dekompression
<a name="olap-examples-3"></a>

Die Lambda-Funktion `S3ObjectLambdaDecompression` kann Objekte, die in Amazon S3 gespeichert sind, in einem von sechs komprimierten Dateiformaten dekomprimieren: `bzip2`, `gzip`, `snappy`, `zlib`, `zstandard` und `ZIP`. 

Stellen Sie zunächst die folgende Lambda-Funktion in Ihrem Konto bereit und fügen Sie der Konfiguration Ihres Object Lambda Access Point den ARN für die Funktion hinzu.

Es folgt ein Beispiel für einen ARN für diese Funktion:

```
arn:aws:serverlessrepo:us-east-1:111122223333::applications/S3ObjectLambdaDecompression
```

[Sie können diese Funktion auf dem hinzufügen oder anzeigen, AWS-Managementkonsole indem Sie den folgenden AWS Serverless Application Repository Link verwenden: S3. ObjectLambdaDecompression](https://eu-west-1.console.aws.amazon.com/lambda/home?region=eu-west-1#/create/app?applicationId=arn:aws:serverlessrepo:eu-west-1:123065155563:applications/S3ObjectLambdaDecompression)

Informationen zur Aktivierung dieser Funktion finden Sie GitHub unter [S3 Object Lambda Decompression](https://github.com/aws-samples/amazon-s3-object-lambda-decompression).

# Bewährte Methoden und Richtlinien für S3 Object Lambda
<a name="olap-best-practices"></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).

Befolgen Sie bei der Verwendung von S3 Object Lambda diesen bewährten Methoden und Richtlinien, um den Betrieb und die Leistung zu optimieren.

**Topics**
+ [Arbeiten mit S3 Object Lambda](#olap-working-with)
+ [AWS-Services wird in Verbindung mit S3 Object Lambda verwendet](#olap-services)
+ [`Range`- und `partNumber`-Header](#olap-managing-range-part)
+ [Transformieren von `expiry-date`](#olap-console-download)
+ [Arbeiten mit dem und AWS CLI AWS SDKs](#olap-cli-sdk)

## Arbeiten mit S3 Object Lambda
<a name="olap-working-with"></a>

S3 Object Lambda unterstützt nur die Verarbeitung von `GET`-, `LIST`- und `HEAD`-Anforderungen. Bei allen anderen Anfragen werden keine standardmäßigen, nicht AWS Lambda transformierten API-Antworten aufgerufen, sondern zurückgegeben. Sie können maximal 1.000 Object Lambda Access Points AWS-Konto pro Region erstellen. Die AWS Lambda Funktion, die Sie verwenden, muss sich in derselben AWS-Konto Region wie der Object Lambda Access Point befinden.

S3 Object Lambda lässt bis zu 60 Sekunden zu, um eine vollständige Antwort zu seinen Aufrufer zu streamen. Ihre Funktion unterliegt außerdem AWS Lambda Standardkontingenten. Weitere Informationen finden Sie unter [Lambda quotas (Lambda-Kontingente)](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html) im *AWS Lambda -Entwicklerhandbuch.* 

Mit S3 Object Lambda wird Ihre angegebene Lambda-Funktion aufgerufen. Sie sind dafür verantwortlich, dass alle Daten, die von Ihrer angegebenen Lambda-Funktion oder -Anwendung aus S3 überschrieben oder gelöscht werden, beabsichtigt und korrekt sind.

Sie können S3 Object Lambda nur verwenden, um Operationen auf Objekten durchzuführen. Sie können S3 Object Lambda nicht verwenden, um andere Amazon-S3-Operationen auszuführen, z. B. das Ändern oder Löschen von Buckets. Eine vollständige Liste der S3-Vorgänge, die Zugriffspunkte unterstützen, finden Sie unter [Zugangspunkt-Kompatibilität mit S3-Vorgänge](access-points-service-api-support.md#access-points-operations-support).

Zusätzlich zu dieser Liste unterstützen Object Lambda Zugangspunkte die API-Operationen [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html), [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) (als Quelle) und [https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html) nicht.

## AWS-Services wird in Verbindung mit S3 Object Lambda verwendet
<a name="olap-services"></a>

S3 Object Lambda verbindet Amazon S3 und optional andere AWS-Services Ihrer Wahl, um Objekte bereitzustellen, die für die anfragenden Anwendungen relevant sind. AWS Lambda Alle, die mit S3 Object Lambda AWS-Services verwendet werden, unterliegen ihren jeweiligen Service Level Agreements (SLAs). Wenn beispielsweise ein Unternehmen seine Serviceverpflichtung AWS-Service nicht einhält, haben Sie Anspruch auf eine Servicegutschrift, wie in der SLA des Dienstes dokumentiert.

## `Range`- und `partNumber`-Header
<a name="olap-managing-range-part"></a>

Wenn Sie mit großen Objekten arbeiten, können Sie den `Range`-HTTP-Header verwenden, um einen bestimmten Bytebereich von einem Objekt herunterzuladen. Wenn Sie den `Range`-Header verwenden, ruft Ihre Anforderung nur den angegebenen Teil des Objekts ab. Mit dem `partNumber`-Header können Sie auch eine Bereichsanforderung für das angegebene Teil aus dem Objekt ausführen.

Weitere Informationen finden Sie unter [Arbeiten mit Range- und partNumber-Headern](range-get-olap.md).

## Transformieren von `expiry-date`
<a name="olap-console-download"></a>

Sie können transformierte Objekte von Ihrem Object Lambda Access Point auf dem AWS-Managementkonsoleöffnen oder herunterladen. Diese Objekte dürfen nicht abgelaufen sein. Wenn Ihre Lambda-Funktion das `expiry-date` Ihrer Objekte transformiert, sehen Sie möglicherweise abgelaufene Objekte, die nicht geöffnet oder heruntergeladen werden können. Dieses Verhalten gilt nur für wiederhergestellte Objekte von S3 Glacier Flexible Retrieval und S3 Glacier Deep Archive.

## Arbeiten mit dem und AWS CLI AWS SDKs
<a name="olap-cli-sdk"></a>

AWS Command Line Interface (AWS CLI) S3-Unterbefehle (`cp``mv`, und`sync`) und die Verwendung der AWS SDK für Java `TransferManager` Klasse werden für die Verwendung mit S3 Object Lambda nicht unterstützt.

# Tutorials zu S3 Object Lambda
<a name="olap-tutorials"></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).

In den folgenden Tutorials end-to-end werden vollständige Verfahren für einige S3 Object Lambda-Aufgaben vorgestellt.

Mit S3 Object Lambda können Sie Ihren eigenen Code hinzufügen, um Daten zu verarbeiten, die von S3 abgerufen werden, bevor Sie sie an eine Anwendung zurückgeben. In jedem der folgenden Tutorials werden Daten geändert, sobald sie aus Amazon S3 abgerufen werden, ohne das bestehende Objekt zu ändern oder mehrere Kopien der Daten zu verwalten. Im ersten Tutorial wird beschrieben, wie Sie einer S3 GET-Anfrage eine AWS Lambda Funktion hinzufügen, um ein von S3 abgerufenes Objekt zu ändern. Das zweite Tutorial zeigt, wie man eine vorgefertigte Lambda-Funktion verwendet, die von Amazon Comprehend unterstützt wird, um persönlich identifizierbare Informationen (PII), die aus S3 abgerufen wurden, zu schützen, bevor sie an eine Anwendung zurückgegeben werden. Das dritte Tutorial verwendet S3 Object Lambda, um einem Bild, das aus Amazon S3 abgerufen wird, ein Wasserzeichen hinzuzufügen.
+ [Tutorial: Transformieren von Daten für Ihre Anwendung mit S3 Object Lambda](tutorial-s3-object-lambda-uppercase.md)
+ [Tutorial: Erkennen und Redigieren von PII-Daten mit S3 Object Lambda und Amazon Comprehend](tutorial-s3-object-lambda-redact-pii.md)
+ [Tutorial: Verwenden von S3 Object Lambda, um Bilder beim Abrufen dynamisch mit Wasserzeichen zu versehen](https://aws.amazon.com/getting-started/hands-on/amazon-s3-object-lambda-to-dynamically-watermark-images/?ref=docs_gateway/amazons3/olap-tutorials.html)

# Tutorial: Transformieren von Daten für Ihre Anwendung mit S3 Object Lambda
<a name="tutorial-s3-object-lambda-uppercase"></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).

Wenn Sie Daten in Amazon S3 speichern, können Sie sie für mehrere Anwendungen verwenden. Jede Anwendung hat jedoch möglicherweise eindeutige Anforderungen an das Datenformat und benötigt möglicherweise eine Änderung oder Verarbeitung Ihrer Daten für einen bestimmten Anwendungsfall. Beispielsweise kann ein von einer E-Commerce-Anwendung erstellter Datensatz persönlich identifizierbare Informationen (PII) enthalten. Wenn dieselben Daten für Analytik verarbeitet werden, wird diese PII nicht benötigt und sollte redigiert werden. Wenn jedoch derselbe Datensatz für eine Marketingkampagne verwendet wird, müssen Sie die Daten möglicherweise mit zusätzlichen Details wie Informationen aus der Kundenbindungsdatenbank anreichern.

Mit [S3 Object Lambda](https://aws.amazon.com/s3/features/object-lambda) können Sie Ihren eigenen Code hinzufügen, um Daten zu verarbeiten, die von S3 abgerufen werden, bevor Sie sie an eine Anwendung zurückgeben. Insbesondere können Sie eine AWS Lambda Funktion konfigurieren und sie an einen S3 Object Lambda Access Point anhängen. Wenn eine Anwendung [S3-GET-Standardanforderungen](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) über den S3 Object Lambda Zugangspunkt sendet, wird die angegebene Lambda-Funktion aufgerufen, um alle Daten zu verarbeiten, die über den unterstützenden S3-Zugangspunkt aus der zugrunde liegenden Datenquelle abgerufen wurden. Dann gibt der S3 Object Lambda Access Point das transformierte Ergebnis zurück an die Anwendung aus. Sie können Ihre eigenen benutzerdefinierten Lambda-Funktionen erstellen und ausführen, indem Sie die S3 Object Lambda-Datentransformation an Ihren spezifischen Anwendungsfall anpassen, ohne dass Änderungen an Ihren Anwendungen erforderlich sind.

![\[Dies ist ein S3-Object-Lambda-Workflow-Diagramm.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/ol-example-image-global.png)


**Ziel**  
In diesem Tutorial erfahren Sie, wie Sie benutzerdefinierten Code zu standardmäßigen S3-GET-Anforderungen hinzufügen, um das angeforderte Objekt, das von S3 abgerufen wurde, so zu ändern, dass das Objekt den Anforderungen des anfordernden Clients oder der anfordernden Anwendung entspricht. Insbesondere lernen Sie, wie Sie den gesamten Text im Originalobjekt, das in einem S3 Bucket gespeichert ist, durch S3 Object Lambda in Großbuchstaben umwandeln können. 

**Anmerkung**  
Dieses Tutorial verwendet Python-Code, um die Daten zu transformieren. Beispiele für die Verwendung anderer AWS SDKs finden Sie unter [Transformieren von Daten für Ihre Anwendung mit S3 Object Lambda](https://docs.aws.amazon.com/code-library/latest/ug/lambda_example_cross_ServerlessS3DataTransformation_section.html) in der AWS SDK-Codebeispielbibliothek. 

**Topics**
+ [Voraussetzungen](#ol-upper-prerequisites)
+ [Schritt 1: Einen S3-Bucket erstellen](#ol-upper-step1)
+ [Schritt 2: Hochladen einer Datei zu einem S3-Bucket](#ol-upper-step2)
+ [Schritt 3: Erstellen eines S3-Zugriffspunkts](#ol-upper-step3)
+ [Schritt 4: Erstellen einer Lambda-Funktion](#ol-upper-step4)
+ [Schritt 5: Konfigurieren einer IAM-Richtlinie für die Ausführungsrolle Ihrer Lambda-Funktion](#ol-upper-step5)
+ [Schritt 6: Erstellen eines S3 Object Lambda Access Point](#ol-upper-step6)
+ [Schritt 7: Anzeigen der transformierten Daten](#ol-upper-step7)
+ [Schritt 8: Bereinigen](#ol-upper-step8)
+ [Nächste Schritte](#ol-upper-next-steps)

## Voraussetzungen
<a name="ol-upper-prerequisites"></a>

Bevor Sie mit diesem Tutorial beginnen, benötigen Sie eine AWS-Konto , bei der Sie sich als AWS Identity and Access Management (IAM-) Benutzer mit den richtigen Berechtigungen anmelden können. Sie müssen außerdem Python Version 3.8 oder höher installieren.

**Topics**
+ [Erstellen Sie einen IAM-Benutzer mit Berechtigungen in Ihrer AWS-Konto (Konsole)](#ol-upper-prerequisites-account)
+ [Installieren Sie Python 3.8 oder höher auf Ihrem lokalen Computer](#ol-upper-prerequisites-python)

### Erstellen Sie einen IAM-Benutzer mit Berechtigungen in Ihrer AWS-Konto (Konsole)
<a name="ol-upper-prerequisites-account"></a>

Sie können für das Tutorial die Anmeldeinformationen eines IAM-Benutzers erstellen. Um dieses Tutorial abzuschließen, muss Ihr IAM-Benutzer die folgenden IAM-Richtlinien anhängen, um auf relevante AWS Ressourcen zuzugreifen und bestimmte Aktionen auszuführen. Weitere Informationen zum Erstellen eines IAM-Benutzers finden Sie unter [Erstellen von IAM-Benutzern (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) im *IAM-Benutzerhandbuch*.

Ihr IAM-Benutzer benötigt folgende Richtlinien:
+ [AmazonS3 FullAccess — Erteilt](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3FullAccess$jsonEditor) Berechtigungen für alle Amazon S3-Aktionen, einschließlich der Berechtigungen zum Erstellen und Verwenden eines Object Lambda Access Points. 
+ [AWSLambda\$1FullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSLambda_FullAccess$jsonEditor)— Erteilt Berechtigungen für alle Lambda-Aktionen. 
+ [IAMFullZugriff](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/IAMFullAccess$jsonEditor) — Gewährt Berechtigungen für alle IAM-Aktionen. 
+ [IAMAccessAnalyzerReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/IAMAccessAnalyzerReadOnlyAccess$jsonEditor)— Erteilt Berechtigungen zum Lesen aller von IAM Access Analyzer bereitgestellten Zugriffsinformationen. 
+ [CloudWatchLogsFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/CloudWatchLogsFullAccess$jsonEditor)— Gewährt vollen Zugriff auf CloudWatch Protokolle. 

**Anmerkung**  
Der Einfachheit halber wird in diesem Tutorial einen IAM-Benutzer erstellt und verwendet. Denken Sie nach Abschluss dieses Tutorials an [Löschen des IAM-Benutzers](#ol-upper-step8-delete-user). Für den Einsatz in der Produktion empfehlen wir, dass Sie die [bewährten Sicherheitsmethoden in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch* befolgen. Eine bewährte Methode ist, dass menschliche Benutzer den Verbund mit einem Identitätsanbieter verwenden, um mit temporären Anmeldeinformationen auf AWS zuzugreifen. Eine weitere bewährte Methode besteht darin, dass Workloads temporäre Anmeldeinformationen mit IAM-Rollen verwenden müssen, um auf AWS zuzugreifen. Informationen AWS IAM Identity Center zur Erstellung von Benutzern mit temporären Anmeldeinformationen finden Sie unter [Erste Schritte](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) im *AWS IAM Identity Center Benutzerhandbuch*.   
In diesem Tutorial werden auch AWS -verwaltete Richtlinien mit vollem Zugriff verwendet. Für die Verwendung in der Produktion empfehlen wir, dass Sie stattdessen nur die für Ihren Anwendungsfall erforderlichen Mindestberechtigungen gemäß [Bewährte Methoden in Bezug auf die Sicherheit](security-best-practices.md#security-best-practices-prevent) erteilen.

### Installieren Sie Python 3.8 oder höher auf Ihrem lokalen Computer
<a name="ol-upper-prerequisites-python"></a>

Verwenden Sie das folgende Verfahren, um Python 3.8 oder höher auf Ihrem lokalen Computer zu installieren. Weitere Installationsanweisungen finden Sie auf der Seite [Python herunterladen](https://wiki.python.org/moin/BeginnersGuide/Download) im *Python-Anfängerhandbuch*.

1. Öffnen Sie das lokale Terminal oder die Shell, und führen Sie den folgenden Befehl aus, um festzustellen, ob Python bereits installiert ist, und wenn ja, welche Version installiert ist. 

   ```
   python --version
   ```

1. Wenn Sie nicht über Python 3.8 oder höher verfügen, laden Sie die Datei [offizieller Installer](https://www.python.org/downloads/) von Python 3.8 oder höher herunter, die für Ihren lokalen Computer geeignet ist. 

1. Führen Sie das Installationsprogramm aus, indem Sie auf die heruntergeladene Datei doppelklicken und die Schritte ausführen, um die Installation abzuschließen. 

   Wählen Sie für **Windows-Nutzer** **Hinzufügen von Python 3.X zu PATH** im Installationsassistenten, bevor Sie **Jetzt installieren** auswählen. 

1. Starten Sie das Terminal neu, indem Sie es schließen und erneut öffnen. 

1. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Python 3.8 oder höher ordnungsgemäß installiert ist. 

   Führen Sie für **macOS-Benutzer** diesen Befehl aus: 

   ```
   python3 --version
   ```

   Führen Sie für **Windows-Benutzer** diesen Befehl aus: 

   ```
   python --version
   ```

1. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der pip3-Paket-Manager installiert ist. Wenn Sie in der Befehlsantwort eine Pip-Versionsnummer und Python 3.8 oder höher sehen, bedeutet dies, dass der pip3-Paketmanager erfolgreich installiert wurde.

   ```
   pip --version
   ```

## Schritt 1: Einen S3-Bucket erstellen
<a name="ol-upper-step1"></a>

Erstellen Sie einen Bucket zum Speichern der ursprünglichen Daten, die Sie transformieren möchten. 

**Anmerkung**  
Access Points können für eine andere Datenquelle angehängt werden, z. B. ein Amazon FSx for OpenZFS-Volume. In diesem Tutorial wird jedoch ein unterstützender Access Point verwendet, der an einen S3-Bucket angeschlossen ist.

**So erstellen Sie einen Bucket**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Buckets** aus.

1. Wählen Sie **Create Bucket** (Bucket erstellen) aus. 

   Die Seite **Create bucket** (Bucket erstellen) wird geöffnet.

1. Geben Sie für **Bucket-Name** einen Namen für Ihren Bucket ein (z. B. **tutorial-bucket**). 

   Weitere Informationen zur Benennung von Buckets in Amazon S3 finden Sie unter [Benennungsregeln für Allzweck-Buckets](bucketnamingrules.md).

1. Wählen Sie **unter Region** den AWS-Region Ort aus, an dem sich der Bucket befinden soll. 

   Weitere Informationen zur Bucket-Region finden Sie unter [Übersicht über Allzweck-Buckets](UsingBucket.md).

1. Belassen Sie die **Einstellungen für den öffentlichen Zugriff für diesen Bucket blockieren** bei den Standardeinstellungen (***Alle* öffentlichen Zugriffe blockieren** ist aktiviert). 

   Es wird empfohlen, alle Einstellungen für öffentlichen Zugriff blockieren aktiviert zu belassen, es sei denn, Sie müssen eine oder mehrere dieser Einstellungen für Ihren Anwendungsfall deaktivieren. Weitere Informationen zum Blockieren des öffentlichen Zugriffs finden Sie unter [Blockieren des öffentlichen Zugriffs auf Ihren Amazon-S3-Speicher](access-control-block-public-access.md).

1. Lassen Sie die restlichen Einstellungen auf die Standardwerte eingestellt. 

   (Optional) Informationen zum Konfigurieren zusätzlicher Bucket-Einstellungen für Ihren spezifischen Anwendungsfall finden Sie unter [Erstellen eines Allzweck-Buckets](create-bucket-overview.md).

1. Wählen Sie **Bucket erstellen** aus.

## Schritt 2: Hochladen einer Datei zu einem S3-Bucket
<a name="ol-upper-step2"></a>

Laden Sie die Textdatei zu einem S3-Bucket hoch. Diese Textdatei enthält die Originaldaten, die Sie später in diesem Tutorial in Großbuchstaben umwandeln. 

Sie können beispielsweise eine `tutorial.txt`-Datei, die den folgenden Text enthält, hochladen:

```
Amazon S3 Object Lambda Tutorial:
You can add your own code to process data retrieved from S3 before 
returning it to an application.
```

**Hochladen einer Datei in einen Bucket**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Buckets** aus.

1. Wählen Sie in der Liste **Buckets** den Namen des Buckets aus, den Sie in [Schritt 1](#ol-upper-step1) (z. B. **tutorial-bucket**) erstellt haben, in den Sie die Datei hochladen möchten.

1. Wählen Sie im Tab **Objects (Objekte)** für Ihren Bucket die Option **Upload (Hochladen)** aus.

1. Wählen Sie auf der Seite **Upload** unter **Dateien und Ordner** die Option **Dateien hinzufügen** aus.

1. Wählen Sie eine hochzuladende Datei und dann **Open** (Öffnen) aus. Sie können z. B. das oben erwähnte `tutorial.txt`-Dateibeispiel hochladen.

1. Klicken Sie auf **Upload**.

## Schritt 3: Erstellen eines S3-Zugriffspunkts
<a name="ol-upper-step3"></a>

Um einen S3 Object Lambda Access Point für den Zugriff und die Umwandlung der ursprünglichen Daten zu verwenden, müssen Sie einen S3-Zugriffspunkt erstellen und dem S3-Bucket zuordnen, den Sie in [Schritt 1](#ol-upper-step1) erstellt haben. Der Access Point muss sich in demselben Zustand befinden AWS-Region wie die Objekte, die Sie transformieren möchten.

Später in diesem Tutorial verwenden Sie diesen Zugriffspunkt als unterstützenden Zugriffspunkt für Ihren Object Lambda Access Point. 

**So erstellen Sie einen Zugangspunkt**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Zugriffspunkte** aus.

1. Wählen Sie auf der Seite **Zugriffspunkte** die Option **Zugriffspunkt erstellen** aus.

1. Geben Sie im Feld **Name des Zugriffspunkts** den gewünschten Namen für den Zugriffspunkt ein (z. B. **tutorial-access-point**).

   Weitere Hinweise zur Benennung von Zugangspunkten finden Sie unter [Regeln für die Benennung von Zugangspunkten](access-points-restrictions-limitations-naming-rules.md#access-points-names).

1. Wählen Sie im Feld **Datenquelle** den Namen des Buckets aus, den Sie in [Schritt 1](#ol-upper-step1) (z. B. **tutorial-bucket**) erstellt haben. S3 hängt den Zugriffspunkt an diesen Bucket an. 

   (Optional) Sie können **S3 durchsuchen** auswählen, um die Buckets in Ihrem Konto zu browsen und zu durchsuchen. Wenn Sie **Browse S3 (S3 durchsuchen)** wählen, wählen Sie den gewünschten Bucket aus und dann **Choose path (Pfad wählen)**, um das Feld **Bucket name (Bucket-Name)** mit dem Namen dieses Buckets zu füllen.

1. Wählen Sie für **Netzwerkursprung** **Internet** aus. 

   Weitere Informationen zu Netzwerkursprüngen für Zugangspunkte finden Sie unter [Erstellen von Zugriffspunkten, die auf eine Virtual Private Cloud beschränkt sind](access-points-vpc.md).

1. Alle Block-Public-Access-Einstellungen sind standardmäßig für Zugriffspunkte aktiviert. Sie sollten alle Einstellungen für das **Blockieren *aller* öffentlichen Zugriffe** aktiviert lassen.

   Weitere Informationen finden Sie unter [Verwalten des öffentlichen Zugriffs auf Zugangspunkte für Allzweck-Buckets](access-points-bpa-settings.md).

1. Behalten Sie für alle anderen Zugriffspunktseinstellungen die Standardeinstellungen bei.

   (Optional) Sie können die Zugriffspunktseinstellungen ändern, um Ihren Anwendungsfall zu unterstützen. Für dieses Tutorial empfehlen wir, dass die Standardeinstellungen beibehalten werden. 

   (Optional) Wenn Sie den Zugriff auf Ihren Zugriffspunkt verwalten müssen, können Sie eine Zugriffspunkt-Richtlinie angeben. Weitere Informationen finden Sie unter [Richtlinienbeispiele für Zugangspunkte](access-points-policies.md#access-points-policy-examples). 

1. Wählen Sie **Create access point** (Zugriffspunkt erstellen) aus.

## Schritt 4: Erstellen einer Lambda-Funktion
<a name="ol-upper-step4"></a>

Erstellen Sie zum Transformieren der ursprünglichen Daten eine Lambda-Funktion zur Verwendung mit dem S3 Object Lambda Access Point. 

**Topics**
+ [Schreiben von Lambda-Funktionscode und Erstellen eines Bereitstellungspakets mit einer virtuellen Umgebung](#ol-upper-step4-write-lambda)
+ [Erstellen einer Lambda-Funktion mit einer Ausführungsrolle (Konsole)](#ol-upper-step4-create-function)
+ [Stellen Sie Ihren Lambda-Funktion-Code mit ZIP-Dateiarchiven bereit und konfigurieren Sie die Lambda-Funktion (Konsole)](#ol-upper-step4-deploy-function)

### Schreiben von Lambda-Funktionscode und Erstellen eines Bereitstellungspakets mit einer virtuellen Umgebung
<a name="ol-upper-step4-write-lambda"></a>

1. Erstellen Sie auf dem lokalen Computer einen Ordner mit dem Ordnernamen `object-lambda` für die virtuelle Umgebung, die Sie zu einem späteren Zeitpunkt in diesem Tutorial verwenden können.

1. Erstellen Sie im `object-lambda`-Ordner eine Datei mit einer Lambda-Funktion, die den gesamten Text im ursprünglichen Objekt in Großbuchstaben ändert. Sie können z. B. die folgende Funktion verwenden, die in Python geschrieben wurde. Speichern Sie diese Funktion in einer Datei mit dem Namen`transform.py`. 

   ```
   import boto3
   import requests
   from botocore.config import Config
   
   # This function capitalizes all text in the original object
   def lambda_handler(event, context):
       object_context = event["getObjectContext"]
       # Get the presigned URL to fetch the requested original object 
       # from S3
       s3_url = object_context["inputS3Url"]
       # Extract the route and request token from the input context
       request_route = object_context["outputRoute"]
       request_token = object_context["outputToken"]
       
       # Get the original S3 object using the presigned URL
       response = requests.get(s3_url)
       original_object = response.content.decode("utf-8")
   
       # Transform all text in the original object to uppercase
       # You can replace it with your custom code based on your use case
       transformed_object = original_object.upper()
   
       # Write object back to S3 Object Lambda
       s3 = boto3.client('s3', config=Config(signature_version='s3v4'))
       # The WriteGetObjectResponse API sends the transformed data
       # back to S3 Object Lambda and then to the user
       s3.write_get_object_response(
           Body=transformed_object,
           RequestRoute=request_route,
           RequestToken=request_token)
   
       # Exit the Lambda function: return the status code  
       return {'status_code': 200}
   ```
**Anmerkung**  
Die vorangehende Lambda-Beispielfunktion lädt das gesamte angeforderte Objekt in den Speicher, bevor es transformiert und an den Client zurückgegeben wird. Alternativ können Sie das Objekt aus S3 streamen, um das Laden des gesamten Objekts in den Speicher zu vermeiden. Diese Methode ist nützlich, wenn Sie mit großen Objekten arbeiten. Weitere Informationen zum Streamen von Antworten mit Object Lambda Access Points finden Sie in den Streaming-Beispielen in [Arbeiten mit `GetObject`-Anforderungen in Lambda](olap-writing-lambda.md#olap-getobject-response).

   Wenn Sie eine Lambda-Funktion für die Verwendung mit einem S3 Object Lambda Access Point schreiben, basiert die Funktion auf dem Eingabe-Ereigniskontext, den S3 Object Lambda für die Lambda-Funktion bereitstellt. Der Ereigniskontext stellt Informationen über die Anforderung bereit, die in dem von S3 Object Lambda an Lambda übergebenen Ereignis gestellt wird. Sie enthält die Parameter, die Sie verwenden, um die Lambda-Funktion zu erstellen.

   Die Felder, die zum Erstellen der vorhergehenden Lambda-Funktion verwendet werden, lauten wie folgt: 

   Das Feld von `getObjectContext` bezeichnet die Eingabe- und Ausgabedetails für Verbindungen zu Amazon S3 und S3 Object Lambda. Es enthält die folgenden Felder:
   + `inputS3Url` – Eine vorsignierte URL, mit der die Lambda-Funktion das ursprüngliche Objekt vom unterstützenden Zugriffspunkt herunterladen kann. Wenn Sie eine vorsignierte URL verwenden, benötigt die Lambda-Funktion keine Amazon S3-Leseberechtigungen, um das ursprüngliche Objekt abzurufen, und kann nur auf das Objekt zugreifen, das von jedem Aufruf verarbeitet wird.
   + `outputRoute` – Ein Routing-Token, das der Lambda-URL des S3-Objekts hinzugefügt wird, wenn die Lambda-Funktion `WriteGetObjectResponse` aufruft, um das transformierte Objekt zurückzusenden.
   + `outputToken` – Ein Token, das von S3 Object Lambda verwendet wird, um den `WriteGetObjectResponse`-Aufruf mit dem ursprünglichen Anrufer abzugleichen, wenn das transformierte Objekt zurücksendet wird.

   Weitere Informationen zu allen Feldern im Ereigniskontext finden Sie unter [Format und Verwendung des Ereigniskontexts](olap-event-context.md) und [Schreiben von Lambda-Funktionen für S3 Object Lambda Access Points](olap-writing-lambda.md).

1. Geben Sie in Ihrem lokalen Terminal den folgenden Befehl ein, um das `virtualenv`-Paket zu installieren:

   ```
   python -m pip install virtualenv
   ```

1. Öffnen Sie in Ihrem lokalen Terminal den `object-lambda`-Ordner, den Sie zuvor erstellt haben und geben Sie dann den folgenden Befehl ein, um eine virtuelle Umgebung namens `venv` zu erstellen und zu initialisieren.

   ```
   python -m virtualenv venv
   ```

1. Geben Sie zum Aktivieren der virtuellen Umgebung den folgenden Befehl ein, um die `activate`-Datei aus dem Ordner der Umgebung auszuführen:

   Führen Sie für **macOS-Benutzer** diesen Befehl aus:

   ```
   source venv/bin/activate
   ```

   Führen Sie für **Windows-Benutzer** diesen Befehl aus:

   ```
   .\venv\Scripts\activate
   ```

   Jetzt ändert sich die Eingabeaufforderung und zeigt **(venv)** an, was darauf hinweist, dass die virtuelle Umgebung aktiv ist.

1. Um die erforderlichen Bibliotheken zu installieren, führen Sie die folgenden Befehle Zeile für Zeile in der virtuellen `venv`-Umgebung aus.

   Mit diesen Befehlen werden aktualisierte Versionen der Abhängigkeiten Ihrer `lambda_handler`-Lambda -Funktion installiert. Diese Abhängigkeiten sind die AWS -SDK for Python (Boto3)- und Requests-Module.

   ```
   pip3 install boto3
   ```

   ```
   pip3 install requests
   ```

1. Sie können die virtuelle Umgebung deaktivieren, indem Sie den folgenden Befehl ausführen:

   ```
   deactivate
   ```

1. Um ein Bereitstellungspaket mit den installierten Bibliotheken als `.zip`-Datei mit dem Namen `lambda.zip` an der Wurzel des `object-lambda`-Verzeichnisses zu erstellen, führen Sie die folgenden Befehle Zeile für Zeile in Ihrem lokalen Terminal aus.
**Tipp**  
Die folgenden Befehle müssen möglicherweise angepasst werden, um in Ihrer bestimmten Umgebung zu funktionieren. Eine Bibliothek kann beispielsweise in `site-packages` oder `dist-packages` erscheinen, und der erste Ordner könnte `lib` oder `lib64` sein. Außerdem kann der Ordner `python` mit einer anderen Python-Version benannt werden. Sie können den Befehl `pip show` verwenden, um ein spezielles Paket zu finden.

   Führen Sie für **macOS-Benutzer** diese Befehle aus:

   ```
   cd venv/lib/python3.8/site-packages 
   ```

   ```
   zip -r ../../../../lambda.zip .
   ```

   Führen Sie für **Windows-Benutzer** diese Befehle aus:

   ```
   cd .\venv\Lib\site-packages\ 
   ```

   ```
   powershell Compress-Archive * ../../../lambda.zip
   ```

   Der letzte Befehl speichert das Bereitstellungspaket im Stamm des `object-lambda`-Verzeichnisses.

1. Fügen Sie dem Stamm Ihres Bereitstellungspakets die Funktionscode-Datei `transform.py` hinzu.

   Führen Sie für **macOS-Benutzer** diese Befehle aus:

   ```
   cd ../../../../ 
   ```

   ```
   zip -g lambda.zip transform.py
   ```

   Führen Sie für **Windows-Benutzer** diese Befehle aus: 

   ```
   cd ..\..\..\
   ```

   ```
   powershell Compress-Archive -update transform.py lambda.zip
   ```

   Nach diesem Schritt sollte Ihre Verzeichnisstruktur wie folgt aussehen:

   ```
   lambda.zip$
     │ transform.py
     │ __pycache__
     | boto3/
     │ certifi/
     │ pip/
     │ requests/
     ...
   ```

### Erstellen einer Lambda-Funktion mit einer Ausführungsrolle (Konsole)
<a name="ol-upper-step4-create-function"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Lambda Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

   

1. Wählen Sie im linken Navigationsbereich die Option **Functions** (Funktionen) aus.

1. Wählen Sie **Create function** (Funktion erstellen).

1. Wählen Sie **Author from scratch** aus.

1. Führen Sie unter **Basic information** (Grundlegende Informationen) die folgenden Schritte aus:

   1. Geben Sie für **Function name** (Funktionsname) **tutorial-object-lambda-function** ein.

   1. Wählen Sie für **Laufzeit** **Python 3.8** oder eine höhere Version aus.

1. Erweitern Sie den Abschnitt **Ändern der standardmäßigen Ausführungsrolle**. Wählen Sie in **Execution role (Ausführungsrolle)** die Option **Create a new role with basic Lambda permissions (Neue Rolle mit Lambda-Basisberechtigungen erstellen)** aus.

   In [Schritt 5](#ol-upper-step5) weiter unten in diesem Tutorial fügen Sie **AmazonS3 der Ausführungsrolle ObjectLambdaExecutionRolePolicy** dieser Lambda-Funktion hinzu. 

1. Lassen Sie die restlichen Einstellungen bei den Standardwerten.

1. Wählen Sie **Funktion erstellen**.

### Stellen Sie Ihren Lambda-Funktion-Code mit ZIP-Dateiarchiven bereit und konfigurieren Sie die Lambda-Funktion (Konsole)
<a name="ol-upper-step4-deploy-function"></a>

1. Wählen Sie in der AWS Lambda Konsole [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)unter im linken **Navigationsbereich Funktionen** aus. 

1. Wählen Sie die Lambda-Funktion aus, die Sie zuvor erstellt haben (z. B **tutorial-object-lambda-function**). 

1. Wählen Sie auf der Seite mit den Details der Lambda-Funktion den **Code**-Tab. Wählen Sie im Abschnitt **Quellcode** die Option **Upload von** und dann **ZIP-Datei** aus.

1. Wählen Sie **Upload (Hochladen)** aus, um Ihre lokale `.zip`-Datei auszuwählen.

1. Wählen Sie die zuvor erstellte `lambda.zip`-Datei und klicken Sie dann auf **Öffnen**.

1. Wählen Sie **Speichern** aus.

1. Wählen Sie im Abschnitt **Laufzeiteinstellungen** die Option**Bearbeiten** aus. 

1. Bestätigen Sie auf der Seite **Bearbeiten von Laufzeiteinstellungen**, dass **Laufzeit** auf **Python 3.8** oder eine höhere Version gesetzt wird. 

1. Um der Lambda-Laufzeit mitzuteilen, welche Handler-Methode in Ihrem Lambda-Funktionscode aufgerufen werden soll, geben Sie **transform.lambda\$1handler** für **Handler** ein.

   Wenn Sie eine Funktion in Python konfigurieren, besteht der Wert der Handler-Einstellung aus dem Dateinamen und dem Namen des Handler-Moduls, getrennt durch einen Punkt. Beispielsweise ruft `transform.lambda_handler` die `lambda_handler`-Methode auf, die in der `transform.py`-Datei definiert ist.

1. Wählen Sie **Speichern**.

1. (Optional) Wählen Sie auf der Detailseite der Lambda-Funktion den **Konfiguration**-Tab. Wählen Sie im linken Navigationsbereich die Option**Allgemeine Konfiguration** und anschließend **Bearbeiten** aus. Geben Sie im **Timeout**-Feld **1** m **0** s ein. Lassen Sie die restlichen Einstellungen auf die Standardwerte eingestellt und wählen Sie **Speichern** aus.

   **Timeout** ist die Zeitspanne, die Lambda einer Funktion für einen Aufruf zulässt, bevor diese gestoppt wird. Der Standardwert ist 3 Sekunden. Die maximale Dauer für eine Lambda-Funktion, die von S3 Object Lambda verwendet wird, beträgt 60 Sekunden. Die Preise basieren auf dem konfigurierten Arbeitsspeicher und der Zeit, für die der Code ausgeführt wird.

## Schritt 5: Konfigurieren einer IAM-Richtlinie für die Ausführungsrolle Ihrer Lambda-Funktion
<a name="ol-upper-step5"></a>

Damit Ihre Lambda-Funktion benutzerdefinierte Daten- und Antwort-Header für den `GetObject`-Anrufer aktiviert, muss die Ausführungsrolle Ihrer Lambda-Funktion IAM-Berechtigungen besitzen, um die `WriteGetObjectResponse`-API anzurufen.

**So fügen Sie eine IAM-Richtlinie an Ihre Lambda-Funktionsrolle an**



1. Wählen Sie in der AWS Lambda Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)im linken Navigationsbereich **Funktionen** aus. 

1. Wählen Sie die Funktion aus, die Sie in [Schritt ](#ol-upper-step4)4 erstellt haben (z. B. **tutorial-object-lambda-function**).

1. Wählen Sie auf der Detailseite Ihrer Lambda-Funktion den Tag **Konfiguration** und danach **Berechtigungen** im linken Navigationsbereich. 

1. Wählen Sie unter **Ausführungsrolle** im Bereich den Link des **Rollennamens** aus. Die IAM-Konsole wird geöffnet. 

1. Wählen Sie auf der Seite **Summary** (Übersicht) der IAM-Konsole für die Ausführungsrolle Ihrer Lambda-Funktion die Registerkarte **Permissions** (Berechtigungen) aus. Wählen Sie dann im Menü **Add Permissions** (Berechtigungen hinzufügen) die Option **Attach policies** (Richtlinien anfügen) aus.

1. Geben Sie auf der Seite **Attach permissions (Berechtigungen anfügen)** **AmazonS3ObjectLambdaExecutionRolePolicy** in das Suchfeld ein, um die Liste der Richtlinien zu filtern. Aktivieren Sie das Kontrollkästchen neben dem Namen der **AmazonS3-Richtlinie ObjectLambdaExecutionRolePolicy**. 

1. Wählen Sie **Richtlinien anfügen**. 

## Schritt 6: Erstellen eines S3 Object Lambda Access Point
<a name="ol-upper-step6"></a>

Ein S3 Object Lambda Access Point bietet die Flexibilität, eine Lambda-Funktion direkt aus einer S3-GET-Anforderung aufzurufen, sodass die Funktion Daten verarbeiten kann, die von einem S3-Zugriffspunkt abgerufen wurden. Beim Erstellen und Konfigurieren eines S3 Object Lambda Access Point müssen Sie die Lambda-Funktion angeben, um den Ereigniskontext im JSON-Format als benutzerdefinierte Parameter für Lambda zu verwenden.

**So erstellen Sie einen S3 Object Lambda Access Point**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Objekt-Lambda-Zugriffspunkte** aus.

1. Wählen Sie auf der Seite **Object Lambda access points (Objekt-Lambda-Zugriffspunkte)** die Option **Create Object Lambda access point (Objekt-Lambda-Zugriffspunkt erstellen)**.

1. Geben Sie unter **Name des Objekt-Lambda-Access Point** den Namen ein, den Sie für den Object Lambda Access Point verwenden möchten (z. B. **tutorial-object-lambda-accesspoint**). 

1. Geben Sie für **Unterstützenden Zugangspunkt** den Standardzugangspunkt ein, den Sie in [Schritt 3](#ol-upper-step3) erstellt haben (z. B. **tutorial-access-point**), oder navigieren Sie zu diesem Zugangspunkt und wählen dann **Unterstützenden Zugangspunkt auswählen** aus. 

1. Um für **S3** Objekte aus dem S3-Bucket abzurufen APIs, damit die Lambda-Funktion sie verarbeiten kann, wählen Sie **GetObject**.

1. Für die **Funktion Lambda aufrufen** können Sie eine der beiden folgenden Optionen für dieses Tutorial auswählen. 
   + Wählen Sie **Wählen Sie aus Funktionen in Ihrem Konto** und wählen Sie die Lambda-Funktion aus, die Sie in [Schritt 4](#ol-upper-step4) (z. B. **tutorial-object-lambda-function**) aus der **Lambda-Funktion**-Dropdown-Liste erstellt haben.
   + Wählen Sie **ARN eingeben** und geben Sie dann den Amazon-Ressourcennamen (ARN) der Lambda-Funktion ein, die Sie in [Schritt 4](#ol-upper-step4) erstellt haben.

1. Wählen Sie für **Versioning der Lambda-Funktion**, **\$1LATEST** (die neueste Version der Lambda-Funktion, die Sie in [Schritt 4](#ol-upper-step4) erstellt haben).

1. (Optional) Wenn Sie Ihre Lambda-Funktion benötigen, um GET-Anforderungen mit Bereichs- und Teilenummern-Headern zu erkennen und zu bearbeiten, wählen Sie **Lambda-Funktion unterstützt Anforderungen mit Bereich** und **Lambda-Funktion unterstützt Anforderungen mit Teilenummern** aus. Deaktivieren Sie andernfalls diese beiden Kontrollkästchen.

   Weitere Informationen zur Verwendung von Bereichs- oder Teilenummern mit S3 Object Lambda finden Sie unter [Arbeiten mit Range- und partNumber-Headern](range-get-olap.md).

1. (Optional) Fügen Sie unter **Nutzlast – *optional*** JSON-Text hinzu, um Ihrer Lambda-Funktion zusätzliche Informationen bereitzustellen.

   Eine Nutzlast ist ein optionaler JSON-Text, den Sie Ihrer Lambda-Funktion als Eingabe für alle Aufrufe bereitstellen können, die von einem spezifischen S3 Object Lambda Access Point stammen. Um das Verhalten für mehrere Object Lambda Access Points anzupassen, die dieselbe Lambda-Funktion aufrufen, können Sie Nutzlasten mit unterschiedlichen Parametern konfigurieren und so die Flexibilität Ihrer Lambda-Funktion erweitern.

   Weitere Informationen zur Nutzlast finden Sie unter [Format und Verwendung des Ereigniskontexts](olap-event-context.md).

1. (Optional) Wählen Sie für **Anforderungsmetriken – *optional*** die Option **Deaktivieren** oder **Aktivieren** aus, um die Amazon-S3-Überwachung zu Ihrem Object-Lambda-Zugangspunkt hinzuzufügen. Anforderungsmetriken werden zum CloudWatch Standardtarif von Amazon abgerechnet. Weitere Informationen finden Sie unter [CloudWatch Preise](https://aws.amazon.com/cloudwatch/pricing/).

1. Behalten Sie unter **Objekt-Lambda-Zugriffspunkt-Richtlinie - *optional*** die Standardeinstellung bei. 

   (Optional) Sie können eine Ressourcenrichtlinie festlegen. Diese Ressourcenrichtlinie erteilt der `GetObject`-API die Berechtigung zur Verwendung des angegebenen Object Lambda Access Point.

1. Lassen Sie die restlichen Einstellungen auf die Standardwerte eingestellt und klicken Sie auf **Erstellen eines Objekt-Lambda-Zugriffspunkts**.

## Schritt 7: Anzeigen der transformierten Daten
<a name="ol-upper-step7"></a>

Jetzt ist S3 Object Lambda bereit, Ihre Daten für Ihren Anwendungsfall zu transformieren. In diesem Tutorial wandelt S3 Object Lambda den gesamten Text in Ihrem Objekt in Großbuchstaben um.

**Topics**
+ [Zeigen Sie die transformierten Daten in Ihrem S3 Object Lambda Access Point an](#ol-upper-step7-check-data)
+ [Ausführen eines Python-Skripts zum Drucken der ursprünglichen und transformierten Daten](#ol-upper-step7-python-print)

### Zeigen Sie die transformierten Daten in Ihrem S3 Object Lambda Access Point an
<a name="ol-upper-step7-check-data"></a>

Wenn Sie eine Datei über Ihren S3 Object Lambda Access Point abrufen möchten, führen Sie einen `GetObject`-API-Aufruf für S3 Object Lambda aus. S3 Object Lambda ruft die Lambda-Funktion auf, um Ihre Daten zu transformieren und gibt dann die transformierten Daten als Antwort auf die Standard-S3-`GetObject` API-Aufrufe.

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Objekt-Lambda-Zugriffspunkte** aus.

1. Wählen Sie auf der Seite **Objekt-Lambda-Zugriffspunkte** den S3 Object Lambda Access Point aus, den Sie in [Schritt 6](#ol-upper-step6) erstellt haben (z. B. **tutorial-object-lambda-accesspoint**).

1. Wählen Sie auf der Registerkarte **Objekte** Ihres S3 Object Lambda Access Point die Datei mit dem gleichen Namen (z. B. `tutorial.txt`) wie diejenige aus, die Sie in [Schritt 2](#ol-upper-step2) in den S3-Bucket hochgeladen haben. 

   Diese Datei sollte alle transformierten Daten enthalten.

1. Um die transformierten Daten anzuzeigen, wählen Sie **Öffnen** oder **Herunterladen** aus.

### Ausführen eines Python-Skripts zum Drucken der ursprünglichen und transformierten Daten
<a name="ol-upper-step7-python-print"></a>

Sie können S3 Object Lambda mit Ihren vorhandenen Anwendungen verwenden. Aktualisieren Sie dazu Ihre Anwendungskonfiguration, um den ARN des neuen S3 Object Lambda Access Point zu verwenden, den Sie in [Schritt 6](#ol-upper-step6) erstellt haben, um Daten aus S3 abzurufen.

Das folgende Python-Beispielskript druckt sowohl die ursprünglichen Daten aus dem S3-Bucket als auch die transformierten Daten aus dem S3 Object Lambda Access Point. 

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Objekt-Lambda-Zugriffspunkte** aus.

1. Wählen Sie auf der Seite **Objekt-Lambda-Zugriffspunkte** die Optionsschaltfläche links neben dem S3 Object Lambda Access Point aus, den Sie in [Schritt 6](#ol-upper-step6) erstellt haben (z. B. **tutorial-object-lambda-accesspoint**).

1. Klicken Sie auf **ARN kopieren**.

1. Speichern Sie den ARN zur späteren Verwendung.

1. Schreiben Sie ein Python-Skript auf Ihrem lokalen Computer, um sowohl die ursprünglichen Daten aus Ihrem S3-Bucket (z. B. `tutorial.txt`) als auch die transformierten Daten aus Ihrem S3 Object Lambda Access Point (z. B. `tutorial.txt`) zu drucken. Sie können folgendes Beispiel-Skript nutzen. 

   ```
   import boto3
   from botocore.config import Config
   
   s3 = boto3.client('s3', config=Config(signature_version='s3v4'))
   
   def getObject(bucket, key):
       objectBody = s3.get_object(Bucket = bucket, Key = key)
       print(objectBody["Body"].read().decode("utf-8"))
       print("\n")
   
   print('Original object from the S3 bucket:')
   # Replace the two input parameters of getObject() below with 
   # the S3 bucket name that you created in Step 1 and 
   # the name of the file that you uploaded to the S3 bucket in Step 2
   getObject("tutorial-bucket", 
             "tutorial.txt")
   
   print('Object transformed by S3 Object Lambda:')
   # Replace the two input parameters of getObject() below with 
   # the ARN of your S3 Object Lambda Access Point that you saved earlier and
   # the name of the file with the transformed data (which in this case is
   # the same as the name of the file that you uploaded to the S3 bucket 
   # in Step 2)
   getObject("arn:aws:s3-object-lambda:us-west-2:111122223333:accesspoint/tutorial-object-lambda-accesspoint",
             "tutorial.txt")
   ```

1. Speichern Sie Ihr Python-Skript unter einem benutzerdefinierten Namen (z. B. `tutorial_print.py`) im Ordner (z. B. `object-lambda`), den Sie in [Schritt 4](#ol-upper-step4) auf Ihrem lokalen Computer erstellt haben.

1. Führen Sie in Ihrem lokalen Terminal den folgenden Befehl vom Stamm des Verzeichnisses aus (z. B. `object-lambda`), das Sie in[Schritt 4](#ol-upper-step4) erstellt haben.

   ```
   python3 tutorial_print.py
   ```

   Sie sollten sowohl die ursprünglichen Daten als auch die transformierten Daten (alle Texte in Großbuchstaben) über das Terminal sehen. z. B. sollten Sie etwas wie den folgenden Text sehen.

   ```
   Original object from the S3 bucket:
   Amazon S3 Object Lambda Tutorial:
   You can add your own code to process data retrieved from S3 before 
   returning it to an application.
   
   Object transformed by S3 Object Lambda:
   AMAZON S3 OBJECT LAMBDA TUTORIAL:
   YOU CAN ADD YOUR OWN CODE TO PROCESS DATA RETRIEVED FROM S3 BEFORE 
   RETURNING IT TO AN APPLICATION.
   ```

## Schritt 8: Bereinigen
<a name="ol-upper-step8"></a>

Wenn Sie Ihre Daten über S3 Object Lambda nur als Tutorial transformiert haben, löschen Sie die AWS -Ressourcen, die Sie zugewiesen haben, damit keine Gebühren mehr anfallen. 

**Topics**
+ [Löschen des Object Lambda Access Point](#ol-upper-step8-delete-olap)
+ [Löschen des S3-Zugriffspunkts](#ol-upper-step8-delete-ap)
+ [Löschen der Ausführungsrolle für Ihre Lambda-Funktion](#ol-upper-step8-delete-lambda-role)
+ [Löschen Sie die Lambda-Funktion](#ol-upper-step8-delete-lambda-function)
+ [Löschen Sie die CloudWatch Protokollgruppe](#ol-upper-step8-delete-cloudwatch)
+ [Löschen Sie die Originaldatei im S3-Quell-Bucket](#ol-upper-step8-delete-file)
+ [Löschen des S3-Quell-Bucket](#ol-upper-step8-delete-bucket)
+ [Löschen des IAM-Benutzers](#ol-upper-step8-delete-user)

### Löschen des Object Lambda Access Point
<a name="ol-upper-step8-delete-olap"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Objekt-Lambda-Zugriffspunkte** aus.

1. Wählen Sie auf der Seite **Objekt-Lambda-Zugriffspunkte** die Optionsschaltfläche links neben dem S3 Object Lambda Access Point aus, den Sie in [Schritt 6](#ol-upper-step6) erstellt haben (z. B. **tutorial-object-lambda-accesspoint**).

1. Wählen Sie **Löschen** aus.

1. Bestätigen Sie, dass Sie Ihren Object Lambda Access Point löschen möchten, indem Sie den Namen in das angezeigte Textfeld eingeben und dann **Löschen** wählen.

### Löschen des S3-Zugriffspunkts
<a name="ol-upper-step8-delete-ap"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Zugriffspunkte** aus.

1. Navigieren Sie zu dem Zugriffspunkt, den Sie in [Schritt 3](#ol-upper-step3) (z. B. **tutorial-access-point**) erstellt haben, und wählen Sie die Schaltfläche neben dem Namen des Zugriffspunkts aus.

1. Wählen Sie **Löschen** aus.

1. Bestätigen Sie, dass Sie Ihren Zugriffspunkt löschen möchten, indem Sie den Namen in das angezeigte Textfeld eingeben und dann **Delete (Löschen)** wählen.

### Löschen der Ausführungsrolle für Ihre Lambda-Funktion
<a name="ol-upper-step8-delete-lambda-role"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Lambda Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Wählen Sie im linken Navigationsbereich die Option **Funktionen** aus.

1. Wählen Sie die Funktion aus, die Sie in [Schritt ](#ol-upper-step4)4 erstellt haben (z. B. **tutorial-object-lambda-function**).

1. Wählen Sie auf der Detailseite Ihrer Lambda-Funktion den Tag **Konfiguration** und danach **Berechtigungen** im linken Navigationsbereich. 

1. Wählen Sie unter **Ausführungsrolle** im Bereich den Link des **Rollennamens** aus. Die IAM-Konsole wird geöffnet.

1. Wählen Sie auf der Seite **Übersicht** der IAM-Konsole Ihrer Ausführungsrolle der Lambda-Funktion **Rolle löschen** aus.

1. Klicken Sie im Dialogfeld auf **Rolle löschen** und anschließend auf **Ja, löschen**.

### Löschen Sie die Lambda-Funktion
<a name="ol-upper-step8-delete-lambda-function"></a>

1. Wählen Sie in der AWS Lambda Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)im linken Navigationsbereich **Funktionen** aus. 

1. Aktivieren Sie das Kontrollkästchen links neben dem Namen der Funktion, die Sie im Abschnitt [Schritt 4](#ol-upper-step4) (z. B. **tutorial-object-lambda-function**) erstellt haben.

1. Wählen Sie **Actions** (Aktionen) und anschließend **Delete** (Löschen).

1. Wählen Sie im Bestätigungsdialogfeld **Delete** (Löschen) die Option **Delete** (Löschen) aus.

### Löschen Sie die CloudWatch Protokollgruppe
<a name="ol-upper-step8-delete-cloudwatch"></a>

1. Öffnen Sie die CloudWatch Konsole unter [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Wählen Sie im linken Navigationsbereich **Log groups (Protokollgruppen)** aus.

1. Suchen Sie die Protokollgruppe, deren Name mit der Lambda-Funktion endet, die Sie in [Schritt 4](#ol-upper-step4) (z. B. **tutorial-object-lambda-function**) erstellt haben.

1. Aktivieren Sie das Kontrollkästchen links neben dem Namen der Protokollgruppe.

1. Wählen Sie **Actions (Aktionen)** und dann **Delete log group(s) (Protokollgruppe(n) löschen)** aus.

1. Wählen Sie im Dialogfeld **Delete log group(s)** (Protokollgruppe(n) löschen) die Option **Delete** (Löschen) aus.

### Löschen Sie die Originaldatei im S3-Quell-Bucket
<a name="ol-upper-step8-delete-file"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich die Option **Buckets** aus.

1. Wählen Sie in der Liste **Bucket-Name** den Namen des Buckets aus, in den Sie die Originaldatei in [Schritt 2](#ol-upper-step2) (z. B. **tutorial-bucket**) hochgeladen haben.

1. Markieren Sie das Kontrollkästchen links neben dem Namen des Objekts, das Sie löschen möchten (z. B. `tutorial.txt`).

1. Wählen Sie **Löschen** aus.

1. Bestätigen Sie auf der Seite **Löschen von Objekten** im Abschnitt **Objekte endgültig löschen?**, dass Sie dieses Objekt löschen möchten, indem Sie **permanently delete** im Textfeld eingeben.

1. Wählen Sie **Objekte löschen** aus.

### Löschen des S3-Quell-Bucket
<a name="ol-upper-step8-delete-bucket"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich die Option **Buckets** aus.

1. Wählen Sie in der Liste **Buckets** die Optionsschaltfläche neben dem Namen des Buckets aus, den Sie in [Schritt 1](#ol-upper-step1) (z. B. **tutorial-bucket**) erstellt haben.

1. Wählen Sie **Löschen** aus.

1. Bestätigen Sie auf der Seite **Delete bucket (Bucket löschen)**, dass Sie den Bucket löschen möchten. Geben Sie dazu den Bucket-Namen in das Textfeld ein und wählen Sie **Delete bucket (Bucket löschen)**.

### Löschen des IAM-Benutzers
<a name="ol-upper-step8-delete-user"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die IAM-Konsole unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Wählen Sie im linken Navigationsbereich **Benutzer**, und aktivieren Sie dann das Kontrollkästchen neben dem Benutzer, den Sie löschen möchten.

1. Wählen Sie oben auf der Seite **Delete (Löschen)** aus.

1. Im Bereich **Löschen? *user name*** Geben Sie im Dialogfeld den Benutzernamen in das Texteingabefeld ein, um das Löschen des Benutzers zu bestätigen. Wählen Sie **Löschen** aus.

## Nächste Schritte
<a name="ol-upper-next-steps"></a>

Nach Abschluss dieses Tutorials können Sie die Lambda-Funktion für Ihren Anwendungsfall anpassen, um die von Standard-S3-GET-Anforderungen zurückgegebenen Daten zu ändern.

Im Folgenden finden Sie eine Liste der häufigsten Anwendungsfälle für S3 Object Lambda:
+ Maskierung sensibler Daten für Sicherheit und Compliance.

  Weitere Informationen finden Sie unter [Tutorial: Erkennen und Redigieren von PII-Daten mit S3 Object Lambda und Amazon Comprehend](tutorial-s3-object-lambda-redact-pii.md).
+ Filtern bestimmter Datenzeilen, um bestimmte Informationen bereitzustellen.
+ Erweitern von Daten mit Informationen aus anderen Diensten oder Datenbanken.
+ Konvertierung über Datenformate hinweg, z. B. das Konvertieren von XML in JSON zur Anwendungskompatibilität.
+ Komprimieren oder Dekomprimieren von Dateien, während sie heruntergeladen werden.
+ Größenänderung und Wasserzeichen für Bilder.

  Weitere Informationen finden Sie unter [Tutorial: Verwenden von S3 Object Lambda, um Bilder beim Abrufen dynamisch mit Wasserzeichen zu versehen](https://aws.amazon.com/getting-started/hands-on/amazon-s3-object-lambda-to-dynamically-watermark-images/?ref=docs_gateway/amazons3/tutorial-s3-object-lambda-uppercase.html).
+ Implementieren benutzerdefinierter Autorisierungsregeln für den Zugriff auf Daten.

Weitere Informationen zu S3 Object Lambda finden Sie unter [Transformieren von Objekten mit S3 Object Lambda](transforming-objects.md).

# Tutorial: Erkennen und Redigieren von PII-Daten mit S3 Object Lambda und Amazon Comprehend
<a name="tutorial-s3-object-lambda-redact-pii"></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).

Wenn Sie Amazon S3 für gemeinsam genutzte Datensätze für mehrere Anwendungen und Benutzer verwenden, die darauf zugreifen können, ist es wichtig, privilegierte Informationen wie persönlich identifizierbare Informationen (PII) nur auf autorisierte Entitäten zu beschränken. Wenn beispielsweise eine Marketing-Anwendung einige Daten verwendet, die PII enthalten, müssen möglicherweise zuerst PII-Daten maskiert werden, um die Datenschutzanforderungen zu erfüllen. Wenn eine Analytikanwendung ein Bestandsdatensatz für Produktionsaufträge verwendet, muss sie möglicherweise zuerst die Kreditkarteninformationen des Kunden überarbeiten, um unbeabsichtigte Datenverluste zu verhindern.

Mit [S3 Object Lambda](https://aws.amazon.com/s3/features/object-lambda) und eine vorgefertigte AWS Lambda -Funktion, die von Amazon Comprehend unterstützt wird, können Sie PII-Daten schützen, die von S3 abgerufen wurden, bevor Sie sie an eine Anwendung zurückgeben. Insbesondere können Sie die vorgefertigte [Lambda-Funktion](https://aws.amazon.com/lambda/) als Redigierungsfunktion nutzen und sie an einen S3 Object Lambda Access Point anfügen. Wenn eine Anwendung (z. B. eine Analytik-Anwendung) [S3-GET-Standardanforderungen](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) sendet, rufen diese Anforderungen über den S3 Object Lambda Zugangspunkt die vordefinierte redigierende Lambda-Funktion auf, um PII-Daten, die über einen unterstützenden S3-Zugangspunkt aus einer zugrunde liegenden Datenquelle abgerufen wurden, zu erkennen und zu redigieren. Dann gibt der S3 Object Lambda Access Point das redigierte Ergebnis zurück an die Anwendung aus.

![\[Dies ist ein S3 Object Lambda-Workflow-Diagramm.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/ol-comprehend-image-global.png)


In diesem Prozess verwendet die vorgefertigte Lambda-Funktion [Amazon Comprehend](https://aws.amazon.com/comprehend/), eine natürliche Sprachverarbeitung (NLP), um Variationen in der Darstellung von PII zu erfassen, unabhängig davon, wie PII im Text vorhanden sind (z. B. numerisch oder als Kombination aus Wörtern und Zahlen). Amazon Comprehend kann sogar Kontext im Text verwenden, um zu verstehen, ob eine vierstellige Zahl eine PIN, die letzten vier Zahlen einer Sozialversicherungsnummer (SSN) oder ein Jahr ist. Amazon Comprehend verarbeitet jede Textdatei im UTF-8-Format und kann PII skaliert schützen, ohne die Genauigkeit zu beeinträchtigen. Weitere Informationen finden Sie unter [Was ist Amazon Comprehend?](https://docs.aws.amazon.com/comprehend/latest/dg/what-is.html) im *Entwicklerhandbuch für Amazon Comprehend*.

**Ziel**  
In diesem Tutorial erfahren Sie, wie Sie S3 Object Lambda mit der vordefinierten Lambda-Funktion `ComprehendPiiRedactionS3ObjectLambda` verwenden. Diese Funktion verwendet Amazon Comprehend, um PII-Entitäten zu erkennen. Diese Entitäten werden dann durch Sternchen ersetzt. Durch das Redigieren von PII verbergen Sie sensible Daten, die bei Sicherheit und Compliance helfen können.

Sie lernen auch, wie Sie eine vorgefertigte AWS Lambda Funktion verwenden und konfigurieren, [AWS Serverless Application Repository](https://aws.amazon.com/serverless/serverlessrepo/)um mit S3 Object Lambda für eine einfache Bereitstellung zusammenzuarbeiten. 

**Topics**
+ [Voraussetzungen: Erstellen Sie einen IAM-Benutzer mit Berechtigungen](#ol-pii-prerequisites)
+ [Schritt 1: Einen S3-Bucket erstellen](#ol-pii-step1)
+ [Schritt 2: Hochladen einer Datei zu einem S3-Bucket](#ol-pii-step2)
+ [Schritt 3: Erstellen eines S3-Zugriffspunkts](#ol-pii-step3)
+ [Schritt 4: Konfigurieren und Bereitstellen einer vordefinierten Lambda-Funktion](#ol-pii-step4)
+ [Schritt 5: Erstellen eines S3 Object Lambda Access Point](#ol-pii-step5)
+ [Schritt 6: Verwenden des S3 Object Lambda Access Point zum Abrufen der redigierten Daten](#ol-pii-step6)
+ [Schritt 7: Bereinigen](#ol-pii-step7)
+ [Nächste Schritte](#ol-pii-next-steps)

## Voraussetzungen: Erstellen Sie einen IAM-Benutzer mit Berechtigungen
<a name="ol-pii-prerequisites"></a>

Bevor Sie mit diesem Tutorial beginnen, benötigen Sie ein AWS Konto, mit dem Sie sich als AWS Identity and Access Management Benutzer (IAM-Benutzer) mit den richtigen Berechtigungen anmelden können.

Sie können für das Tutorial die Anmeldeinformationen eines IAM-Benutzers erstellen. Um dieses Tutorial abzuschließen, muss Ihr IAM-Benutzer die folgenden IAM-Richtlinien anhängen, um auf relevante AWS Ressourcen zuzugreifen und bestimmte Aktionen auszuführen. 

**Anmerkung**  
Der Einfachheit halber wird in diesem Tutorial einen IAM-Benutzer erstellt und verwendet. Denken Sie nach Abschluss dieses Tutorials an [Löschen des IAM-Benutzers](#ol-pii-step8-delete-user). Für den Einsatz in der Produktion empfehlen wir, dass Sie die [bewährten Sicherheitsmethoden in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch* befolgen. Eine bewährte Methode ist, dass menschliche Benutzer den Verbund mit einem Identitätsanbieter verwenden, um mit temporären Anmeldeinformationen auf AWS zuzugreifen. Eine weitere bewährte Methode besteht darin, dass Workloads temporäre Anmeldeinformationen mit IAM-Rollen verwenden müssen, um auf AWS zuzugreifen. Weitere Informationen AWS IAM Identity Center zur Erstellung von Benutzern mit temporären Anmeldeinformationen finden Sie unter [Erste Schritte](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) im *AWS IAM Identity Center Benutzerhandbuch*.   
In diesem Tutorial werden auch Richtlinien mit vollem Zugriff verwendet. Für die Verwendung in der Produktion empfehlen wir, dass Sie stattdessen nur die für Ihren Anwendungsfall erforderlichen Mindestberechtigungen gemäß [Bewährte Methoden in Bezug auf die Sicherheit](security-best-practices.md#security-best-practices-prevent) erteilen.

Ihr IAM-Benutzer benötigt die folgenden AWS verwalteten Richtlinien:
+ [AmazonS3 FullAccess — Erteilt](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3FullAccess$jsonEditor) Berechtigungen für alle Amazon S3-Aktionen, einschließlich der Berechtigungen zum Erstellen und Verwenden eines Object Lambda Access Points. 
+ [AWSLambda\$1FullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSLambda_FullAccess$jsonEditor)— Erteilt Berechtigungen für alle Lambda-Aktionen. 
+ [AWSCloudFormationFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AWSCloudFormationFullAccess$serviceLevelSummary)— Erteilt Berechtigungen für alle AWS CloudFormation Aktionen.
+ [IAMFullZugriff](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/IAMFullAccess$jsonEditor) — Erteilt Berechtigungen für alle IAM-Aktionen. 
+ [IAMAccessAnalyzerReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/IAMAccessAnalyzerReadOnlyAccess$jsonEditor)— Erteilt Berechtigungen zum Lesen aller von IAM Access Analyzer bereitgestellten Zugriffsinformationen. 

Sie können diese vorhandenen Richtlinien direkt anhängen, wenn Sie einen IAM-Benutzer erstellen. Weitere Informationen zum Erstellen eines IAM-Benutzers finden Sie unter [Erstellen von IAM-Benutzern (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) im *IAM-Benutzerhandbuch*.

Darüber hinaus erfordert Ihr IAM-Benutzer eine vom Kunden verwaltete Richtlinie. Um dem IAM-Benutzer Berechtigungen für alle AWS Serverless Application Repository Ressourcen und Aktionen zu gewähren, müssen Sie eine IAM-Richtlinie erstellen und die Richtlinie an den IAM-Benutzer anhängen.

**Erstellen einer IAM-Richtlinie und Anfügen der Richtlinie an Ihren IAM-Benutzer**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die IAM-Konsole unter. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Wählen Sie im linken Navigationsbereich **Richtlinien** aus.

1. Wählen Sie **Richtlinie erstellen** aus. 

1. Wählen Sie im Tab **Visual editor (Visueller Editor)** für **Service** **Choose a service (Wählen Sie einen Service)** aus. Wählen Sie dann **Serverless Application Repository**. 

1. Wählen Sie für **Aktionen** unter **Manuelle Aktionen** **Alle Aktionen des Serverless Application Repository (serverlessrepo: \$1)** für dieses Tutorial.

   Als bewährte Methode für die Sicherheit sollten Sie basierend auf Ihrem Anwendungsfall nur für jene Aktionen und Ressourcen Berechtigungen zulassen, für die ein Benutzer Zugriff benötigt. Weitere Informationen finden Sie unter [Bewährte Methoden für die Sicherheit in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.

1. Wählen Sie für **Ressourcen** **Alle Ressourcen** für dieses Tutorial.

   Als bewährte Methode sollten Sie Berechtigungen nur für bestimmte Ressourcen in bestimmten Konten definieren. Alternativ können Sie die geringste Berechtigung mit Bedingungsschlüsseln erteilen. Weitere Informationen finden Sie unter [Gewähren von geringsten Rechten](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) im *IAM-Benutzerhandbuch*.

1. Wählen Sie **Next: Tags** (Weiter: Tags) aus.

1. Klicken Sie auf **Weiter: Prüfen**.

1. Geben Sie auf der Seite **Richtlinie überprüfen** einen **Name** (z. B. **tutorial-serverless-application-repository**) und eine **Beschreibung** (optional) für die zu erstellende Richtlinie ein. Überprüfen Sie die Richtlinienzusammenfassung, um sicherzustellen, dass Sie die beabsichtigten Berechtigungen erteilt haben, und wählen Sie dann **Richtlinie erstellen** aus, um Ihre neue Richtlinie zu speichern.

1. Wählen Sie im linken Navigationsbereich **Benutzer** aus. Wählen Sie dann den IAM-Benutzer für dieses Tutorial aus. 

1. Wählen Sie auf der Seite **Übersicht** des ausgewählten Benutzers den Tab **Berechtigungen** und danach **Hinzufügen von Berechtigungen**.

1. Wählen Sie unter **Berechtigungen gewähren** die Option **Vorhandene Richtlinien direkt anfügen** aus.

1. Aktivieren Sie das Kontrollkästchen neben der gerade erstellten Richtlinie (z. B. **tutorial-serverless-application-repository**) und wählen Sie dann **Nächstes: Überprüfung**. 

1. Prüfen Sie unter **Richtlinienübersicht** die Zusammenfassung, um sicherzustellen, dass Sie die beabsichtigte Richtlinie angefügt haben. Wählen Sie dann **Add permissions (Berechtigungen hinzufügen)** aus.

## Schritt 1: Einen S3-Bucket erstellen
<a name="ol-pii-step1"></a>

Erstellen Sie einen Bucket zum Speichern der ursprünglichen Daten, die Sie transformieren möchten. 

**Anmerkung**  
Access Points können für eine andere Datenquelle angehängt werden, z. B. ein Amazon FSx for OpenZFS-Volume. In diesem Tutorial wird jedoch ein unterstützender Access Point verwendet, der an einen S3-Bucket angeschlossen ist.

**So erstellen Sie einen Bucket**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Buckets** aus.

1. Wählen Sie **Create Bucket** (Bucket erstellen) aus. 

   Die Seite **Create bucket** (Bucket erstellen) wird geöffnet.

1. Geben Sie für **Bucket-Name** einen Namen für Ihren Bucket ein (z. B. **tutorial-bucket**). 

   Weitere Informationen zur Benennung von Buckets in Amazon S3 finden Sie unter [Benennungsregeln für Allzweck-Buckets](bucketnamingrules.md).

1. Unter **Region** wählen Sie die AWS-Region aus, in der sich der Bucket befinden soll. 

   Weitere Informationen zur Bucket-Region finden Sie unter [Übersicht über Allzweck-Buckets](UsingBucket.md).

1. Belassen Sie die **Einstellungen für den öffentlichen Zugriff für diesen Bucket blockieren** bei den Standardeinstellungen (***Alle* öffentlichen Zugriffe blockieren** ist aktiviert). 

   Es wird empfohlen, alle Einstellungen für öffentlichen Zugriff blockieren aktiviert zu belassen, es sei denn, Sie müssen eine oder mehrere dieser Einstellungen für Ihren Anwendungsfall deaktivieren. Weitere Informationen zum Blockieren des öffentlichen Zugriffs finden Sie unter [Blockieren des öffentlichen Zugriffs auf Ihren Amazon-S3-Speicher](access-control-block-public-access.md).

1. Lassen Sie die restlichen Einstellungen auf die Standardwerte eingestellt. 

   (Optional) Informationen zum Konfigurieren zusätzlicher Bucket-Einstellungen für Ihren spezifischen Anwendungsfall finden Sie unter [Erstellen eines Allzweck-Buckets](create-bucket-overview.md).

1. Wählen Sie **Bucket erstellen** aus.

## Schritt 2: Hochladen einer Datei zu einem S3-Bucket
<a name="ol-pii-step2"></a>

Laden Sie eine Textdatei mit bekannten PII-Daten verschiedener Typen, wie Namen, Bankinformationen, Telefonnummern usw., als Originaldaten in den S3-Bucket hoch SSNs, aus denen Sie später in diesem Tutorial die PII redigieren werden. 

Sie können beispielsweise nach der `tutorial.txt`-Datei hochladen. Dies ist ein Beispiel für eine Eingabedatei von Amazon Comprehend.

```
Hello Zhang Wei, I am John. Your AnyCompany Financial Services, 
LLC credit card account 1111-0000-1111-0008 has a minimum payment 
of $24.53 that is due by July 31st. Based on your autopay settings, 
we will withdraw your payment on the due date from your 
bank account number XXXXXX1111 with the routing number XXXXX0000. 

Your latest statement was mailed to 100 Main Street, Any City, 
WA 98121. 
After your payment is received, you will receive a confirmation 
text message at 206-555-0100. 
If you have questions about your bill, AnyCompany Customer Service 
is available by phone at 206-555-0199 or 
email at support@anycompany.com.
```

**Hochladen einer Datei in einen Bucket**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Buckets** aus.

1. Wählen Sie in der Liste **Buckets** den Namen des Buckets aus, den Sie in [Schritt 1](#ol-pii-step1) (z. B. **tutorial-bucket**) erstellt haben, in den Sie die Datei hochladen möchten.

1. Wählen Sie im Tab **Objects (Objekte)** für Ihren Bucket die Option **Upload (Hochladen)** aus.

1. Wählen Sie auf der Seite **Upload** unter **Dateien und Ordner** die Option **Dateien hinzufügen** aus.

1. Wählen Sie eine hochzuladende Datei und dann **Open** (Öffnen) aus. Sie können z. B. das oben erwähnte `tutorial.txt`-Dateibeispiel hochladen.

1. Klicken Sie auf **Upload**.

## Schritt 3: Erstellen eines S3-Zugriffspunkts
<a name="ol-pii-step3"></a>

Um einen S3 Object Lambda Access Point für den Zugriff und die Umwandlung der ursprünglichen Daten zu verwenden, müssen Sie einen S3-Zugriffspunkt erstellen und dem S3-Bucket zuordnen, den Sie in [Schritt 1](#ol-pii-step1) erstellt haben. Der Access Point muss sich in demselben Zustand befinden AWS-Region wie die Objekte, die Sie transformieren möchten.

Später in diesem Tutorial verwenden Sie diesen Zugriffspunkt als unterstützenden Zugriffspunkt für Ihren Object Lambda Access Point. 

**So erstellen Sie einen Zugangspunkt**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Zugriffspunkte** aus.

1. Wählen Sie auf der Seite **Zugriffspunkte** die Option **Zugriffspunkt erstellen** aus.

1. Geben Sie im Feld **Name des Zugriffspunkts** den gewünschten Namen für den Zugriffspunkt ein (z. B. **tutorial-pii-access-point**).

   Weitere Hinweise zur Benennung von Zugangspunkten finden Sie unter [Regeln für die Benennung von Zugangspunkten](access-points-restrictions-limitations-naming-rules.md#access-points-names).

1. Wählen Sie im Feld **Datenquelle** den Namen des Buckets aus, den Sie in [Schritt 1](#ol-pii-step1) (z. B. **tutorial-bucket**) erstellt haben. S3 hängt den Zugriffspunkt an diesen Bucket an. 

   (Optional) Sie können **S3 durchsuchen** auswählen, um die Buckets in Ihrem Konto zu browsen und zu durchsuchen. Wenn Sie **Browse S3 (S3 durchsuchen)** wählen, wählen Sie den gewünschten Bucket aus und dann **Choose path (Pfad wählen)**, um das Feld **Bucket name (Bucket-Name)** mit dem Namen dieses Buckets zu füllen.

1. Wählen Sie für **Netzwerkursprung** **Internet** aus. 

   Weitere Informationen zu Netzwerkursprüngen für Zugangspunkte finden Sie unter [Erstellen von Zugriffspunkten, die auf eine Virtual Private Cloud beschränkt sind](access-points-vpc.md).

1. Alle Block-Public-Access-Einstellungen sind standardmäßig für Zugriffspunkte aktiviert. Sie sollten alle Einstellungen für das **Blockieren *aller* öffentlichen Zugriffe** aktiviert lassen. Weitere Informationen finden Sie unter [Verwalten des öffentlichen Zugriffs auf Zugangspunkte für Allzweck-Buckets](access-points-bpa-settings.md).

1. Behalten Sie für alle anderen Zugriffspunktseinstellungen die Standardeinstellungen bei.

   (Optional) Sie können die Zugriffspunktseinstellungen ändern, um Ihren Anwendungsfall zu unterstützen. Für dieses Tutorial empfehlen wir, dass die Standardeinstellungen beibehalten werden. 

   (Optional) Wenn Sie den Zugriff auf Ihren Zugriffspunkt verwalten müssen, können Sie eine Zugriffspunkt-Richtlinie angeben. Weitere Informationen finden Sie unter [Richtlinienbeispiele für Zugangspunkte](access-points-policies.md#access-points-policy-examples). 

1. Wählen Sie **Zugangspunkt erstellen** aus.

## Schritt 4: Konfigurieren und Bereitstellen einer vordefinierten Lambda-Funktion
<a name="ol-pii-step4"></a>

Um PII-Daten zu überarbeiten, konfigurieren und stellen Sie die vorgefertigte AWS Lambda -Funktion `ComprehendPiiRedactionS3ObjectLambda` für die Verwendung mit Ihrem S3 Object Lambda Access Point bereit.

**Konfigurieren und Bereitstellen der Lambda-Funktion**

1. Melden Sie sich bei an AWS-Managementkonsole und sehen Sie sich die [https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:839782855223:applications/ComprehendPiiRedactionS3ObjectLambda](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:839782855223:applications/ComprehendPiiRedactionS3ObjectLambda)Funktion in der an AWS Serverless Application Repository.

1. Behalten Sie für **Anwendungseinstellungen** unter **Anwendungsname** den Standardwert (`ComprehendPiiRedactionS3ObjectLambda`) für dieses Tutorial bei.

   (Optional) Sie können den Namen eingeben, den Sie dieser Anwendung geben möchten. Sie können dies tun, wenn Sie planen, mehrere Lambda-Funktionen für unterschiedliche Zugriffsanforderungen für denselben freigegebenen Datensatz zu konfigurieren.

1. Behalten Sie für **MaskCharacter**den Standardwert (`*`) bei. Das Maskenzeichen ersetzt jedes Zeichen in der geschärften PII-Entität. 

1. Behalten Sie für **MaskMode**den Standardwert (**MASK**) bei. Der **MaskMode**Wert gibt an, ob die PII-Entität mit dem `MASK` Zeichen oder dem `PII_ENTITY_TYPE` Wert geschwärzt wird.

1. **Um die angegebenen Datentypen zu schwärzen **PiiEntityTypes**, behalten Sie für den Standardwert ALL bei.** Der **PiiEntityTypes**Wert gibt die PII-Entitätstypen an, die für die Schwärzung in Betracht gezogen werden sollen. 

   Weitere Informationen zur Liste der unterstützten PII-Entitäts-Typen finden Sie unter [Persönliche identifizierbare Informationen (PII) erkennen](https://docs.aws.amazon.com/comprehend/latest/dg/how-pii.html) im *Entwicklerhandbuch für Amazon Comprehend*.

1. Lassen Sie die restlichen Einstellungen bei den Standardwerten.

   (Optional) Informationen zum Konfigurieren von zusätzlichen Einstellungen für Ihren speziellen Anwendungsfall finden Sie im Abschnitt **Readme-Datei** auf der linken Seite der Seite.

1. Aktivieren Sie das Kontrollkästchen neben **Ich bestätige, dass diese App benutzerdefinierte IAM-Rollen erstellt**.

1. Wählen Sie **Bereitstellen**.

1. Wählen Sie auf der Seite der neuen Anwendung unter **Ressourcen** die**Logische ID** der Lambda-Funktion, die Sie bereitgestellt haben, um die Funktion auf der Lambda-Funktionsseite zu überprüfen.

## Schritt 5: Erstellen eines S3 Object Lambda Access Point
<a name="ol-pii-step5"></a>

Ein S3 Object Lambda Access Point bietet die Flexibilität, eine Lambda-Funktion direkt aus einer S3-GET-Anforderung aufzurufen, sodass die Funktion PII-Daten überarbeiten kann, die von einem S3-Zugriffspunkt abgerufen wurden. Beim Erstellen und Konfigurieren eines S3 Object Lambda Access Point müssen Sie die überarbeitende Lambda-Funktion angeben, um den Ereigniskontext im JSON-Format als benutzerdefinierte Parameter für Lambda zu verwenden. 

Der Ereigniskontext stellt Informationen über die Anforderung bereit, die in dem von S3 Object Lambda an Lambda übergebenen Ereignis gestellt wird. Weitere Informationen zu allen Feldern im Ereigniskontext finden Sie unter [Format und Verwendung des Ereigniskontexts](olap-event-context.md).

**So erstellen Sie einen S3 Object Lambda Access Point**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Objekt-Lambda-Zugriffspunkte** aus.

1. Wählen Sie auf der Seite **Object Lambda access points (Objekt-Lambda-Zugriffspunkte)** die Option **Create Object Lambda access point (Objekt-Lambda-Zugriffspunkt erstellen)**.

1. Geben Sie unter **Name des Objekt-Lambda-Access Point** den Namen ein, den Sie für den Object Lambda Access Point verwenden möchten (z. B. **tutorial-pii-object-lambda-accesspoint**). 

1. Geben Sie für **Unterstützenden Zugangspunkt** den Standardzugangspunkt ein, den Sie in [Schritt 3](#ol-pii-step3) erstellt haben (z. B. **tutorial-pii-access-point**), oder navigieren Sie zu diesem Zugangspunkt und wählen dann **Unterstützenden Zugangspunkt auswählen** aus. 

1. Um für **S3** Objekte aus dem S3-Bucket abzurufen APIs, damit die Lambda-Funktion sie verarbeiten kann, wählen Sie **GetObject**.

1. Für die **Funktion Lambda aufrufen** können Sie eine der beiden folgenden Optionen für dieses Tutorial auswählen. 
   + Wählen Sie **Wählen Sie aus Funktionen in Ihrem Konto** und wählen Sie die Lambda-Funktion, die Sie in [Schritt 4](#ol-pii-step4) bereitgestellt haben (z. B. **serverlessrepo-ComprehendPiiRedactionS3ObjectLambda**) aus der Dropdown-Liste **Lambda-Funktion**.
   + Wählen Sie **ARN eingeben** und geben Sie dann den Amazon-Ressourcennamen (ARN) der Lambda-Funktion ein, die Sie in [Schritt 4](#ol-pii-step4) erstellt haben.

1. Wählen Sie für **Versioning der Lambda-Funktion**, **\$1LATEST** (die neueste Version der Lambda-Funktion, die Sie in [Schritt 4](#ol-pii-step4) erstellt haben).

1. (Optional) Wenn Sie Ihre Lambda-Funktion benötigen, um GET-Anforderungen mit Bereichs- und Teilenummern-Headern zu erkennen und zu bearbeiten, wählen Sie **Lambda-Funktion unterstützt Anforderungen mit Bereich** und **Lambda-Funktion unterstützt Anforderungen mit Teilenummern** aus. Deaktivieren Sie andernfalls diese beiden Kontrollkästchen.

   Weitere Informationen zur Verwendung von Bereichs- oder Teilenummern mit S3 Object Lambda finden Sie unter [Arbeiten mit Range- und partNumber-Headern](range-get-olap.md).

1. (Optional) Fügen Sie unter **Nutzlast – *optional*** JSON-Text hinzu, um Ihrer Lambda-Funktion zusätzliche Informationen bereitzustellen.

   Eine Nutzlast ist ein optionaler JSON-Text, den Sie Ihrer Lambda-Funktion als Eingabe für alle Aufrufe bereitstellen können, die von einem spezifischen S3 Object Lambda Access Point stammen. Um das Verhalten für mehrere Object Lambda Access Points anzupassen, die dieselbe Lambda-Funktion aufrufen, können Sie Nutzlasten mit unterschiedlichen Parametern konfigurieren und so die Flexibilität Ihrer Lambda-Funktion erweitern.

   Weitere Informationen zur Nutzlast finden Sie unter [Format und Verwendung des Ereigniskontexts](olap-event-context.md).

1. (Optional) Wählen Sie für **Anforderungsmetriken – *optional*** die Option **Deaktivieren** oder **Aktivieren** aus, um die Amazon-S3-Überwachung zu Ihrem Object-Lambda-Zugangspunkt hinzuzufügen. Anforderungsmetriken werden zum CloudWatch Standardtarif von Amazon abgerechnet. Weitere Informationen finden Sie unter [CloudWatch Preise](https://aws.amazon.com/cloudwatch/pricing/).

1. Behalten Sie unter **Objekt-Lambda-Zugriffspunkt-Richtlinie - *optional*** die Standardeinstellung bei. 

   (Optional) Sie können eine Ressourcenrichtlinie festlegen. Diese Ressourcenrichtlinie erteilt der `GetObject`-API die Berechtigung zur Verwendung des angegebenen Object Lambda Access Point.

1. Lassen Sie die restlichen Einstellungen auf die Standardwerte eingestellt und klicken Sie auf **Erstellen eines Objekt-Lambda-Zugriffspunkts**.

## Schritt 6: Verwenden des S3 Object Lambda Access Point zum Abrufen der redigierten Daten
<a name="ol-pii-step6"></a>

Jetzt ist S3 Object Lambda bereit, PII-Daten aus Ihrer Originaldatei zu redigieren. 

**So verwenden Sie den S3 Object Lambda Access Point zum Abrufen der redigierten Daten**

Wenn Sie eine Datei über Ihren S3 Object Lambda Access Point abrufen möchten, führen Sie einen `GetObject`-API-Aufruf für S3 Object Lambda aus. S3 Object Lambda ruft die Lambda-Funktion auf, um Ihre PII-Daten zu redigieren und gibt die transformierten Daten als Antwort auf die Standard-S3-`GetObject` API-Aufrufe.

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Objekt-Lambda-Zugriffspunkte** aus.

1. Wählen Sie auf der Seite **Objekt-Lambda-Zugriffspunkte** den S3 Object Lambda Access Point aus, den Sie in [Schritt 5](#ol-pii-step5) erstellt haben (z. B. **tutorial-pii-object-lambda-accesspoint**).

1. Wählen Sie auf der Registerkarte **Objekte** Ihres S3 Object Lambda Access Point die Datei mit dem gleichen Namen (z. B. `tutorial.txt`) wie diejenige aus, die Sie in [Schritt 2](#ol-pii-step2) in den S3-Bucket hochgeladen haben. 

   Diese Datei sollte alle transformierten Daten enthalten.

1. Um die transformierten Daten anzuzeigen, wählen Sie **Öffnen** oder **Herunterladen** aus.

    Sie sollten in der Lage sein, die redigierte Datei zu sehen, wie im folgenden Beispiel gezeigt. 

   ```
   Hello *********. Your AnyCompany Financial Services, 
   LLC credit card account ******************* has a minimum payment 
   of $24.53 that is due by *********. Based on your autopay settings, 
   we will withdraw your payment on the due date from your 
   bank account ********** with the routing number *********. 
   
   Your latest statement was mailed to **********************************. 
   After your payment is received, you will receive a confirmation 
   text message at ************. 
   If you have questions about your bill, AnyCompany Customer Service 
   is available by phone at ************ or 
   email at **********************.
   ```

## Schritt 7: Bereinigen
<a name="ol-pii-step7"></a>

Wenn Sie Ihre Daten nur zu Lernzwecken mit S3 Object Lambda redigiert haben, löschen Sie die AWS Ressourcen, die Sie zugewiesen haben, sodass Ihnen keine Gebühren mehr anfallen. 

**Topics**
+ [Löschen des Object Lambda Access Point](#ol-pii-step8-delete-olap)
+ [Löschen des S3-Zugriffspunkts](#ol-pii-step8-delete-ap)
+ [Löschen Sie die Lambda-Funktion](#ol-pii-step8-delete-lambda-function)
+ [Löschen Sie die CloudWatch Protokollgruppe](#ol-pii-step8-delete-cloudwatch)
+ [Löschen Sie die Originaldatei im S3-Quell-Bucket](#ol-pii-step8-delete-file)
+ [Löschen des S3-Quell-Bucket](#ol-pii-step8-delete-bucket)
+ [Löschen der IAM-Rolle für Ihre Lambda-Funktion](#ol-pii-step8-delete-lambda-role)
+ [Löschen der vom Kunden verwalteten Richtlinie für Ihren IAM-Benutzer](#ol-pii-step8-delete-function-policy)
+ [Löschen des IAM-Benutzers](#ol-pii-step8-delete-user)

### Löschen des Object Lambda Access Point
<a name="ol-pii-step8-delete-olap"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Objekt-Lambda-Zugriffspunkte** aus.

1. Wählen Sie auf der Seite **Objekt-Lambda-Zugriffspunkte** die Optionsschaltfläche links neben dem S3 Object Lambda Access Point aus, den Sie in [Schritt 5](#ol-pii-step5) erstellt haben (z. B. **tutorial-pii-object-lambda-accesspoint**).

1. Wählen Sie **Löschen** aus.

1. Bestätigen Sie, dass Sie Ihren Object Lambda Access Point löschen möchten, indem Sie den Namen in das angezeigte Textfeld eingeben und dann **Löschen** wählen.

### Löschen des S3-Zugriffspunkts
<a name="ol-pii-step8-delete-ap"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Zugriffspunkte** aus.

1. Navigieren Sie zu dem Zugriffspunkt, den Sie in [Schritt 3](#ol-pii-step3) (z. B. **tutorial-pii-access-point**) erstellt haben, und wählen Sie die Optionsschaltfläche neben dem Namen des Zugriffspunkts aus.

1. Wählen Sie **Löschen** aus.

1. Bestätigen Sie, dass Sie Ihren Zugriffspunkt löschen möchten, indem Sie den Namen in das angezeigte Textfeld eingeben und dann **Delete (Löschen)** wählen.

### Löschen Sie die Lambda-Funktion
<a name="ol-pii-step8-delete-lambda-function"></a>

1. Wählen Sie in der AWS Lambda Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)im linken Navigationsbereich **Funktionen** aus. 

1. Wählen Sie die Funktion aus, die Sie in [Schritt 4](#ol-pii-step4) (z. B. **serverlessrepo-ComprehendPiiRedactionS3ObjectLambda**) erstellt haben.

1. Wählen Sie **Aktionen** und anschließend **Löschen** aus.

1. Wählen Sie im Bestätigungsdialogfeld **Delete** (Löschen) die Option **Delete** (Löschen) aus.

### Löschen Sie die CloudWatch Protokollgruppe
<a name="ol-pii-step8-delete-cloudwatch"></a>

1. Öffnen Sie die CloudWatch Konsole unter [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Wählen Sie im linken Navigationsbereich **Log groups (Protokollgruppen)** aus.

1. Suchen Sie die Protokollgruppe, deren Name mit der Lambda-Funktion endet, die Sie in [Schritt 4](#ol-pii-step4) (z. B. **serverlessrepo-ComprehendPiiRedactionS3ObjectLambda**) erstellt haben.

1. Wählen Sie **Actions (Aktionen)** und dann **Delete log group(s) (Protokollgruppe(n) löschen)** aus.

1. Wählen Sie im Dialogfeld **Delete log group(s)** (Protokollgruppe(n) löschen) die Option **Delete** (Löschen) aus.

### Löschen Sie die Originaldatei im S3-Quell-Bucket
<a name="ol-pii-step8-delete-file"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich die Option **Buckets** aus.

1. Wählen Sie in der Liste **Bucket-Name** den Namen des Buckets aus, in den Sie die Originaldatei in [Schritt 2](#ol-pii-step2) (z. B. **tutorial-bucket**) hochgeladen haben.

1. Markieren Sie das Kontrollkästchen links neben dem Namen des Objekts, das Sie löschen möchten (z. B. `tutorial.txt`).

1. Wählen Sie **Löschen** aus.

1. Bestätigen Sie auf der Seite **Löschen von Objekten** im Abschnitt **Objekte endgültig löschen?**, dass Sie dieses Objekt löschen möchten, indem Sie **permanently delete** im Textfeld eingeben.

1. Wählen Sie **Objekte löschen** aus.

### Löschen des S3-Quell-Bucket
<a name="ol-pii-step8-delete-bucket"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich die Option **Buckets** aus.

1. Wählen Sie in der Liste **Buckets** das Optionsfeld neben dem Namen des Buckets aus, den Sie in [Schritt 1](#ol-pii-step1) (z. B. **tutorial-bucket**) erstellt haben.

1. Wählen Sie **Löschen** aus.

1. Bestätigen Sie auf der Seite **Delete bucket (Bucket löschen)**, dass Sie den Bucket löschen möchten. Geben Sie dazu den Bucket-Namen in das Textfeld ein und wählen Sie **Delete bucket (Bucket löschen)**.

### Löschen der IAM-Rolle für Ihre Lambda-Funktion
<a name="ol-pii-step8-delete-lambda-role"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die IAM-Konsole unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Wählen Sie im linken Navigationsbereich **Roles (Rollen)**, und aktivieren Sie dann das Kontrollkästchen neben der Rolle, die Sie löschen möchten. Der Rollenname beginnt mit dem Namen der Lambda-Funktion, die Sie in [Schritt 4](#ol-pii-step4) (z. B. **serverlessrepo-ComprehendPiiRedactionS3ObjectLambda**) erstellt haben.

1. Wählen Sie **Löschen** aus.

1. Geben Sie im Dialogfeld **Löschen** den Rollennamen in das Texteingabefeld ein, um das Löschen zu bestätigen. Wählen Sie dann **Löschen** aus.

### Löschen der vom Kunden verwalteten Richtlinie für Ihren IAM-Benutzer
<a name="ol-pii-step8-delete-function-policy"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die IAM-Konsole unter. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Wählen Sie im linken Navigationsbereich **Richtlinien** aus.

1. Geben Sie auf der Seite **Richtlinien** den Namen der vom Kunden verwalteten Richtlinie ein, die Sie in [Voraussetzungen](#ol-pii-prerequisites) (z. B. **tutorial-serverless-application-repository**) erstellt haben, in das Suchfeld ein, um die Richtlinienliste zu filtern. Aktivieren Sie die Optionsschaltfläche neben dem Namen der Richtlinie, die Sie löschen möchten.

1. Wählen Sie **Aktionen** und anschließend **Löschen** aus.

1. Bestätigen Sie, dass Sie diese Richtlinie löschen möchten, indem Sie den Namen in das angezeigte Textfeld eingeben und dann **Delete (Löschen)** wählen.

### Löschen des IAM-Benutzers
<a name="ol-pii-step8-delete-user"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die IAM-Konsole unter. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Wählen Sie im linken Navigationsbereich **Benutzer**, und aktivieren Sie dann das Kontrollkästchen neben dem Benutzer, den Sie löschen möchten.

1. Wählen Sie oben auf der Seite **Delete (Löschen)** aus.

1. Im Bereich **Löschen? *user name*** Geben Sie im Dialogfeld den Benutzernamen in das Texteingabefeld ein, um das Löschen des Benutzers zu bestätigen. Wählen Sie **Löschen** aus.

## Nächste Schritte
<a name="ol-pii-next-steps"></a>

Nachdem Sie dieses Tutorial abgeschlossen haben, können Sie die folgenden verwandten Anwendungsfälle näher untersuchen:
+ Sie können mehrere S3 Object Lambda Access Points erstellen und diese mit vorgefertigten Lambda-Funktionen aktivieren, die unterschiedlich konfiguriert sind, um bestimmte Typen von PII je nach den geschäftlichen Anforderungen der Datenzugreifer zu bearbeiten. 

  Jeder Benutzertyp nimmt eine IAM-Rolle an und hat nur auf einen S3 Object Lambda Access Point Zugriff (verwaltet durch IAM-Richtlinien). Dann fügen Sie jede `ComprehendPiiRedactionS3ObjectLambda`-Lambda-Funktion, die für einen anderen Redigierungsanwendungsfall konfiguriert ist, an einen anderen S3 Object Lambda Access Point an. Für jeden S3 Object Lambda Access Point können Sie über einen unterstützenden S3-Zugriffspunkt verfügen, um Daten aus einem S3-Bucket zu lesen, der den freigegebenen Datensatz speichert. 

  Weitere Informationen zum Erstellen einer S3-Bucket-Richtlinie, die es Benutzern ermöglicht, nur über S3-Zugriffspunkte aus dem Bucket zu lesen, finden Sie unter [Konfigurieren von IAM-Richtlinien für die Verwendung von Zugriffspunkten](access-points-policies.md).

  Weitere Informationen dazu, wie Sie einem Benutzer die Berechtigung für den Zugriff auf die Lambda-Funktion, den S3-Zugriffspunkt und den S3 Object Lambda Access Point erteilen, finden Sie unter [Konfigurieren von IAM-Richtlinien für Object Lambda Access Points](olap-policies.md).
+ Sie können Ihre eigene Lambda-Funktion erstellen und S3 Object Lambda mit Ihrer angepassten Lambda-Funktion verwenden, um Ihre spezifischen Datenanforderungen zu erfüllen.

  Um beispielsweise verschiedene Datenwerte zu untersuchen, können Sie S3 Object Lambda und Ihre eigene Lambda-Funktion verwenden, die zusätzliche [Amazon-Comprehend-Funktionen](https://aws.amazon.com/comprehend/features/) verwenden, z. B. Entitätserkennung, Schlüsselphrasenerkennung, Stimmungsanalyse und Dokumentklassifizierung, um Daten zu verarbeiten. Sie können S3 Object Lambda auch zusammen mit [Amazon Comprehend Medical](https://aws.amazon.com/comprehend/medical/), einem HIPAA-berechtigten NLP-Dienst, nutzen, um Daten kontextbewusst zu analysieren und zu extrahieren.

  Weitere Informationen zum Transformieren von Daten mit S3 Object Lambda und Ihrer eigenen Lambda-Funktion finden Sie unter [Tutorial: Transformieren von Daten für Ihre Anwendung mit S3 Object Lambda](tutorial-s3-object-lambda-uppercase.md).

# Debugging und Problembehandlung für S3 Object Lambda
<a name="olap-debugging-lambda"></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).

Anforderungen an Zugriffspunkte von Amazon S3 Object Lambda können zu neuen Fehlerantworten führen, wenn mit dem Aufruf oder der Ausführung der Lambda-Funktion etwas schief geht. Diese Fehler folgen dem gleichen Format wie die Standardfehler von Amazon S3. Weitere Informationen zu Fehlern für S3 Object Lambda finden Sie unter [Fehlercodeliste für S3 Object Lambda](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3ObjectLambdaErrorCodeList) in der *API-Referenz zum Amazon Simple Storage Service*.

Weitere Informationen zum allgemeinen Debuggen von Lambda-Funktionen finden Sie unter [Monitoring and troubleshooting Lambda applications (Überwachung und Fehlerbehebung bei Lambda-Anwendungen)](https://docs.aws.amazon.com/lambda/latest/dg/lambda-monitoring.html ) im *AWS Lambda -Entwicklerhandbuch.*

Informationen zu standardmäßigen Amazon-S3-Fehlern finden Sie unter [Fehlerantworten](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html) in der *API-Referenz zum Amazon Simple Storage Service*.

Sie können in Amazon Anforderungsmetriken CloudWatch für Ihre Object Lambda Access Points aktivieren. Diese Metriken helfen Ihnen dabei, die Betriebsleistung Ihrer Zugriffspunkte zu überwachen. Sie können Anforderungsmetriken während oder nach der Erstellung Ihres Object Lambda Access Point aktivieren. Weitere Informationen finden Sie unter [Lambda-Anforderungsmetriken für S3-Objekte in CloudWatch](metrics-dimensions.md#olap-cloudwatch-metrics).

Um eine detailliertere Protokollierung der an Ihre Object Lambda Access Points gesendeten Anforderungen zu erhalten, können Sie AWS CloudTrail -Datenereignisse aktivieren. Weitere Informationen finden Sie unter [Protokollieren von Datenereignissen für Trails](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html) im *AWS CloudTrail -Benutzerhandbuch.*

Informationen zu S3-Objekt-Lambda-Tutorials finden Sie im Folgenden:
+ [Tutorial: Transformieren von Daten für Ihre Anwendung mit S3 Object Lambda](tutorial-s3-object-lambda-uppercase.md)
+ [Tutorial: Erkennen und Redigieren von PII-Daten mit S3 Object Lambda und Amazon Comprehend](tutorial-s3-object-lambda-redact-pii.md)
+ [Tutorial: Verwenden von S3 Object Lambda, um Bilder beim Abrufen dynamisch mit Wasserzeichen zu versehen](https://aws.amazon.com/getting-started/hands-on/amazon-s3-object-lambda-to-dynamically-watermark-images/?ref=docs_gateway/amazons3/transforming-objects.html)

Weitere Hinweise zu standardmäßigen Zugriffspunkten finden Sie unter [Verwalten des Zugriffs auf gemeinsam genutzte Datensätze mit Zugangspunkten](access-points.md). 

Hinweise zum Arbeiten mit Buckets finden Sie unter [Übersicht über Allzweck-Buckets](UsingBucket.md). Weitere Informationen zur Arbeit mit Objekten finden Sie unter [Übersicht über Amazon-S3-Objekte](UsingObjects.md).