Anpassen von Empfehlungen mit AWS Lambda - Amazon Pinpoint

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.

Anpassen von Empfehlungen mit AWS Lambda

In Amazon Pinpoint können Sie personalisierte Empfehlungen aus einem Empfehlungsmodell abrufen und zu Nachrichten hinzufügen, die Sie von Kampagnen und Journeys aus senden. Ein Empfehlungsmodell ist ein Art Machine-Learning-(ML-)Modell, das Muster in Daten findet und Vorhersagen sowie Empfehlungen basierend auf den gefundenen Mustern generiert. Es sagt vorher, welche Produkte oder Elemente aus einer Gruppe von Produkten oder Elementen ein bestimmter Benutzer bevorzugen wird, und stellt diese Informationen in Form einer Reihe von Empfehlungen für den Benutzer bereit.

Wenn Sie Empfehlungsmodelle mit Amazon Pinpoint verwenden, können Sie basierend auf den Attributen und Verhaltensweisen der einzelnen Empfänger personalisierte Empfehlungen an die Nachrichtenempfänger senden. Mithilfe von AWS Lambda können Sie diese Empfehlungen zudem anpassen und verbessern. Beispielsweise können Sie eine Empfehlung dynamisch von einem einzelnen Textwert (z. B. einem Produktnamen oder einer ID) in komplexere Inhalte (z. B. einen Produktnamen, eine Beschreibung und ein Bild) umwandeln. Dies ist in Echtzeit möglich, wenn Amazon Pinpoint die Nachricht sendet.

Dieses Feature ist in den folgenden AWS-Regionen verfügbar: USA Ost (Nord-Virginia), USA West (Oregon), Asien-Pazifik (Mumbai), Asien-Pazifik (Sydney) und Europa (Irland).

Verwenden von Empfehlungen in Nachrichten

Um ein Empfehlungsmodell mit Amazon Pinpoint zu verwenden, erstellen Sie zunächst eine Amazon-Personalize-Lösung und stellen diese Lösung als Amazon-Personalize-Kampagne bereit. Anschließend erstellen Sie eine Konfiguration für das Empfehlungsmodell in Amazon Pinpoint. In der Konfiguration geben Sie Einstellungen an, die bestimmen, wie Empfehlungsdaten aus der Amazon-Personalize-Kampagne abgerufen und verarbeitet werden sollen. Diese Einstellungen legen auch fest, ob eine AWS Lambda-Funktion für die zusätzliche Verarbeitung der abgerufenen Daten aufgerufen werden soll.

Amazon Personalize ist ein AWS-Service, der Sie bei der Erstellung von ML-Modellen unterstützt, die personalisierte Empfehlungen in Echtzeit für Kunden bereitstellen, die Ihre Anwendungen verwenden. Amazon Personalize führt Sie durch den Prozess der Erstellung und Schulung eines ML-Modells und der anschließenden Vorbereitung und Bereitstellung des Modells als Amazon-Personalize-Kampagne. Sie können dann personalisierte Empfehlungen in Echtzeit aus der Kampagne abrufen. Weitere Informationen zu Amazon Personalize finden Sie im Amazon-Personalize-Entwicklerhandbuch.

AWS Lambda ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Sie packen Ihren Code und laden ihn auf AWS Lambda als Lambda-Funktion hoch. AWS Lambda führt die Funktion aus, wenn die Funktion aufgerufen wird. Eine Funktion kann manuell von Ihnen, automatisch als Reaktion auf Ereignisse oder als Reaktion auf Anforderungen von Anwendungen oder Diensten, einschließlich Amazon Pinpoint, aufgerufen werden. Informationen zum Erstellen und Abrufen und Lambda-Funktionen finden Sie im AWS Lambda-Entwicklerhandbuch.

