Verwenden von Amazon S3 Object Lambda, um Bilder beim Abruf dynamisch mit Wasserzeichen zu versehen

TUTORIAL

Übersicht

Mit Amazon S3 Object Lambda können Sie Ihren eigenen Code zu S3-GET-, HEAD- und LIST-Anforderungen hinzufügen, um Daten zu ändern, während diese an eine Anwendung zurückgegeben werden. Sie können benutzerdefinierten Code verwenden, um die von S3-GET-Anfragen zurückgegebenen Daten zu ändern, um Datenformate umzuwandeln (z. B. XML in JSON), die Größe von Bildern dynamisch anzupassen, vertrauliche Daten zu schwärzen und vieles mehr. Sie können S3 Object Lambda auch verwenden, um die Ausgabe von S3-LIST-Anfragen zu ändern, um eine benutzerdefinierte Ansicht von Objekten in einem Bucket zu erstellen, und S3-HEAD-Anfragen, um Objektmetadaten wie Objektnamen und -größe zu ändern.

Ziel dieses Tutorials ist es, Ihnen den Einstieg in Amazon S3 Object Lambda zu zeigen. Viele Unternehmen speichern Bilder in Amazon S3, auf die von verschiedenen Anwendungen aus zugegriffen wird, die jeweils eigene Anforderungen an das Datenformat haben. In bestimmten Fällen müssen Bilder je nach Benutzer, der auf das Image zugreift, möglicherweise so geändert werden, dass sie ein Wasserzeichen enthalten (z. B. kann ein zahlender Abonnent Bilder ohne Wasserzeichen anzeigen, während ein nicht zahlender Benutzer ein Bild mit Wasserzeichen erhält).

In diesem Tutorial verwenden wir S3 Object Lambda, um einem Image beim Abrufen von Amazon S3 ein Wasserzeichen hinzuzufügen. Mit S3 Object Lambda können Daten beim Abrufen aus Amazon S3 geändert werden, ohne das vorhandene Objekt zu ändern oder mehrere abgeleitete Kopien der Daten zu verwalten. Indem Sie mehrere Ansichten derselben Daten präsentieren und die Speicherung abgeleiteter Kopien überflüssig machen, können Sie Speicherkosten sparen.

Was Sie erreichen werden

In diesem Tutorial werden Sie:

  • Amazon-S3-Bucket erstellen
  • Einen S3-Zugriffspunkt erstellen
  • Eine AWS-Lambda-Funktion zum Ändern von Bildern erstellen
  • Einen S3-Object-Lambda-Zugriffspunkt erstellen

Voraussetzungen

Zur Durchführung dieses Tutorials benötigen Sie ein AWS-Konto. Besuchen Sie diese Support-Seite, um weitere Informationen zum Erstellen und Aktivieren eines neuen AWS-Kontos zu erhalten.

Sie können einen IAM-Benutzer für das Tutorial erstellen oder einem vorhandenen IAM-Benutzer Berechtigungen hinzufügen. Um dieses Tutorial abzuschließen, muss Ihr IAM-Benutzer über die folgenden Berechtigungen verfügen, um auf relevante AWS-Ressourcen zuzugreifen und bestimmte Aktionen auszuführen:

  • s3:CreateBucket
  • s3:PutObject
  • s3:GetObject
  • s3:ListBucket
  • s3:CreateAccessPoint
  • s3:CreateAccessPointForObjectLambda
  • s3-object-lambda:WriteGetObjectResponse
  • lambda:CreateFunction
  • lambda:InvokeFunction
  • iam:AttachRolePolicy
  • iam:CreateRole
  • iam:PutRolePolicy

Um die in diesem Tutorial erstellten Ressourcen zu bereinigen, benötigen Sie die folgenden IAM-Berechtigungen:

  • s3:DeleteBucket
  • s3:DeleteAccessPoint
  • s3:DeleteAccessPointForObjectLambda
  • lambda:DeleteFunction
  • iam:DeleteRole

 

 Erfahrung mit AWS

Einsteiger

 Benötigte Zeit

20 Minuten

 Kosten für die Fertigstellung

Weniger als 1 USD (Amazon-S3-Preisseite)

 Erfordert

AWS-Konto*

*Innerhalb der letzten 24 Stunden erstellte Konten haben möglicherweise noch keinen Zugriff auf alle für dieses Tutorial erforderlichen Ressourcen.

 Verwendete Services

 Letzte Aktualisierung

