Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Crea una funzione Lambda per Amazon Pinpoint da richiamare per un modello di raccomandazione

Modalità Focus
Crea una funzione Lambda per Amazon Pinpoint da richiamare per un modello di raccomandazione - Amazon Pinpoint

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per informazioni su come creare una funzione Lambda, consulta Guida introduttiva nella Guida per gli sviluppatori di AWS Lambda . Quando progetti e sviluppi la tua funzione, tiene a mente i requisiti e le linee guida seguenti.

Dati dell’evento di input

Quando Amazon Pinpoint richiama una funzione Lambda per un modello di raccomandazione, invia un payload contenente la configurazione e altre impostazioni per la campagna o il percorso di invio del messaggio. Il payload include un Endpoints oggetto, che è una mappa che associa l'endpoint alle definizioni degli endpoint IDs per i destinatari dei messaggi.

Le definizioni degli endpoint utilizzano la struttura definita dalla risorsa Endpoint di Amazon Pinpoint. API Tuttavia, includono anche un campo per un attributo dinamico suggerito denominato RecommendationItems. Il campo RecommendationItems contiene uno o più elementi suggeriti per l'endpoint, come restituiti dalla campagna Amazon Personalize. Il valore di questo campo è un array ordinato contenente da 1 a 5 elementi suggeriti (come stringhe). Il numero di elementi nell'array dipende dal numero di elementi suggeriti configurati per il recupero da parte di Amazon Pinpoint per ciascun endpoint o utente.

Per esempio:

"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" } }

Nell'esempio precedente, le impostazioni Amazon Pinpoint pertinenti sono:

  • Il modello della funzione di suggerimento è configurato per recuperare tre elementi suggeriti per ogni endpoint o utente. (Il valore della proprietà RecommendationsPerMessage è impostato su 3.) Con questa impostazione, Amazon Pinpoint recupera e aggiunge solo i primi, secondi e terzi elementi suggeriti per ogni endpoint o utente.

  • Il progetto è configurato per utilizzare attributi utente personalizzati che memorizzano il nome, il cognome e il quartiere in cui vive ogni utente. (L'oggetto UserAttributes contiene i valori per questi attributi.)

  • Il progetto è configurato per utilizzare un attributo endpoint personalizzato (AddressType) che indica se l'endpoint è l'indirizzo (canale) preferito dall'utente per ricevere messaggi dal progetto. (L'oggetto Attributes contiene il valore per questo attributo.)

Quando Amazon Pinpoint richiama la funzione Lambda e invia il payload come dati dell'evento, AWS Lambda passa i dati alla funzione Lambda per l'elaborazione.

Ogni payload può contenere dati per un massimo di 50 endpoint. Se un segmento contiene più di 50 endpoint, Amazon Pinpoint richiama la funzione ripetutamente, per un massimo di 50 endpoint alla volta, finché non vengono elaborati tutti i dati.

Dati e requisiti di risposta

Quando progetti e sviluppi la funzione Lambda, considera le quote per i modelli di machine learning. Se la funzione non soddisfa le condizioni definite da queste quote, Amazon Pinpoint non sarà in grado di elaborare e inviare il messaggio.

Tieni a mente anche i seguenti requisiti:

  • La funzione deve restituire le definizioni degli endpoint aggiornate nello stesso formato fornito dai dati degli eventi di input.

  • Ogni definizione di endpoint aggiornata può contenere da 1 a 10 attributi consigliati personalizzati per l'endpoint o l'utente. I nomi di questi attributi devono corrispondere ai nomi degli attributi specificati quando configuri il modello di raccomandazione in Amazon Pinpoint.

  • Tutti gli attributi suggeriti personalizzati devono essere restituiti in un singolo oggetto Recommendations per ogni endpoint o utente. Questo requisito consente di garantire che i conflitti di denominazione non si verifichino. Puoi aggiungere l'oggetto Recommendations in qualsiasi posizione in una definizione di endpoint.

  • Il valore per ogni attributo suggerito personalizzato deve essere una stringa (valore singolo) o una matrice di stringhe (valori multipli). Se il valore è un array di stringhe, è consigliabile mantenere l'ordine degli elementi suggeriti restituiti da Amazon Personalize, come indicato nel campo RecommendationItems. In caso contrario, il contenuto potrebbe non riflettere le previsioni del modello per un endpoint o un utente.

  • La funzione non deve modificare altri elementi nei dati dell'evento, inclusi altri valori di attributo per un endpoint o un utente. Deve aggiungere e restituire solo valori per gli attributi consigliati personalizzati. Amazon Pinpoint non accetterà aggiornamenti a nessun altro valore nella risposta della funzione.

  • La funzione deve essere ospitata nella stessa AWS regione del progetto Amazon Pinpoint che richiama la funzione. Se la funzione e il progetto non si trovano nella stessa regione, Amazon Pinpoint non è in grado di inviare i dati degli eventi alla funzione.

Se uno dei requisiti precedenti non viene soddisfatto, Amazon Pinpoint non sarà in grado di elaborare e inviare il messaggio a uno o più endpoint. Ciò potrebbe causare un fallimento di una campagna o di un'attività di viaggio.

Infine, si consiglia di riservare 256 esecuzioni simultanee per la funzione.

Nel complesso, la funzione Lambda deve elaborare i dati degli eventi inviati da Amazon Pinpoint e restituire le definizioni di endpoint modificate. È possibile eseguire questa operazione mediante l'iterazione di ciascun endpoint nell'oggetto Endpoints e, per ogni endpoint, creando e impostando valori per gli attributi suggeriti personalizzati che si desidera utilizzare. Il seguente handler di esempio, scritto in Python e che prosegue l'esempio precedente di dati degli eventi di input, mostra quanto segue:

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

Nell'esempio precedente, AWS Lambda passa i dati dell'evento al gestore come parametro. event L’handler esegue l'iterazione di ciascun endpoint nell'oggetto Endpoints e imposta i valori per gli attributi suggeriti personalizzati denominati Recommendations.Title e Recommendations.Genre. L'istruzione return restituisce ogni definizione di endpoint aggiornata ad Amazon Pinpoint.

Continuando con l'esempio precedente di dati degli eventi di input, le definizioni degli endpoint aggiornati sono:

"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" ] } } }

Nell'esempio precedente, la funzione ha modificato l'oggetto Endpoints ricevuto e restituito i risultati. L'oggetto Endpoint per ogni endpoint ora contiene un nuovo oggetto Recommendations, che contiene i campi Title e Genre. Ciascuno di questi campi memorizza una matrice ordinata di tre valori (come stringhe), in cui ogni valore fornisce contenuto migliorato per un elemento suggerito corrispondente nel campo RecommendationItems.

In questa pagina

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.