Nachdem Sie eine Amazon-Pinpoint-Konfiguration für ein Empfehlungsmodell erstellt haben, können Sie den Nachrichten, die Sie von Kampagnen und Journeys aus senden, Empfehlungen aus dem Modell hinzufügen. Hierfür verwenden Sie Nachrichtenvorlagen, die Nachrichtenvariablen für empfohlene Attribute enthalten. Ein empfohlenes Attribut ist ein dynamisches Endpunkt- oder Benutzerattribut zum Speichern von Empfehlungsdaten. Diese Attribute definieren Sie, wenn Sie die Konfiguration für ein Empfehlungsmodell erstellen.

In den folgenden Arten von Nachrichtenvorlagen können Sie Variablen für empfohlene Attribute verwenden:

  • E-Mail-Vorlagen für E-Mail-Nachrichten, die Sie von Kampagnen oder Journeys senden.

  • Push-Benachrichtigungsvorlagen für Push-Benachrichtigungen, die Sie von Kampagnen senden.

  • SMS-Vorlagen, für SMS-Textnachrichten, die Sie von Kampagnen senden.

Weitere Informationen zur Verwendung von Empfehlungsmodellen mit Amazon Pinpoint, finden Sie unter Machine-Learning-Modelle im Amazon-Pinpoint-Benutzerhandbuch.

Wenn Sie Amazon Pinpoint so konfigurieren, dass eine Lambda-Funktion aufgerufen wird, die Empfehlungsdaten verarbeitet, führt Amazon Pinpoint jedes Mal die folgenden allgemeinen Aufgaben durch, wenn personalisierte Empfehlungen in einer Nachricht für eine Kampagne oder Journey gesendet werden:

  1. Evaluierung und Verarbeitung der Konfigurationseinstellungen und der Inhalte der Nachricht sowie der Nachrichtenvorlage.

  2. Festlegung, dass die Nachrichtenvorlage mit einem Empfehlungsmodell verbunden ist.

  3. Evaluierung der Konfigurationseinstellungen für die Verbindung mit dem Modell und die Verwendung des Modells. Diese werden von der Empfehlungsmodell-Ressource für das Modell definiert.

  4. Erkennen einer oder mehrerer Nachrichtenvariablen für empfohlene Attribute, die über die Konfigurationseinstellungen für das Modell definiert werden.

  5. Abrufen von Empfehlungsdaten aus der Amazon-Personalize-Kampagne, die in den Konfigurationseinstellungen für das Modell angegeben ist. Für diese Aufgabe wird die Operation GetRecommendations der Amazon Personalize-Laufzeit-API verwendet.

  6. Hinzufügen der entsprechenden Empfehlungsdaten zu einem dynamischen empfohlenen Attribut (RecommendationItems) für jeden Nachrichtenempfänger.

  7. Aufruf Ihrer Lambda-Funktion und Senden der Empfehlungsdaten für die einzelnen Empfänger zur Verarbeitung an diese Funktion.

    Die Daten werden als JSON-Objekt gesendet, das die Endpunktdefinition für jeden Empfänger enthält. Jede Endpunktdefinition enthält ein Feld RecommendationItems, das ein geordnetes Array von 1–5 Werten enthält. Die Anzahl der Werte in dem Array hängt von den Konfigurationseinstellungen für das Modell ab.

  8. Warten, bis Ihre Lambda-Funktion die Daten verarbeitet und die Ergebnisse zurückgibt.

    Die Ergebnisse sind ein JSON-Objekt, das eine aktualisierte Endpunktdefinition für jeden Empfänger enthält. Jede aktualisierte Endpunktdefinition enthält ein neues Recommendations-Objekt. Dieses Objekt enthält 1–10 Felder, eines für jedes benutzerdefinierte empfohlene Attribut, das Sie in den Konfigurationseinstellungen für das Modell definiert haben. In jedem dieser Felder werden erweiterte Empfehlungsdaten für den Endpunkt gespeichert.

  9. Verwendung der aktualisierten Endpunktdefinition für die einzelnen Empfänger, um die einzelnen Nachrichtenvariablen durch den entsprechenden Wert für die betreffenden Empfänger zu ersetzen.

  10. Sendet eine Version der Nachricht, die die personalisierten Empfehlungen für jeden Nachrichtenempfänger enthält.