01. Februar 2023

Voraussetzungen

Zur Durchführung dieses Tutorials benötigen Sie ein AWS-Konto. Besuchen Sie diese Support-Seite, um weitere Informationen zum Erstellen und Aktivieren eines neuen AWS-Kontos zu erhalten.

Sie können einen IAM-Benutzer für das Tutorial erstellen oder einem vorhandenen IAM-Benutzer Berechtigungen hinzufügen. Um dieses Tutorial abzuschließen, muss Ihr IAM-Benutzer über die folgenden Berechtigungen verfügen, um auf relevante AWS-Ressourcen zuzugreifen und bestimmte Aktionen auszuführen: 

Implementierung

Schritt 1: Erstellen eines Amazon-S3-Buckets

1.1 – Anmelden bei der Amazon-S3-Konsole

1.2 – Erstellen eines S3-Buckets

  • Wählen Sie im Amazon-S3-Menü im linken Navigationsbereich Buckets aus und klicken Sie dann auf die Schaltfläche Bucket erstellen.

1.3

  • Geben Sie im Feld Bucket-Name einen beschreibenden, global eindeutigen Namen für Ihren Bucket ein. Wählen Sie aus, in welcher AWS-Region Sie Ihren Bucket erstellen möchten. Wir werden später in diesem Tutorial eine weitere Ressource erstellen, die sich in derselben AWS-Region befinden muss.
  • Sie können die verbleibenden Optionen bei der Standardauswahl belassen. Navigieren Sie zum Ende der Seite und wählen Sie Bucket erstellen.

Schritt 2 – Hochladen eines Objekts

Nachdem Ihr Bucket nun erstellt und konfiguriert ist, können Sie ein Bild hochladen.

2.1 – Hochladen eines Objekts

  • Wählen Sie aus der Liste der verfügbaren Buckets den Bucket-Namen des soeben erstellten Buckets aus.

2.2

  • Stellen Sie als Nächstes sicher, dass die Registerkarte Objekte ausgewählt ist. Wählen Sie dann im Abschnitt Objekte die Schaltfläche Hochladen aus.

2.3 – Hinzufügen von Dateien

  • Wählen Sie zuerst die Schaltfläche Dateien hinzufügen und dann das Bild aus, die Sie aus Ihrem Dateibrowser hochladen möchten.
  • Wenn Sie möchten, können Sie dieses Beispiel-Bild hochladen.

2.4 – Hochladen

  • Navigieren Sie auf der Seite nach unten und wählen Sie die Schaltfläche Hochladen aus.

2.5

  • Nachdem Ihr Upload abgeschlossen und erfolgreich war, wählen Sie die Schaltfläche Schließen aus.

Schritt 3: Erstellen eines S3-Zugriffspunkts

Erstellen Sie einen Amazon-S3-Zugriffspunkt, der zur Unterstützung des S3-Object-Lambda-Zugriffspunkts verwendet wird, den wir später im Tutorial erstellen werden.

3.1 – Erstellen eines S3-Zugriffspunkts

  • Navigieren Sie zur S3-Konsole und wählen Sie im linken Navigationsbereich die Menüoption Zugriffspunkte aus. Wählen Sie anschließend die Schaltfläche Zugriffspunkt erstellen aus.

3.2

  • Geben Sie im Abschnitt Eigenschaften den gewünschten Namen des Zugriffspunkts ein und wählen Sie den Bucket-Namen aus, den Sie in Schritt 1 eingegeben haben, indem Sie die Schaltfläche S3 durchsuchen auswählen. Stellen Sie als Nächstes den Netzwerkursprung auf Internet ein.

3.3

  • Behalten Sie alle anderen Standardeinstellungen unverändert. Navigieren Sie zum Ende der Seite und wählen Sie die Schaltfläche Zugriffspunkt erstellen aus.

3.4

  • Der S3-Zugriffspunkt wird nun in der Liste angezeigt, wenn Sie im linken Navigationsbereich zu Zugriffspunkte navigieren.

