

**Avis de fin de support :** le 30 octobre 2026, le support d'Amazon Pinpoint AWS prendra fin. Après le 30 octobre 2026, vous ne pourrez plus accéder à la console Amazon Pinpoint ni aux ressources Amazon Pinpoint (points de terminaison, segments, campagnes, parcours et analytique). Pour plus d’informations, consultez [Fin de la prise en charge d’Amazon Pinpoint](https://docs.aws.amazon.com/console/pinpoint/migration-guide). **Remarque :** en ce qui APIs concerne les SMS, la voix, le push mobile, l'OTP et la validation des numéros de téléphone ne sont pas concernés par cette modification et sont pris en charge par AWS la messagerie utilisateur final.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisez un modèle de recommandation dans Amazon Pinpoint avec AWS Lambda
<a name="ml-models-rm-lambda"></a>

Dans Amazon Pinpoint, vous pouvez récupérer des recommandations personnalisées à partir d'un modèle de recommandation et les ajouter aux messages que vous envoyez à partir de campagnes et de parcours. Un *modèle de recommandation* est un type de modèle de machine learning qui trouve des modèles dans les données et génère des prédictions et des recommandations basées sur les modèles qu'il trouve. Il prédit ce qu'un utilisateur particulier préférera à partir d'un ensemble donné de produits ou d'articles, et il fournit ces informations sous la forme d'un ensemble de recommandations pour l'utilisateur.

En utilisant des modèles de recommandation avec Amazon Pinpoint, vous pouvez envoyer des recommandations personnalisées aux destinataires des messages en fonction des attributs et du comportement de chaque destinataire. Avec AWS Lambda, vous pouvez également personnaliser et améliorer ces recommandations. Par exemple, vous pouvez transformer dynamiquement une recommandation d'une valeur de texte unique (par exemple un nom ou un ID de produit) en contenu plus sophistiqué (par exemple un nom de produit, une description et une image). Et vous pouvez le faire en temps réel, quand Amazon Pinpoint envoie le message.

Cette fonctionnalité est disponible dans les AWS régions suivantes : USA Est (Virginie du Nord) ; USA Ouest (Oregon) ; Asie-Pacifique (Mumbai) ; Asie-Pacifique (Sydney) ; et Europe (Irlande).

# Ajouter des recommandations de modèles de recommandation aux messages dans Amazon Pinpoint
<a name="ml-models-rm-lambda-overview"></a>

Pour utiliser un modèle de recommandation avec Amazon Pinpoint, vous commencez par créer une solution Amazon Personalize et par déployer cette solution en tant que campagne Amazon Personalize. Ensuite, vous créez une configuration pour le modèle de recommandation dans Amazon Pinpoint. Dans la configuration, vous spécifiez les paramètres qui déterminent comment récupérer et traiter les données de recommandation de la campagne Amazon Personalize. Cela inclut l'opportunité d'invoquer une AWS Lambda fonction pour effectuer un traitement supplémentaire des données récupérées.