Um Empfehlungen auf diese Weise anzupassen und zu verbessern, erstellen Sie zunächst eine Lambda-Funktion, die die von Amazon Pinpoint, gesendeten Endpunktdefinitionen verarbeitet und aktualisierte Endpunktdefinitionen zurückgibt. Weisen Sie dann der Funktion eine Lambda-Funktionsrichtlinie zu und autorisieren Sie Amazon Pinpoint, die Funktion aufzurufen. Konfigurieren Sie anschließend das Empfehlungsmodell in Amazon Pinpoint. Wenn Sie das Modell konfigurieren, geben Sie die aufzurufende Funktion an, und definieren Sie die zu verwendenden empfohlenen Attribute.

Erstellen der Lambda-Funktion

Informationen zum Erstellen einer Lambda-Funktion finden Sie unter Erste Schritte im AWS Lambda-Entwicklerhandbuch. Beachten Sie beim Entwerfen und Entwickeln der Funktion die folgenden Anforderungen und Richtlinien.

Eingabeereignisdaten

Wenn Amazon Pinpoint eine Lambda-Funktion für ein Empfehlungsmodell aufruft, sendet es eine Nutzlast, die die Konfiguration und andere Einstellungen für die Kampagne oder Journey enthält, von der die Nachricht gesendet wird. Die Nutzlast enthält ein Endpoints-Objekt. Hierbei handelt es sich um eine Zuordnung, die Endpunkt-IDs mit Endpunktdefinitionen für Nachrichtenempfänger verknüpft.

Die Endpunktdefinitionen verwenden die Struktur, die von der Endpunkt-Ressource der Amazon-Pinpoint-API definiert wird. Sie enthalten jedoch auch ein Feld für ein dynamisches empfohlenes Attribut namens RecommendationItems. Das Feld RecommendationItems enthält mindestens ein empfohlenes Element für den Endpunkt, das von der Amazon-Personalize-Kampagne zurückgegeben wird. Der Wert für dieses Feld ist ein geordnetes Array von 1–5 empfohlenen Elementen (als Zeichenfolgen). Die Anzahl der Elemente in dem Array hängt davon ab, wie viele Elemente Amazon Pinpoint laut Ihrer Konfiguration für jeden Endpunkt oder Benutzer abrufen soll.

Beispiele:

"Endpoints": { "endpointIDexample-1":{ "ChannelType":"EMAIL", "Address":"sofiam@example.com", "EndpointStatus":"ACTIVE", "OptOut":"NONE", "EffectiveDate":"2020-02-26T18:56:24.875Z", "Attributes":{ "AddressType":[ "primary" ] }, "User":{ "UserId":"SofiaMartínez", "UserAttributes":{ "LastName":[ "Martínez" ], "FirstName":[ "Sofia" ], "Neighborhood":[ "East Bay" ] } }, "RecommendationItems":[ "1815", "2009", "1527" ], "CreationDate":"2020-02-26T18:56:24.875Z" }, "endpointIDexample-2":{ "ChannelType":"EMAIL", "Address":"alejandror@example.com", "EndpointStatus":"ACTIVE", "OptOut":"NONE", "EffectiveDate":"2020-02-26T18:56:24.897Z", "Attributes":{ "AddressType":[ "primary" ] }, "User":{ "UserId":"AlejandroRosalez", "UserAttributes":{ "LastName ":[ "Rosalez" ], "FirstName":[ "Alejandro" ], "Neighborhood":[ "West Bay" ] } }, "RecommendationItems":[ "1210", "6542", "4582" ], "CreationDate":"2020-02-26T18:56:24.897Z" } }