Schritt 4: Erstellen der Lambda-Funktion

  • Erstellen Sie als Nächstes eine Lambda-Funktion, die aufgerufen wird, wenn S3-GET-Anfragen über einen S3-Object-Lambda-Zugriffspunkt gestellt werden.
  • Wir werden AWS CloudShell über die AWS-Managementkonsole verwenden, um S3 Object Lambda zu erstellen und zu testen. Sie können Ihren eigenen Computer oder eine AWS-Cloud9-Instance zum Erstellen der Lösung verwenden, wenn Sie die folgenden Anforderungen erfüllen:
    - Aktuelle Version des AWS Command Line Interface (CLI)
    - Anmeldeinformationen zum Erstellen von AWS-Lambda-Funktionen/-Ebenen und IAM-Rollen
    - Python 3.9
    - Zip-Hilfsprogramm
    - jq-Dienstprogramm

4.1 – Starten eines CloudShell-Terminals

Wählen Sie im Menü oben rechts in der AWS-Managementkonsole das CloudShell-Symbol aus.

Wenn ein CloudShell-Einführungsfenster angezeigt wird, lesen Sie den Inhalt und wählen Sie Schließen.

Es öffnet sich eine neue Browser-Registerkarte mit dem CloudShell-Terminal (ähnlich dem folgenden Screenshot):

4.2 – Vorbereiten der CloudShell zum Bereitstellen der Lambda-Funktion

  • Führen Sie den folgenden Code in CloudShell aus, um die Umgebung vorzubereiten und die Lambda-Ebene mit dem Pillow-Modul bereitzustellen. Kopieren Sie den folgenden Code und fügen Sie ihn in CloudShell ein, um die erforderlichen Abhängigkeiten zu installieren und die Lambda-Funktion bereitzustellen.
# Install the required libraries to build new python
sudo yum install gcc openssl-devel bzip2-devel libffi-devel -y
# Install Pyenv
curl https://pyenv.run | bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

# Install Python version 3.9
pyenv install 3.9.13
pyenv global 3.9.13

# Build the pillow Lambda layer
mkdir python
cd python
pip install pillow -t .
cd ..
zip -r9 pillow.zip python/
aws lambda publish-layer-version \
    --layer-name Pillow \
    --description "Python Image Library" \
    --license-info "HPND" \
    --zip-file fileb://pillow.zip \
    --compatible-runtimes python3.9

Hinweis: Beim Kopieren und Einfügen von Code öffnet CloudShell ein Warnfenster, um zu bestätigen, dass Sie mehrzeiligen Code einfügen möchten. Wählen Sie Einfügen aus.

Dieser Schritt kann 10–15 Minuten dauern.

4.3 – Erstellen der Lambda-Funktion

  • Laden Sie eine TrueType-Schriftart herunter, die von der Lambda-Funktion verwendet wird, um einem Bild ein Wasserzeichen hinzuzufügen. Kopieren Sie die folgenden Befehle und fügen Sie sie in CloudShell ein.
wget https://m.media-amazon.com/images/G/01/mobile-apps/dex/alexa/branding/Amazon_Typefaces_Complete_Font_Set_Mar2020.zip
  • Extrahieren Sie die TrueType-Schriftart, die zum Schreiben des mit Wasserzeichen versehenen Textes im Bild verwendet wird.
unzip -oj Amazon_Typefaces_Complete_Font_Set_Mar2020.zip "Amazon_Typefaces_Complete_Font_Set_Mar2020/Ember/AmazonEmber_Rg.ttf"
  • Erstellen Sie den Lambda-Code, der zum Verarbeiten der S3-Object-Lambda-Anfragen verwendet wird.
cat << EOF > lambda.py
import boto3
import json
import os
import logging
from io import BytesIO
from PIL import Image, ImageDraw, ImageFont
from urllib import request
from urllib.parse import urlparse, parse_qs, unquote
from urllib.error import HTTPError
from typing import Optional

logger = logging.getLogger('S3-img-processing')
logger.addHandler(logging.StreamHandler())
logger.setLevel(getattr(logging, os.getenv('LOG_LEVEL', 'INFO')))
FILE_EXT = {
    'JPEG': ['.jpg', '.jpeg'],
    'PNG': ['.png'],
    'TIFF': ['.tif']
}
OPACITY = 64  # 0 = transparent and 255 = full solid


def get_img_encoding(file_ext: str) -> Optional[str]:
    result = None
    for key, value in FILE_EXT.items():
        if file_ext in value:
            result = key
            break
    return result