Amazon Personalize est un AWS service conçu pour vous aider à créer des modèles de machine learning fournissant des recommandations personnalisées en temps réel aux clients qui utilisent vos applications. Amazon Personalize vous guide tout au long du processus de création et d'entraînement d'un modèle de machine learning, puis de préparation et de déploiement du modèle sous forme de campagne Amazon Personalize. Vous pouvez ensuite récupérer des recommandations personnalisées et en temps réel de la campagne. Pour en savoir plus sur Amazon Personalize, consultez le [Guide du développeur Amazon Personalize](https://docs.aws.amazon.com/personalize/latest/dg/what-is-personalize.html). 

AWS Lambda est un service de calcul que vous pouvez utiliser pour exécuter du code sans provisionner ni gérer de serveurs. Vous empaqueter votre code et le télécharger en AWS Lambda tant que fonction *Lambda*. AWS Lambda exécute ensuite la fonction lorsque la fonction est invoquée. Une fonction peut être appelée manuellement, par vous, automatiquement en réponse à des événements, ou en réponse à des demandes d'applications ou de services, y compris Amazon Pinpoint. Pour en savoir plus sur la création et l'invocation de fonctions Lambda, consultez le [Guide du développeur AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html).

Après avoir créé une configuration Amazon Pinpoint pour un modèle de recommandation, vous pouvez ajouter des recommandations du modèle aux messages que vous envoyez à partir de campagnes et de parcours. Pour cela, utilisez des modèles de message qui contiennent des variables de message pour les attributs recommandés. Un *attribut recommandé* est un point de terminaison dynamique ou un attribut utilisateur conçu pour stocker les données de recommandation. Vous définissez ces attributs lorsque vous créez la configuration d'un modèle de recommandation.

Vous pouvez utiliser des variables pour les attributs recommandés dans les types de modèles de message suivants :
+ Modèles d'e-mail, pour les messages électroniques que vous envoyez à partir de campagnes ou de parcours
+ Modèles de notification Push, pour les notifications Push que vous envoyez à partir de campagnes
+ Modèles SMS, pour les SMS que vous envoyez à partir de campagnes

Pour plus d'informations sur l'utilisation des modèles de recommandation avec Amazon Pinpoint, consultez [Modèles de machine learning](https://docs.aws.amazon.com/pinpoint/latest/userguide/ml-models.html) dans le *Guide de l'utilisateur d'Amazon Pinpoint*.

Si vous configurez Amazon Pinpoint pour invoquer une fonction Lambda qui traite les données de recommandation, Amazon Pinpoint exécute les tâches générales suivantes chaque fois qu'il envoie des recommandations personnalisées dans un message pour une campagne ou un parcours :

1. Évalue et traite les paramètres de configuration et le contenu du message et du modèle de message.

1. Détermine que le modèle de message est connecté à un modèle de recommandation.

1. Évalue les paramètres de configuration pour la connexion au modèle et l'utilisation du modèle. Ces paramètres sont définis par la ressource [Recommender Model](https://docs.aws.amazon.com/pinpoint/latest/apireference/recommenders-recommender-id.html) du modèle.

1. Détecte une ou plusieurs variables de message pour les attributs recommandés qui sont définis par les paramètres de configuration du modèle.

1. Récupère les données de recommandation de la campagne Amazon Personalize spécifiée dans les paramètres de configuration du modèle. Il utilise le [GetRecommendations](https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html)fonctionnement de l'API Amazon Personalize Runtime pour effectuer cette tâche.

1. Ajoute les données de recommandation appropriées à un attribut recommandé dynamique (`RecommendationItems`) pour chaque destinataire de message.

1. Invoque votre fonction Lambda et envoie les données de recommandation pour chaque destinataire à cette fonction afin qu'elles soient traitées.

   Les données sont envoyées sous la forme d'un objet JSON qui contient la définition de point de terminaison pour chaque destinataire. Chaque définition de point de terminaison inclut un champ `RecommendationItems` contenant un tableau ordonné de 1 à 5 valeurs. Le nombre de valeurs dans le tableau dépend des paramètres de configuration du modèle.

1. Attend que votre fonction Lambda traite les données et renvoie les résultats.

   Les résultats prennent la forme d'un objet JSON qui contient une définition de point de terminaison mise à jour pour chaque destinataire. Chaque définition de point de terminaison mise à jour contient un nouvel objet `Recommendations`. Cet objet contient 1 à 10 champs, un pour chaque attribut recommandé personnalisé que vous avez défini dans les paramètres de configuration du modèle. Chacun de ces champs stocke des données de recommandation améliorées pour le point de terminaison.

1. Utilise la définition de point de terminaison mise à jour pour chaque destinataire afin de remplacer chaque variable de message par la valeur appropriée pour ce destinataire.

1. Il envoie une version du message qui contient les recommandations personnalisées pour chaque destinataire du message.

Pour personnaliser et améliorer les recommandations de cette manière, commencez par créer une fonction Lambda qui traite les définitions de point de terminaison envoyées par Amazon Pinpoint, et renvoie les définitions de point de terminaison mises à jour. Ensuite, affectez une stratégie de fonction Lambda à la fonction et autorisez Amazon Pinpoint à invoquer la fonction. Configurez ensuite le modèle de recommandation dans Amazon Pinpoint. Lorsque vous configurez le modèle, spécifiez la fonction à appeler et définissez les attributs recommandés à utiliser.

# Création d'une fonction Lambda qu'Amazon Pinpoint appellera pour un modèle de recommandation
<a name="ml-models-rm-lambda-create-function"></a>

Pour savoir comment créer une fonction Lambda, consultez [Démarrage](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) dans le *Guide du développeur AWS Lambda *. Lorsque vous concevez et développez votre fonction, gardez à l'esprit les exigences et consignes suivantes. 

## Données d'événement en entrée
<a name="ml-models-rm-lambda-create-function-input"></a>

Lorsqu'Amazon Pinpoint invoque une fonction Lambda pour un modèle de recommandation, il envoie une charge utile qui contient la configuration et d'autres paramètres pour la campagne ou le parcours qui envoie le message. La charge utile inclut un `Endpoints` objet, qui est une carte qui associe le point de terminaison aux définitions de point de IDs terminaison pour les destinataires des messages.

Les définitions de point de terminaison utilisent la structure définie par la ressource [Endpoint](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-endpoints-endpoint-id.html) de l'API Amazon Pinpoint. Cependant, elles incluent également un champ pour un attribut recommandé dynamique nommé `RecommendationItems`. Le champ `RecommendationItems` contient un ou plusieurs éléments recommandés pour le point de terminaison, tels que renvoyés par la campagne Amazon Personalize. La valeur de ce champ est un tableau ordonné de 1 à 5 éléments recommandés (sous forme de chaînes). Le nombre d'éléments dans le tableau dépend du nombre d'éléments recommandés que vous avez configuré dans Amazon Pinpoint afin qu'ils soient récupérés pour chaque point de terminaison ou utilisateur. 

Par exemple :

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

Dans l'exemple précédent, les paramètres Amazon Pinpoint pertinents sont :
+ Le modèle de recommandation est configuré pour récupérer trois éléments recommandés pour chaque point de terminaison ou utilisateur. (La valeur de la propriété `RecommendationsPerMessage` est définie sur `3`.) Avec ce paramètre, Amazon Pinpoint récupère et ajoute uniquement les trois premiers éléments recommandés pour chaque point de terminaison ou utilisateur.
+ Le projet est configuré pour utiliser des attributs utilisateur personnalisés qui stockent le prénom, le nom de famille et le quartier de chaque utilisateur. (L'objet `UserAttributes` contient les valeurs de ces attributs.)
+ Le projet est configuré pour utiliser un attribut de point de terminaison personnalisé (`AddressType`) qui indique si le point de terminaison est l'adresse préférée (canal) de l'utilisateur pour recevoir des messages du projet. (L'objet `Attributes` contient la valeur de cet attribut.)

Lorsqu'Amazon Pinpoint appelle la fonction Lambda et envoie cette charge utile en tant que données d'événement, AWS Lambda transmet les données à la fonction Lambda afin qu'elles soient traitées.

Chaque charge utile peut contenir des données pour un maximum de 50 points de terminaison. Si un segment contient plus de 50 points de terminaison, Amazon Pinpoint appelle la fonction à plusieurs reprises, pour un maximum de 50 points de terminaison à la fois, jusqu'à ce que la fonction traite toutes les données. 

## Données et exigences de réponse
<a name="ml-models-rm-lambda-create-function-response"></a>

Lorsque vous concevez et développez votre fonction Lambda, gardez à l'esprit les [quotas pour les modèles de machine learning](quotas.md#quotas-ML-models). Si la fonction ne répond pas aux conditions définies par ces quotas, Amazon Pinpoint ne sera pas en mesure de traiter et d'envoyer le message.

Gardez également à l'esprit les exigences suivantes :
+ La fonction doit renvoyer les définitions de point de terminaison mises à jour dans le même format que celui fourni par les données d'événement en entrée.
+ Chaque définition de point de terminaison mise à jour peut contenir 1 à 10 attributs personnalisés recommandés pour le point de terminaison ou l'utilisateur. Les noms de ces attributs doivent correspondre aux noms d'attributs que vous spécifiez lorsque vous configurez le modèle de recommandation dans Amazon Pinpoint.
+ Tous les attributs recommandés personnalisés doivent être renvoyés dans un seul objet `Recommendations` pour chaque point de terminaison ou utilisateur. Cette exigence permet de s'assurer qu'aucun conflit de dénomination ne survient. Vous pouvez ajouter l'objet `Recommendations` à n'importe quel emplacement dans une définition de point de terminaison. 
+ La valeur de chaque attribut recommandé personnalisé doit être une chaîne (valeur unique) ou un tableau de chaînes (valeurs multiples). Si la valeur est un tableau de chaînes, nous vous recommandons de préserver l'ordre des éléments recommandés renvoyés par Amazon Personalize, comme indiqué dans le champ `RecommendationItems`. Sinon, votre contenu risque de ne pas refléter les prédictions du modèle pour un point de terminaison ou un utilisateur.
+ La fonction ne doit pas modifier d'autres éléments dans les données d'événement, y compris d'autres valeurs d'attribut pour un point de terminaison ou un utilisateur. Il ne doit ajouter et renvoyer des valeurs que pour les attributs recommandés personnalisés. Amazon Pinpoint n'acceptera aucune mise à jour d'autres valeurs dans la réponse de la fonction.
+ La fonction doit être hébergée dans la même AWS région que le projet Amazon Pinpoint qui appelle la fonction. Si la fonction et le projet ne se trouvent pas dans la même région, Amazon Pinpoint ne peut pas envoyer de données d'événement à la fonction.

Si l'une des exigences précédentes n'est pas satisfaite, Amazon Pinpoint ne sera pas en mesure de traiter et d'envoyer le message à un ou plusieurs points de terminaison. Cela peut entraîner l'échec d'une activité de campagne ou de parcours. 

Enfin, nous vous recommandons de réserver 256 exécutions simultanées pour la fonction.

Dans l'ensemble, votre fonction Lambda doit traiter les données d'événement envoyées par Amazon Pinpoint et renvoyer les définitions de point de terminaison modifiées. Pour cela, elle peut itérer chaque point de terminaison de l'objet `Endpoints` et, pour chaque point de terminaison, créer et définir des valeurs pour les attributs personnalisés recommandés que vous souhaitez utiliser. L'exemple de gestionnaire suivant, écrit en Python et qui poursuit l'exemple précédent de données d'événement d'entrée, montre ceci :

```
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
```

Dans l'exemple précédent, AWS Lambda transmet les données de l'événement au gestionnaire en tant que `event` paramètre. Le gestionnaire itère chaque point de terminaison de l'objet `Endpoints` et définit les valeurs des attributs recommandés personnalisés nommés `Recommendations.Title` et `Recommendations.Genre`. L'instruction `return` renvoie chaque définition de point de terminaison mise à jour à Amazon Pinpoint.

Pour poursuivre l'exemple précédent de données d'événement en entrée, les définitions de point de terminaison mises à jour sont les suivantes :

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

Dans l'exemple précédent, la fonction a modifié l'objet `Endpoints` reçu et a renvoyé les résultats. L'objet `Endpoint` de chaque point de terminaison contient désormais un nouvel objet `Recommendations`, qui contient des champs `Title` et `Genre`. Chacun de ces champs stocke un tableau ordonné de trois valeurs (sous forme de chaînes), où chaque valeur fournit un contenu amélioré pour un élément recommandé correspondant dans le champ `RecommendationItems`.

# Attribuez une politique de fonction Lambda pour autoriser Amazon Pinpoint à traiter les données de recommandation
<a name="ml-models-rm-lambda-trust-policy"></a>

Avant de pouvoir utiliser votre fonction Lambda pour traiter les données de recommandation, vous devez autoriser Amazon Pinpoint à invoquer la fonction. Pour accorder l'autorisation d'invocation, attribuez une stratégie de fonction Lambda à la fonction. Une *stratégie de fonction Lambda* est une stratégie d'autorisations basée sur les ressources qui désigne les entités qui peuvent utiliser une fonction et les actions que ces entités peuvent effectuer. Pour plus d'informations, consultez [Utilisation des stratégies fondées sur les ressources pour AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html) dans le *Guide du développeur AWS Lambda *.

L'exemple de politique suivant permet au responsable du service Amazon Pinpoint d'utiliser l'`lambda:InvokeFunction`action pour une campagne Amazon Pinpoint spécifique *campaignId* () dans un projet Amazon Pinpoint particulier () : *projectId*

```
{
  "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/*"
    }
  }
}
```

La stratégie de fonction exige un bloc `Condition` qui inclut une clé `AWS:SourceArn`. Cette clé spécifie quelle ressource est autorisée à appeler la fonction. Dans l'exemple précédent, la stratégie permet à une campagne spécifique d'appeler la fonction.

Vous pouvez également rédiger une politique qui autorise le responsable du service Amazon Pinpoint à utiliser l'`lambda:InvokeFunction`action pour toutes les campagnes et tous les parcours d'un projet Amazon Pinpoint spécifique (). *projectId* L'exemple de stratégie ci-dessous montre ceci :

```
{
  "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/*"
    }
  }
}
```

Contrairement au premier exemple, la clé `AWS:SourceArn` dans le bloc `Condition` de cet exemple permet à un projet particulier d'appeler la fonction. Cette autorisation s'applique à toutes les campagnes et à tous les parcours du projet.

Pour écrire une stratégie plus générique, vous pouvez utiliser des caractères génériques (\$1) correspondant à plusieurs caractères. Par exemple, vous pouvez utiliser le bloc `Condition` suivant pour autoriser n'importe quel projet Amazon Pinpoint à invoquer la fonction :

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

Si vous souhaitez utiliser la fonction Lambda avec tous les projets de votre compte Amazon Pinpoint, nous vous recommandons de configurer le bloc `Condition` de la stratégie comme indiqué précédemment. Toutefois, la bonne pratique consiste à créer des stratégies qui incluent uniquement les autorisations requises pour effectuer une action spécifique sur une ressource spécifique.

## Autoriser Amazon Pinpoint à appeler une fonction Lambda à l'aide de la commande et de la commande Lambda add AWS CLI -permission
<a name="ml-models-rm-lambda-trust-policy-assign"></a>

Après avoir attribué une politique de fonction Lambda à une fonction, vous pouvez ajouter des autorisations qui permettent à Amazon Pinpoint d'invoquer la fonction pour un projet, une campagne ou un parcours spécifique. Vous pouvez le faire à l'aide de la commande AWS Command Line Interface (AWS CLI) et de la commande Lambda [https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html](https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html). L'exemple suivant montre comment procéder pour un projet spécifique (*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/*
```

L'exemple précédent est mis en forme pour Unix, Linux et macOS. Sous Microsoft Windows, remplacez le caractère de continuité de ligne (\$1) par le caret (^).

Si la commande s'exécute correctement, vous obtenez une sortie similaire à ce qui suit :

```
{
  "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/*\"}}}"
}
```

La valeur `Statement` est une version de la chaîne JSON correspondant à l’instruction ajoutée à la politique de la fonction Lambda.

## Configurer Amazon Pinpoint pour appeler la fonction Lambda pour un modèle de recommandation
<a name="ml-models-rm-lambda-configure"></a>

Pour configurer Amazon Pinpoint afin qu'il invoque la fonction Lambda d'un modèle de recommandation, spécifiez les paramètres de configuration spécifiques à Lambda suivants pour le modèle :
+ `RecommendationTransformerUri` : cette propriété spécifie le nom ou l'Amazon Resource Name (ARN) de la fonction Lambda.
+ `Attributes` : cet objet est une carte qui définit les attributs recommandés personnalisés que la fonction ajoute à chaque définition de point de terminaison. Chacun de ces attributs peut être utilisé comme variable de message dans un modèle de message.

Vous pouvez spécifier ces paramètres à l'aide de la ressource [Modèles de recommandation](https://docs.aws.amazon.com/pinpoint/latest/apireference/recommenders.html) de l'API Amazon Pinpoint (lorsque vous créez la configuration d'un modèle) ou de la ressource [Modèle de recommandation](https://docs.aws.amazon.com/pinpoint/latest/apireference/recommenders-recommender-id.html) de l'API Amazon Pinpoint (si vous mettez à jour la configuration d'un modèle). Vous pouvez également définir ces paramètres à l'aide de la console Amazon Pinpoint.

Pour plus d'informations sur l'utilisation des modèles de recommandation avec Amazon Pinpoint, consultez [Modèles de machine learning](https://docs.aws.amazon.com/pinpoint/latest/userguide/ml-models.html) dans le *Guide de l'utilisateur d'Amazon Pinpoint*.