Im vorherigen Beispiel lauten die relevanten Amazon-Pinpoint-Einstellungen wie folgt:

  • Das Empfehlungsmodell ist so konfiguriert, dass drei empfohlene Elemente für jeden Endpunkt oder Benutzer abgerufen werden. (Der Wert für die Eigenschaft RecommendationsPerMessage ist auf 3 festgelegt.) Mit dieser Einstellung werden nur die ersten, zweiten und dritten empfohlenen Elemente für jeden Endpunkt oder Benutzer von Amazon Pinpoint abgerufen und hinzugefügt.

  • Das Projekt ist für die Verwendung von benutzerdefinierten Benutzerattributen konfiguriert, in denen der Vorname, Nachname und das Umfeld der Benutzer gespeichert werden. (Im Objekt UserAttributes sind die Werte für diese Attribute enthalten.)

  • Das Projekt ist für die Verwendung eines benutzerdefinierten Endpunktattributs (AddressType) konfiguriert, das angibt, ob der Endpunkt die bevorzugte Adresse (Kanal) des Benutzers für den Empfang von Nachrichten aus dem Projekt ist. (Im Objekt Attributes ist der Wert für dieses Attribut enthalten.)

Wenn Amazon Pinpoint die Lambda-Funktion aufruft und diese Nutzlast als Ereignisdaten sendet, übergibt AWS Lambda die Daten zur Verarbeitung an die Lambda-Funktion.

Jede Nutzlast kann Daten für bis zu 50 Endpunkte enthalten. Wenn ein Segment mehr als 50 Endpunkte enthält, ruft Amazon Pinpoint die Funktion wiederholt für bis zu 50 Endpunkte gleichzeitig auf, bis die Funktion alle Daten verarbeitet.

Antwortdaten und Anforderungen

Berücksichtigen Sie beim Entwerfen und Entwickeln Ihrer Lambda-Funktion die Kontingente für Machine-Learning-Modelle. Wenn die Funktion die durch diese Kontingente definierten Bedingungen nicht erfüllt, kann Amazon Pinpoint die Nachricht nicht verarbeiten und senden.

Beachten Sie auch die folgenden Anforderungen:

  • Die Funktion muss aktualisierte Endpunktdefinitionen in dem Format zurückgeben, das von den Eingabeereignisdaten bereitgestellt wurde.

  • Jede aktualisierte Endpunktdefinition kann 1–10 benutzerdefinierte empfohlene Attribute für den Endpunkt oder Benutzer enthalten. Die Namen dieser Attribute müssen mit den Attributnamen übereinstimmen, die Sie beim Konfigurieren des Empfehlungsmodells in Amazon Pinpoint angeben.

  • Alle benutzerdefinierten empfohlenen Attribute müssen in einem einzelnen Recommendations-Objekt für jeden Endpunkt oder Benutzer zurückgegeben werden. Mithilfe dieser Anforderung wird sichergestellt, dass keine Namenskonflikte auftreten. Sie können das Recommendations-Objekt einem beliebigen Speicherort in einer Endpunktdefinition hinzufügen.

  • Der Wert für jedes benutzerdefinierte empfohlene Attribut muss eine Zeichenfolge (Einzelwert) oder ein Array von Zeichenfolgen (mehrere Werte) sein. Wenn es sich bei dem Wert um ein Array von Zeichenfolgen handelt, empfehlen wir, die Reihenfolge der empfohlenen Elemente beizubehalten, die von Amazon Personalize zurückgegeben wurden, wie im Feld RecommendationItems angegeben. Andernfalls könnte es sein, dass Ihre Inhalte die Vorhersagen des Modells für einen Endpunkt oder Benutzer nicht widerspiegeln.

  • Die Funktion sollte keine anderen Elemente in den Ereignisdaten ändern. Dies gilt auch für andere Attributwerte für einen Endpunkt oder Benutzer. Es sollten nur Werte für benutzerdefinierte empfohlene Attribute hinzugefügt und zurückgegeben werden. Amazon Pinpoint akzeptiert keine Aktualisierungen anderer Werte in der Antwort der Funktion.

  • Die Funktion muss in derselben AWS-Region gehostet werden wie das Amazon-Pinpoint-Projekt, das die Funktion aufruft. Wenn sich die Funktion und das Projekt nicht in derselben Region befinden, kann Amazon Pinpoint keine Ereignisdaten an die Funktion senden.