def add_watermark(img: Image, text: str) -> Image:
    font = ImageFont.truetype("AmazonEmber_Rg.ttf", 82)
    txt = Image.new('RGBA', img.size, (255, 255, 255, 0))
    if img.mode != 'RGBA':
        image = img.convert('RGBA')
    else:
        image = img

    d = ImageDraw.Draw(txt)
    # Positioning Text
    width, height = image.size
    text_width, text_height = d.textsize(text, font)
    x = width / 2 - text_width / 2
    y = height / 2 - text_height / 2
    # Applying Text
    d.text((x, y), text, fill=(255, 255, 255, OPACITY), font=font)
    # Combining Original Image with Text and Saving
    watermarked = Image.alpha_composite(image, txt)
    return watermarked


def handler(event, context) -> dict:
    logger.debug(json.dumps(event))
    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"]
    parsed_url = urlparse(event['userRequest']['url'])
    object_key = parsed_url.path
    logger.info(f'Object to retrieve: {object_key}')
    parsed_qs = parse_qs(parsed_url.query)
    for k, v in parsed_qs.items():
        parsed_qs[k][0] = unquote(v[0])

    filename = os.path.splitext(os.path.basename(object_key))
    # Get the original S3 object using the presigned URL
    req = request.Request(s3_url)
    try:
        response = request.urlopen(req)
    except HTTPError as e:
        logger.info(f'Error downloading the object. Error code: {e.code}')
        logger.exception(e.read())
        return {'status_code': e.code}

    if encoding := get_img_encoding(filename[1].lower()):
        logger.info(f'Compatible Image format found! Processing image: {"".join(filename)}')
        img = Image.open(response)
        logger.debug(f'Image format: {img.format}')
        logger.debug(f'Image mode: {img.mode}')
        logger.debug(f'Image Width: {img.width}')
        logger.debug(f'Image Height: {img.height}')

        img_result = add_watermark(img, parsed_qs.get('X-Amz-watermark', ['Watermark'])[0])
        img_bytes = BytesIO()

        if img.mode != 'RGBA':
            # Watermark added an Alpha channel that is not compatible with JPEG. We need to convert to RGB to save
            img_result = img_result.convert('RGB')
            img_result.save(img_bytes, format='JPEG')
        else:
            # Will use the original image format (PNG, GIF, TIFF, etc.)
            img_result.save(img_bytes, encoding)
        img_bytes.seek(0)
        transformed_object = img_bytes.read()

    else:
        logger.info(f'File format not compatible. Bypass file: {"".join(filename)}')
        transformed_object = response.read()

    # Write object back to S3 Object Lambda
    s3 = boto3.client('s3')
    # The WriteGetObjectResponse API sends the transformed data
    if os.getenv('AWS_EXECUTION_ENV'):
        s3.write_get_object_response(
            Body=transformed_object,
            RequestRoute=request_route,
            RequestToken=request_token)
    else:
        # Running in a local environment. Saving the file locally
        with open(f'myImage{filename[1]}', 'wb') as f:
            logger.debug(f'Writing file: myImage{filename[1]} to the local filesystem')
            f.write(transformed_object)

    # Exit the Lambda function: return the status code
    return {'status_code': 200}
EOF
  • Erstellen Sie die Lambda-ZIP-Datei, die den Python-Code und die TrueType-Schriftartdatei enthält.
zip -r9 lambda.zip lambda.py AmazonEmber_Rg.ttf
  • Erstellen Sie die IAM-Rolle, die der Lambda-Funktion zugeordnet ist.
aws iam create-role --role-name ol-lambda-images --assume-role-policy-document '{"Version": "2012-10-17","Statement": [{"Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "sts:AssumeRole"}]}'
  • Fügen Sie eine vordefinierte IAM-Richtlinie an die zuvor erstellte IAM-Rolle an. Diese Richtlinie enthält die Mindestberechtigungen, die zum Ausführen der Lambda-Funktion erforderlich sind.
aws iam attach-role-policy --role-name ol-lambda-images --policy-arn arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy

export OL_LAMBDA_ROLE=$(aws iam get-role --role-name ol-lambda-images | jq -r .Role.Arn)

export LAMBDA_LAYER=$(aws lambda list-layers --query 'Layers[?contains(LayerName, `Pillow`) == `true`].LatestMatchingVersion.LayerVersionArn' | jq -r .[])
  • Erstellen und laden Sie die Lambda-Funktion hoch.
aws lambda create-function --function-name ol_image_processing \
 --zip-file fileb://lambda.zip --handler lambda.handler --runtime python3.9 \
 --role $OL_LAMBDA_ROLE \
 --layers $LAMBDA_LAYER \
 --memory-size 1024

