

**サポート終了通知:** 2026 年 10 月 30 日に、 AWS は Amazon Pinpoint のサポートを終了します。2026 年 10 月 30 日を過ぎると、Amazon Pinpoint コンソールまたは Amazon Pinpoint のリソース (エンドポイント、セグメント、キャンペーン、ジャーニー、分析) にアクセスできなくなります。詳細については、「[Amazon Pinpoint のサポート終了](https://docs.aws.amazon.com/console/pinpoint/migration-guide)」を参照してください。**注:** SMS、音声、モバイルプッシュ、OTP、電話番号の検証に関連する APIs は、この変更の影響を受けず、 AWS エンドユーザーメッセージングでサポートされています。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# で Amazon Pinpoint でレコメンダーモデルを使用する AWS Lambda
<a name="ml-models-rm-lambda"></a>

Amazon Pinpoint では、推奨モデルからパーソナライズされた推奨事項を取得して、キャンペーンおよびジャーニーから送信するメッセージに追加できます。*推奨モデル*は、データ内のパターンを検出し、検出されたパターンに基づいて予測と推奨事項を生成する機械学習 (ML) モデルの一種です。これにより、特定のユーザーが製品や商品の特定のセットから好むものが予測され、その情報がユーザーに対する推奨事項のセットとして提供されます。

Amazon Pinpoint で推奨モデルを使用して、各受信者の属性と動作に基づいてパーソナライズされた推奨事項をメッセージ受信者に送信できます。を使用すると AWS Lambda、これらのレコメンデーションをカスタマイズして強化することもできます。たとえば、推奨事項を 1 つのテキスト値 (製品名や ID など) からより洗練されたコンテンツ (製品名、説明、イメージ画像など) に動的に変換できます。さらに、Amazon Pinpoint がメッセージを送信するときにその変換をリアルタイムで実行できます。

この機能は、米国東部 (バージニア北部）、米国西部 (オレゴン）、アジアパシフィック (ムンバイ）、アジアパシフィック (シドニー）、欧州 (アイルランド) の各 AWS リージョンで使用できます。

# Amazon Pinpoint のメッセージに推奨モデルの推奨事項を追加する
<a name="ml-models-rm-lambda-overview"></a>

Amazon Pinpoint で推奨モデルを使用するには、まず Amazon Personalize ソリューションを作成し、そのソリューションを Amazon Personalize キャンペーンとしてデプロイします。次に、Amazon Pinpoint で推奨モデルの構成を作成します。構成では、Amazon Personalize キャンペーンから推奨事項データを取得して処理する方法を決定する設定を指定します。これには、 AWS Lambda 関数を呼び出して、取得されるデータの追加処理を実行するかどうかが含まれます。

Amazon Personalize は、アプリケーションを使用するお客様にパーソナライズされたレコメンデーションをリアルタイムで提供する ML モデルの作成を支援するように設計された AWS サービスです。Amazon Personalize では、ML モデルを作成してトレーニングし、Amazon Personalize キャンペーンとしてモデルを準備してデプロイするプロセスを説明します。その後、キャンペーンからパーソナライズされたリアルタイムの推奨事項を取得できます。Amazon Personalize の詳細については、『[Amazon Personalize デベロッパーガイド](https://docs.aws.amazon.com/personalize/latest/dg/what-is-personalize.html)』を参照してください。。

AWS Lambda は、サーバーのプロビジョニングや管理を行わずにコードを実行するために使用できるコンピューティングサービスです。コードをパッケージ化し、*Lambda 関数* AWS Lambda として にアップロードします。 AWS Lambda その後、 は関数が呼び出されたときに関数を実行します。関数は、ユーザーが手動で呼び出したり、イベントに応答して自動的に呼び出したり、Amazon Pinpoint などのアプリケーションやサービスからのリクエストに応答したりすることができます。Lambda 関数の作成および呼び出しについては、『[AWS Lambda デベロッパーガイド](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)』を参照してください。

推奨モデルの Amazon Pinpoint 構成を作成した後、キャンペーンおよびジャーニーから送信するメッセージにモデルからの推奨事項を追加できます。これを行うには、推奨属性のメッセージ変数を含むメッセージテンプレートを使用します。*推奨属性*は、推奨事項データを保存するよう設計された動的エンドポイントまたはユーザー属性です。これらの属性は、推奨モデルの構成を作成するときに定義します。

次のタイプのメッセージテンプレートでは、推奨属性の変数を使用できます。
+ メールテンプレート。キャンペーンまたはジャーニーから送信する E メールメッセージ用。
+ プッシュ通知テンプレート。キャンペーンから送信するプッシュ通知用。
+ SMS テンプレート。キャンペーンから送信する SMS テキストメッセージ用。

Amazon Pinpoint での推奨モデルの使用に関する詳細は、『*Amazon Pinpoint ユーザーガイド*』の「[機械学習モデル](https://docs.aws.amazon.com/pinpoint/latest/userguide/ml-models.html)」を参照してください。

推奨事項データを処理する Lambda 関数を呼び出すよう Amazon Pinpoint を設定した場合、Amazon Pinpoint は、キャンペーンまたはジャーニーのメッセージでパーソナライズされた推奨事項を送信するたびに、次の一般的なタスクを実行します。

1. メッセージおよびメッセージテンプレートの構成設定と内容を評価して処理します。

1. メッセージテンプレートが推奨モデルに接続されていることを判断します。

1. モデルに接続してそれを使用するための構成設定を評価します。これらは、モデルの「[推奨モデル](https://docs.aws.amazon.com/pinpoint/latest/apireference/recommenders-recommender-id.html)」リソースによって定義されます。

1. モデルの構成設定で定義されている推奨属性のメッセージ変数を 1 つ以上検出します。

1. モデルの構成設定で指定された Amazon Personalize キャンペーンから推奨事項データを取得します。このタスクを実行するために、Amazon Personalize Runtime API の[GetRecommendations](https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html) オペレーションを使用します。

1. 各メッセージ受信者の動的な推奨属性 (`RecommendationItems`) に適切な推奨事項データを追加します。

1. Lambda 関数を呼び出して、処理のために各受信者の推奨事項データをその関数に送信します。

   データは、各受信者のエンドポイント定義を含む JSON オブジェクトとして送信されます。各エンドポイント定義には、1～5 個の値の順序付き配列を含む `RecommendationItems` フィールドが含まれます。配列の値の数は、モデルの構成設定によって異なります。

1. Lambda 関数がデータを処理して結果を返すのを待機します。

   結果は、各受信者の更新されたエンドポイント定義を含む JSON オブジェクトです。更新された各エンドポイント定義には、新しい `Recommendations` オブジェクトが含まれます。このオブジェクトは、モデルの構成設定で定義したカスタム推奨属性ごとに 1〜10 個のフィールドを含んでいます。これらの各フィールドには、エンドポイントの強化された推奨事項データが保存されます。

1. 各受信者の更新されたエンドポイント定義を使用して、各メッセージ変数をその受信者の適切な値に置き換えます。

1. メッセージ受信者ごとにパーソナライズされた推奨事項を含むメッセージのバージョンを送信します。

この方法で推奨事項をカスタマイズおよび強化するには、最初に、Amazon Pinpoint から送信されたエンドポイント定義を処理し、更新されたエンドポイント定義を返す Lambda 関数を作成します。次に、Lambda 関数ポリシーを関数に割り当てて、関数を呼び出すことを Amazon Pinpoint に許可します。その後、Amazon Pinpoint で推奨モデルを設定します。モデルを設定する際に、呼び出す関数を指定し、使用する推奨属性を定義します。

# Amazon Pinpoint が推奨モデルを呼び出すための Lambda 関数を作成する
<a name="ml-models-rm-lambda-create-function"></a>

Lambda 関数の作成方法については、『*AWS Lambda デベロッパーガイド*』の「[開始方法](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html)」を参照してください。関数を設計および開発する際には、次の要件とガイドラインに留意してください。

## 入力イベントデータ
<a name="ml-models-rm-lambda-create-function-input"></a>

Amazon Pinpoint が推奨モデルの Lambda 関数を呼び出すと、メッセージを送信しているキャンペーンまたはジャーニーの構成およびその他の設定を含むペイロードが送信されます。ペイロードには、`Endpoints` オブジェクトが含まれます。このオブジェクトは、エンドポイント ID をメッセージ受信者のエンドポイント定義に関連付けるマップです。

エンドポイント定義は、Amazon Pinpoint API の[エンドポイント](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-endpoints-endpoint-id.html)リソースで定義された構造を使用します。ただし、`RecommendationItems` という名前の動的な推奨属性のフィールドも含まれます。この `RecommendationItems` フィールドには、Amazon Personalize キャンペーンから返された、エンドポイントに対する推奨商品が 1 つ以上含まれます。このフィールドの値は、1～5 の推奨項目の順序付き配列(文字列)です。配列内の商品数は、エンドポイントまたはユーザーごとに取得するよう Amazon Pinpoint を設定した推奨商品の数によって異なります。

例:

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

上記の例では、関連する Amazon Pinpoint 設定は次のとおりです。
+ 推奨モデルは、エンドポイントまたはユーザーごとに 3 つの推奨商品を取得するよう設定されています (`RecommendationsPerMessage` プロパティの値は `3` に設定されます)。この設定では、Amazon Pinpoint は、各エンドポイントまたはユーザーの 1 番目、2 番目、および 3 番目の推奨商品のみを取得して追加します。
+ プロジェクトは、各ユーザーの名、姓、およびユーザーの住んでいる近辺を保存するカスタムユーザー属性を使用するよう設定されます (`UserAttributes` オブジェクトには、これらの属性の値が含まれます)。
+ プロジェクトは、エンドポイントがプロジェクトからメッセージを受信するためのユーザーの優先アドレス (チャネル) かどうかを示すカスタムエンドポイント属性 (`AddressType`) を使用するよう設定されます (`Attributes` オブジェクトには、この属性の値が含まれます)。

Amazon Pinpoint が Lambda 関数を呼び出し、このペイロードをイベントデータとして送信すると、 AWS Lambda は処理のためにそのデータを Lambda 関数に渡します。

各ペイロードには、最大 50 のエンドポイントのデータを含めることができます。セグメントに 50 以上のエンドポイントが含まれる場合、Amazon Pinpoint はすべてのデータが処理されるまで、繰り返し関数を呼び出します (最大で一度に 50 のエンドポイント)。

## レスポンスデータと要件
<a name="ml-models-rm-lambda-create-function-response"></a>

Lambda 関数を設計および開発する際には、「[機械学習モデルのクォータ](quotas.md#quotas-ML-models)」に注意してください。関数がこれらのクォータで定義された条件を満たしていない場合、Amazon Pinpoint はメッセージを処理して送信できません。

また、次の要件にも注意してください。
+ 関数は、更新されたエンドポイント定義を、入力イベントデータによって提供されたものと同じ形式で返す必要があります。
+ 更新された各エンドポイント定義には、エンドポイントまたはユーザーに対する 1～10 のカスタム推奨属性を含めることができます。これらの属性の名前は、Amazon Pinpoint で推奨モデルを設定するときに指定した属性名と一致する必要があります。
+ すべてのカスタム推奨属性は、エンドポイントまたはユーザーごとに 1 つの `Recommendations` オブジェクトに返す必要があります。この要件は、名前の競合が発生しないようにするのに役立ちます。`Recommendations` オブジェクトは、エンドポイント定義の任意の場所に追加できます。
+ 各カスタム推奨属性の値は、文字列 (1 つの値) または文字列の配列 (複数の値) である必要があります。値が文字列の配列である場合は、 `RecommendationItems` フィールドに示されているように、Amazon Personalize が返した推奨商品の順序を維持することをお勧めします。そうでない場合は、エンドポイントまたはユーザーに対するモデルの予測がコンテンツに反映されないことがあります。
+ 関数は、エンドポイントまたはユーザーの他の属性値を含む、イベントデータ内の他の要素を変更しないようにします。カスタム推奨属性の値のみを追加し、返すようにする必要があります。Amazon Pinpoint は、関数のレスポンスに含まれる他の値の更新を受け付けません。
+ 関数は、関数を呼び出す Amazon Pinpoint プロジェクトと同じ AWS リージョンでホストする必要があります。関数とプロジェクトが同じリージョンにない場合、Amazon Pinpoint はイベントデータを関数に送信できません。

上記の要件のいずれかが満たされていない場合、Amazon Pinpoint はメッセージを処理して 1 つ以上のエンドポイントに送信できません。これにより、キャンペーンやジャーニーアクティビティが失敗する可能性があります。

最後に、関数に対して 256 回の同時実行数を予約することをお勧めします。

全体として、Lambda 関数は Amazon Pinpoint によって送信されたイベントデータを処理し、変更されたエンドポイント定義を返す必要があります。関数は、これを行うために `Endpoints` オブジェクト内の各エンドポイントを反復処理し、各エンドポイントに対して、使用するカスタム推奨属性の値を作成して設定します。Python で記述され、前述の入力イベントデータの例を続行する次の例のハンドラーで、これを示します。

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

前の例では、 AWS Lambda は `event`パラメータとしてイベントデータをハンドラーに渡します。ハンドラーは、`Endpoints` オブジェクトの各エンドポイントを反復処理し、`Recommendations.Title` および `Recommendations.Genre` という名前のカスタム推奨属性の値を設定します。`return` ステートメントは、更新された各エンドポイント定義を Amazon Pinpoint に返します。

前述の入力イベントデータの例を続行して、更新されたエンドポイント定義は次のとおりです。

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

前述の例では、関数は受け取った `Endpoints` オブジェクトを変更し、結果を返しています。各エンドポイントの `Endpoint` オブジェクトに、`Title` フィールドと `Genre` フィールドを含む新しい `Recommendations` オブジェクトが含まれています。これらの各フィールドには、3 つの値の順序付き配列 (文字列として) が保存されます。各値により、`RecommendationItems` フィールド内の対応する推奨商品の強化されたコンテンツが提供されます。

# Lambda 関数ポリシーを割り当てて、Amazon Pinpoint が推奨データを処理することを許可する
<a name="ml-models-rm-lambda-trust-policy"></a>

Lambda 関数を使用して推奨事項データを処理する前に、Amazon Pinpoint に関数の呼び出しを許可する必要があります。呼び出しのアクセス許可を付与するには、関数に Lambda 関数ポリシーを割り当てます。*Lambda 関数ポリシー*はリソースベースのアクセス許可ポリシーで、関数を使用できるエンティティと、それらのエンティティが実行できるアクションを指定します。詳細については、『*AWS Lambda デベロッパーガイド*』の「[AWS Lambdaのリソースベースのポリシーを使用する](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html)」を参照してください。

次のポリシーの例では、Amazon Pinpoint サービスプリンシパルが、特定の Amazon Pinpoint プロジェクト (*projectId*) 内の特定の Amazon Pinpoint キャンペーン (*campaignId*) に対して `lambda:InvokeFunction` アクションを使用することを許可しています。

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

関数ポリシーは、`AWS:SourceArn` キーを含む `Condition` ブロックを必要とします。このキーは、関数を呼び出すことができるリソースを指定します。前述の例では、ポリシーにより、1 つの特定のキャンペーンで関数を呼び出すことが許可されています。

また、特定のAmazon Pinpointプロジェクト (*projectId*) 内のすべてのキャンペーンとジャーニーに対して、Amazon Pinpointサービスプリンシパルが `lambda:InvokeFunction` アクションを使用できるようにするポリシーを記述することができます。次のポリシー例でこれを示します。

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

最初の例とは異なり、この例の `Condition` ブロックの `AWS:SourceArn` キーは、1 つの特定のプロジェクトで関数を呼び出すことができます。この許可は、プロジェクト内のすべてのキャンペーンおよびジャーニーに適用されます。

より一般的なポリシーを記述するには、複数文字に一致するワイルドカード (\$1) を使用します。たとえば、次の `Condition` ブロックを使用して、任意の Amazon Pinpoint プロジェクトで関数を呼び出すことができます。

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

Amazon Pinpoint アカウントのすべてのプロジェクトで Lambda 関数を使用する場合は、上記の方法でポリシーの `Condition` ブロックを設定することをお勧めします。ただし、ベストプラクティスとして、特定のリソースに対して特定のアクションを実行するために必要なアクセス許可のみを含むポリシーを作成する必要があります。

## AWS CLI および Lambda add-permission コマンドを使用して Lambda 関数を呼び出すことを Amazon Pinpoint に許可する
<a name="ml-models-rm-lambda-trust-policy-assign"></a>

Lambda 関数ポリシーを関数に割り当てた後、Amazon Pinpoint が特定のプロジェクト、キャンペーン、またはジャーニーの関数を呼び出すことができるアクセス許可を追加できます。これは、 AWS Command Line Interface (AWS CLI) と 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) コマンドを使用して実行できます。次の例は、特定のプロジェクト (*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/*
```

前述の例は、Unix、Linux、および macOS 用にフォーマットされています。Microsoft Windows の場合、バックスラッシュ (\$1) の行連結文字をキャレット (^) に置き換えます。

コマンドが正常に実行された場合は、次のような出力が表示されます。

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

`Statement` 値は、Lambda 関数ポリシーに追加されたステートメントの JSON 文字列バージョンです。

## 推奨モデルの Lambda 関数を呼び出すように Amazon Pinpoint を設定する
<a name="ml-models-rm-lambda-configure"></a>

推奨モデルの Lambda 関数を呼び出すよう Amazon Pinpoint を設定するには、モデルに対して次の Lambda 固有の構成設定を指定します。
+ `RecommendationTransformerUri` – このプロパティは、Lambda 関数の名前または Amazon リソースネーム (ARNs) を指定します。
+ `Attributes` – このオブジェクトは、関数が各エンドポイント定義に追加するカスタム推奨属性を定義するマップです。これらの各属性は、メッセージテンプレートのメッセージ変数として使用できます。

これらの設定は、Amazon Pinpoint APIの[推奨モデル](https://docs.aws.amazon.com/pinpoint/latest/apireference/recommenders.html)リソース (モデルの設定を作成する場合)、またはAmazon Pinpoint API の[推奨モデル](https://docs.aws.amazon.com/pinpoint/latest/apireference/recommenders-recommender-id.html)リソース (モデルの設定を更新する場合) を使用して指定することができます。これらの設定は、Amazon Pinpoint コンソールを使用して定義することもできます。

Amazon Pinpoint での推奨モデルの使用に関する詳細は、『*Amazon Pinpoint ユーザーガイド*』の「[機械学習モデル](https://docs.aws.amazon.com/pinpoint/latest/userguide/ml-models.html)」を参照してください。