Wenn eine der oben genannten Anforderungen nicht erfüllt ist, kann Amazon Pinpoint die Nachricht nicht verarbeiten und an einen oder mehrere Endpunkte senden. Dies kann zum Fehlschlagen einer Kampagnen- oder Journey-Aktivität führen.

Schließlich empfehlen wir, 256 gleichzeitige Ausführungen für die Funktion zu reservieren.

Insgesamt sollte Ihre Lambda-Funktion die Ereignisdaten verarbeiten, die von Amazon Pinpoint gesendet werden, und geänderte Endpunktdefinitionen zurückgeben. Zu diesem Zweck kann die Funktion jeden Endpunkt im Endpoints-Objekt durchlaufen und für jeden Endpunkt Werte für die zu verwendenden benutzerdefinierten empfohlenen Attribute erstellen und festlegen. Der folgende in Python geschriebene Beispiel-Handler, der mit dem vorherigen Beispiel für Eingabeereignisdaten fortfährt, zeigt folgende Ausgabe:

import json import string def lambda_handler(event, context): print("Received event: " + json.dumps(event)) print("Received context: " + str(context)) segment_endpoints = event["Endpoints"] new_segment = dict() for endpoint_id in segment_endpoints.keys(): endpoint = segment_endpoints[endpoint_id] if supported_endpoint(endpoint): new_segment[endpoint_id] = add_recommendation(endpoint) print("Returning endpoints: " + json.dumps(new_segment)) return new_segment def supported_endpoint(endpoint): return True def add_recommendation(endpoint): endpoint["Recommendations"] = dict() customTitleList = list() customGenreList = list() for i,item in enumerate(endpoint["RecommendationItems"]): item = int(item) if item == 1210: customTitleList.insert(i, "Hanna") customGenreList.insert(i, "Action") elif item == 1527: customTitleList.insert(i, "Catastrophe") customGenreList.insert(i, "Comedy") elif item == 1815: customTitleList.insert(i, "Fleabag") customGenreList.insert(i, "Comedy") elif item == 2009: customTitleList.insert(i, "Late Night") customGenreList.insert(i, "Drama") elif item == 4582: customTitleList.insert(i, "Agatha Christie\'s The ABC Murders") customGenreList.insert(i, "Crime") elif item == 6542: customTitleList.insert(i, "Hunters") customGenreList.insert(i, "Drama") endpoint["Recommendations"]["Title"] = customTitleList endpoint["Recommendations"]["Genre"] = customGenreList return endpoint

Im vorherigen Beispiel übergibt AWS Lambda die Ereignisdaten als event-Parameter an den Handler. Der Handler durchläuft jeden Endpunkt im Endpoints-Objekt und legt Werte für benutzerdefinierte empfohlene Attribute mit den Namen Recommendations.Title und Recommendations.Genre fest. Die return-Anweisung gibt jede aktualisierte Endpunktdefinition an Amazon Pinpoint zurück.

Bei Fortführung des früheren Beispiels für Eingabeereignisdaten lauten die aktualisierten Endpunktdefinitionen wie folgt:

"Endpoints":{ "endpointIDexample-1":{ "ChannelType":"EMAIL", "Address":"sofiam@example.com", "EndpointStatus":"ACTIVE", "OptOut":"NONE", "EffectiveDate":"2020-02-26T18:56:24.875Z", "Attributes":{ "AddressType":[ "primary" ] }, "User":{ "UserId":"SofiaMartínez", "UserAttributes":{ "LastName":[ "Martínez" ], "FirstName":[ "Sofia" ], "Neighborhood":[ "East Bay" ] } }, "RecommendationItems":[ "1815", "2009", "1527" ], "CreationDate":"2020-02-26T18:56:24.875Z", "Recommendations":{ "Title":[ "Fleabag", "Late Night", "Catastrophe" ], "Genre":[ "Comedy", "Comedy", "Comedy" ] } }, "endpointIDexample-2":{ "ChannelType":"EMAIL", "Address":"alejandror@example.com", "EndpointStatus":"ACTIVE", "OptOut":"NONE", "EffectiveDate":"2020-02-26T18:56:24.897Z", "Attributes":{ "AddressType":[ "primary" ] }, "User":{ "UserId":"AlejandroRosalez", "UserAttributes":{ "LastName ":[ "Rosalez" ], "FirstName":[ "Alejandro" ], "Neighborhood":[ "West Bay" ] } }, "RecommendationItems":[ "1210", "6542", "4582" ], "CreationDate":"2020-02-26T18:56:24.897Z", "Recommendations":{ "Title":[ "Hanna", "Hunters", "Agatha Christie\'s The ABC Murders" ], "Genre":[ "Action", "Drama", "Crime" ] } } }