Schritt 5: Erstellen eines S3-Object-Lambda-Zugriffspunkts

Erstellen Sie einen S3-Object-Lambda-Zugriffspunkt, der für den Zugriff auf das/die in Ihrem S3 Bucket gespeicherte(n) Bild(er) verwendet wird.

5.1 – Erstellen des S3-Object-Lambda-Zugriffspunkts

Geben Sie im Abschnitt Allgemein für den Namen des Object-Lambda-Zugriffspunkts die Option ol-amazon-s3-images-guide ein.

Stellen Sie sicher, dass die AWS-Region für den S3-Object-Lambda-Zugriffspunkt mit der AWS-Region übereinstimmt, die Sie beim Erstellen des S3-Buckets in Schritt 1.3 angegeben haben.

Geben Sie für Unterstützender Zugriffspunkt den Amazon-Ressourcennamen (ARN) des S3-Zugriffspunkts an, den Sie in Schritt 3.2 über die Schaltfläche S3 durchsuchen erstellt haben.

Navigieren Sie nach unten, um die Transformationskonfiguration anzuzeigen. Wählen Sie in der Liste der S3-APIs die Option GetObject aus.

Geben Sie unter Lambda-Funktion die Option ol_image_processing an.

Navigieren Sie als Nächstes zum Ende der Seite und wählen Sie Object-Lambda-Zugriffspunkt erstellen aus.

Schritt 6: Herunterladen von Bildern aus dem S3-Object-Lambda-Zugriffspunkt

Nachdem wir den S3-Object-Lambda-Zugriffspunkt erstellt haben, öffnen wir das Bild, um zu überprüfen, ob das Wasserzeichen während der Anfrage korrekt hinzugefügt wurde.

6.1 – Öffnen des S3-Object-Lambda-Zugriffspunkts

  • Kehren Sie zur Liste der S3-Object-Lambda-Zugriffspunkte zurück, indem Sie im linken Navigationsbereich der S3-Konsole Object-Lambda-Zugriffspunkte auswählen und dann den S3-Object-Lambda-Zugriffspunkt auswählen, den Sie in Schritt 5.1 erstellt haben. In diesem Beispiel haben wir den S3-Object-Lambda-Zugriffspunkt als ol-amazon-s3-images-guide ausgewählt.

Wählen Sie das Bild aus, das Sie in Schritt 2.4 hochgeladen haben, und wählen Sie dann die Schaltfläche Öffnen.

Es öffnet sich eine neue Browser-Registerkarte mit Ihrem Bild und einem Wasserzeichen.
 
Alle kompatiblen Bilder, die vom S3-Object-Lambda-Zugriffspunkt heruntergeladen werden, enthalten jetzt den Text mit dem Wasserzeichen.


6.2 – Herunterladen des transformierten Bilds von der AWS-CLI

  • Sie können das Bild auch mit der AWS-CLI herunterladen. Dazu benötigen Sie den Amazon-Ressourcennamen (ARN) des S3 Object-Lambda-Zugriffspunkts. Navigieren Sie in der S3-Konsole zur Seite Object-Lambda-Zugriffspunkte, wählen Sie den Namen des S3-Object-Lambda-Zugriffspunkts aus, wählen Sie die Registerkarte Eigenschaften und wählen Sie das Kopiersymbol unter Amazon-Ressourcenname (ARN) aus.

6.3 – Ausführen des AWS-CLI-Befehls über die CloudShell

Geben Sie auf der Registerkarte des CloudShell-Browsers Folgendes ein:

aws s3api get-object --bucket <paste the ARN copied above here> --key <image filename here> <filename to write here>

6.4 – Herunterladen des Bilds auf Ihren lokalen Computer

Wählen Sie in CloudShell oben rechts Aktionen und dann Datei herunterladen aus.

Geben Sie den Dateinamen ein, den Sie in Schritt 6.3 beim Herunterladen des Bilds vom S3-Object-Lambda-Zugriffspunkt definiert haben, und wählen Sie Herunterladen aus.

Sie können nun das Bild von Ihrem lokalen Computer aus öffnen.

Hinweis: Bildbetrachter können sich je nach Computer und Betriebssystem unterscheiden. Wenden Sie sich an Ihren Administrator, wenn Sie nicht sicher sind, welche Anwendung Sie zum Öffnen des Bilds verwenden sollen.

Schritt 7: Bereinigen der Ressourcen