Im vorherigen Beispiel hat die Funktion das erhaltene Endpoints-Objekt geändert und die Ergebnisse zurückgegeben. Das Endpoint-Objekt für jeden Endpunkt enthält nun ein neues Recommendations-Objekt mit den Feldern Genre und Title. In jedem dieser Felder wird ein geordnetes Array von drei Werten (als Zeichenfolgen) gespeichert, wobei jeder Wert erweiterte Inhalte für ein entsprechendes empfohlenes Element im Feld RecommendationItems bereitstellt.

Zuweisen einer Lambda-Funktionsrichtlinie

Bevor Sie die Lambda-Funktion zum Verarbeiten von Empfehlungsdaten verwenden können, müssen Sie Amazon Pinpoint zum Aufruf der Funktion berechtigen. Um eine Aufrufberechtigung zu erteilen, weisen Sie der Funktion eine Lambda-Funktionsrichtlinie zu. Eine Lambda-Funktionsrichtlinie ist eine ressourcenbasierte Berechtigungsrichtlinie, die bestimmt, welche Entitäten eine Funktion verwenden dürfen und welche Aktionen diese Entitäten durchführen können. Weitere Informationen finden Sie unter Verwenden von ressourcenbasierten Richtlinien für AWS Lambda im AWS Lambda-Entwicklerhandbuch.

Die folgende Beispielrichtlinie ermöglicht es dem Amazon-Pinpoint-Service-Prinzipal, die lambda:InvokeFunction-Aktion für eine bestimmte Amazon-Pinpoint-Kampagne (campaignId) in einem bestimmten Amazon-Pinpoint-Projekt (projectId) zu verwenden:

{ "Sid": "sid", "Effect": "Allow", "Principal": { "Service": "pinpoint.us-east-1.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "{arn:aws:lambda:us-east-1:accountId:function:function-name}", "Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:mobiletargeting:us-east-1:accountId:recommenders/*" } } }

Die Funktionsrichtlinie erfordert einen Condition-Block, der einen AWS:SourceArn-Schlüssel beinhaltet. Dieser Schlüssel gibt an, welche Ressource die Funktion aufrufen darf. Im vorherigen Beispiel ermöglicht es die Richtlinie einer bestimmten Kampagne, die Funktion aufzurufen.

Sie können auch eine Richtlinie schreiben, die es einem Amazon-Pinpoint-Service-Prinzipal ermöglicht, die Aktion für alle Kampagnen und Journeys in einem bestimmten Amazon-Pinpoint-Projekt (projectId) zu verwenden. Die folgende Beispielrichtlinie zeigt dies:

{ "Sid": "sid", "Effect": "Allow", "Principal": { "Service": "pinpoint.us-east-1.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "{arn:aws:lambda:us-east-1:accountId:function:function-name}", "Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:mobiletargeting:us-east-1:accountId:recommenders/*" } } }

Im Gegensatz zum ersten Beispiel erlaubt es der AWS:SourceArn-Schlüssel im Condition-Block dieses Beispiels einem bestimmten Projekt, die Funktion aufzurufen. Diese Berechtigung gilt für alle Kampagnen und Journeys im Projekt.

Um eine allgemeinere Richtlinie zu schreiben, können Sie Wildcards (*), die mehrere Zeichen darstellen, verwenden. So können Sie beispielsweise den folgenden Condition-Block verwenden, um jedem Amazon-Pinpoint-Projekt den Aufruf der Funktion zu gestatten:

"Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:mobiletargeting:us-east-1:accountId:recommenders/*" } }

Wenn Sie die Lambda-Funktion mit allen Projekten für Ihr Amazon-Pinpoint-Konto verwenden möchten, empfehlen wir, den Condition-Block der Richtlinie auf die vorherige Weise zu konfigurieren. Als bewährte Methode sollten Sie jedoch Richtlinien erstellen, die nur die zum Ausführen einer bestimmten Aktion für eine bestimmte Ressource erforderlichen Berechtigungen enthalten.

Erteilen der Berechtigung für Amazon Pinpoint zum Aufrufen der Funktion

Nachdem Sie der Funktion eine Lambda-Funktionsrichtlinie zugewiesen haben, können Sie Berechtigungen hinzufügen, die es Amazon Pinpoint ermöglichen, die Funktion für ein bestimmtes Projekt, eine bestimmte Kampagne oder Journey aufzurufen. Sie können hierfür die AWS Command Line Interface (AWS CLI) und den Lambda-Befehl add-permission verwenden. Das folgende Beispiel zeigt die Vorgehensweise für ein bestimmtes Projekt (projectId:

$ aws lambda add-permission \ --function-name function-name \ --statement-id sid \ --action lambda:InvokeFunction \ --principal pinpoint.us-east-1.amazonaws.com \ --source-arn arn:aws:mobiletargeting:us-east-1:accountId:recommenders/*

Das vorherige Beispiel ist für Unix, Linux und macOS formatiert. Ersetzen Sie unter Microsoft Windows das Zeilenfortsetzungszeichen, also den umgekehrten Schrägstrich (\), durch ein Caret-Zeichen (^).

Wird der Befehl erfolgreich ausgeführt, sehen Sie eine Ausgabe ähnlich der folgenden:

{ "Statement": "{\"Sid\":\"sid\", \"Effect\":\"Allow\", \"Principal\":{\"Service\":\"pinpoint.us-east-1.amazonaws.com\"}, \"Action\":\"lambda:InvokeFunction\", \"Resource\":\"arn:aws:lambda:us-east-1:111122223333:function:function-name\", \"Condition\": {\"ArnLike\": {\"AWS:SourceArn\": \"arn:aws:mobiletargeting:us-east-1:111122223333:recommenders/*\"}}}" }

Der Statement-Wert ist eine JSON-Zeichenfolgenversion der Anweisung, die der Lambda-Funktionsrichtlinie hinzugefügt wurde.

Konfigurieren des Empfehlungsmodells

Um Amazon Pinpoint für den Aufruf der Lambda-Funktion für ein Empfehlungsmodell zu konfigurieren, geben Sie die folgenden Lambda-spezifischen Konfigurationseinstellungen für das Modell an:

  • RecommendationTransformerUri: Diese Eigenschaft gibt den Namen oder den Amazon-Ressourcennamen (ARN) der Lambda-Funktion an.

  • Attributes: Dieses Objekt ist eine Zuordnung, die die benutzerdefinierten empfohlenen Attribute definiert, die die Funktion jeder Endpunktdefinition hinzufügt. Jedes dieser Attribute kann als Nachrichtenvariable in einer Nachrichtenvorlage verwendet werden.

Sie können diese Einstellungen mithilfe der Ressource Empfehlungsmodelle der Amazon-Pinpoint-API (wenn Sie die Konfiguration für ein Modell erstellen) oder mithilfe der Ressource Empfängermodell der Amazon-Pinpoint-API (wenn Sie die Konfiguration für ein Modell aktualisieren) angeben. Sie können diese Einstellungen auch über die Amazon-Pinpoint-Konsole definieren.

Weitere Informationen zur Verwendung von Empfehlungsmodellen mit Amazon Pinpoint, finden Sie unter Machine-Learning-Modelle im Amazon-Pinpoint-Benutzerhandbuch.