Im Folgenden bereinigen Sie die Ressourcen, die Sie in diesem Tutorial erstellt haben. Es ist eine bewährte Methode, Ressourcen, die Sie nicht mehr verwenden, zu löschen, damit keine unerwünschten Gebühren anfallen.

7.1 – Löschen des S3-Object-Lambda-Zugriffspunkts

  • Navigieren Sie zur S3-Konsole und wählen Sie im linken Navigationsbereich Object-Lambda-Zugriffspunkte aus.
  • Wählen Sie auf der Seite Object-Lambda-Zugriffspunkte das Optionsfeld links neben dem S3-Object-Lambda-Zugriffspunkt aus, den Sie in Schritt 5.1 erstellt haben.

Wählen Sie Löschen aus.

Bestätigen Sie, dass Sie Ihren S3-Object-Lambda-Zugriffspunkt löschen möchten, indem Sie dessen Namen in das angezeigte Textfeld eingeben und dann Löschen auswählen.

7.2 – Löschen des S3-Zugriffspunkts

  • Wählen Sie im linken Navigationsbereich der S3-Konsole die Option Zugriffspunkte aus.
  • Navigieren Sie zu dem S3-Zugriffspunkt, den Sie in Schritt 3.1 erstellt haben, und wählen Sie das Optionsfeld neben dem Namen des S3-Zugriffspunkts aus.
  • Wählen Sie Löschen aus.

Bestätigen Sie, dass Sie Ihren Zugangspunkt löschen möchten, indem Sie dessen Namen in das angezeigte Textfeld eingeben und dann Löschen auswählen.

7.3 – Löschen des Testobjekts

  • Navigieren Sie zur S3-Konsole und wählen Sie im linken Navigationsbereich die Menüoption Buckets aus. Zuerst müssen Sie das Testobjekt aus Ihrem Test-Bucket löschen. Wählen Sie den Namen des Buckets aus, mit dem Sie in diesem Tutorial gearbeitet haben.
  • Aktivieren Sie das Kontrollkästchen links neben dem Namen Ihres Testobjekts und wählen Sie dann die Schaltfläche Löschen aus.
  • Vergewissern Sie sich auf der Seite Objekte löschen, dass Sie das richtige Objekt zum Löschen ausgewählt haben, und geben Sie Löschen in das Bestätigungsfeld Objekte dauerhaft löschen ein. Wählen Sie anschließend die Schaltfläche Objekte löschen, um fortzufahren.
Als nächstes wird Ihnen ein Banner angezeigt, das anzeigt, ob der Löschvorgang erfolgreich war.

7.4 – Löschen des S3-Buckets

  • Wählen Sie als Nächstes im S3-Konsolenmenü im linken Navigationsbereich Buckets aus. Wählen Sie das Optionsfeld links neben dem Quell-Bucket aus, den Sie für dieses Tutorial erstellt haben, und wählen Sie dann die Schaltfläche Löschen aus.

Überprüfen Sie die Warnmeldung. Wenn Sie mit dem Löschen dieses Buckets fortfahren möchten, geben Sie den Bucket-Namen in das Bestätigungsfeld Bucket löschen ein und wählen dann Bucket löschen aus.

7.5 – Löschen der Lambda-Funktion

  • Wählen Sie in der AWS-Lambda-Konsole im linken Navigationsbereich Funktionen aus.
  • Aktivieren Sie das Kontrollkästchen links neben dem Namen der Funktion, die Sie in Schritt 4.3 erstellt haben.
  • Wählen Sie Aktionen und anschließend Löschen aus. Wählen Sie im Dialogfeld Funktion löschen die Option Löschen aus.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben gelernt, wie Sie mit Amazon S3 Object Lambda einem Bild beim Abruf dynamisch ein Wasserzeichen hinzufügen und das bearbeitete Bild an den anfordernden Client zurücksenden. Sie können die Lambda-Funktion für Ihren Anwendungsfall anpassen, um die von S3 GET-, HEAD- und LIST-Anfragen zurückgegebenen Daten zu ändern. Zu den häufig verwendeten Anwendungsfällen gehören das Anpassen von Wasserzeichen mithilfe von aufruferspezifischen Details, das Maskieren sensibler Daten, das Filtern bestimmter Datenzeilen, das Anreichern von Daten mit Informationen aus anderen Datenbanken, das Konvertieren von Datenformaten und vieles mehr.

War diese Seite hilfreich?

Nächste Schritte