AWS Lambda을 사용하여 추천 사용자 지정 - Amazon Pinpoint

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Lambda을 사용하여 추천 사용자 지정

Amazon Pinpoint에서는 추천 모델에서 맞춤형 추천을 검색하여 캠페인 및 여정에서 보내는 메시지에 추가할 수 있습니다. 추천 모델은 데이터에서 패턴을 찾고 찾은 패턴을 기반으로 예측 및 추천을 생성하는 기계 학습(ML) 모델의 한 유형입니다. 특정 사용자가 특정 제품 또는 항목 집합에서 선호할 것을 예측하고, 해당 정보를 사용자에게 추천 집합으로 제공합니다.

Amazon Pinpoint에서 추천 모델을 사용하면 각 수신자의 속성 및 동작에 따라 메시지 수신자에게 맞춤형 추천을 보낼 수 있습니다. AWS Lambda를 사용하여 이러한 추천을 사용자 지정하고 개선할 수도 있습니다. 예를 들어 추천을 단일 텍스트 값(예: 제품 이름 또는 ID)에서 보다 정교한 콘텐트(예: 제품 이름, 설명 및 이미지)로 동적으로 변환할 수 있습니다. 또한 Amazon Pinpoint에서 메시지를 보낼 때 실시간으로 이를 수행할 수 있습니다.

이 기능은 미국 동부(버지니아 북부), 미국 서부(오레곤), 아시아 태평양(뭄바이), 아시아 태평양(시드니), 유럽(아일랜드)을 비롯한 AWS 리전에서 사용할 수 있습니다.

메시지에서 추천 사용

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 개발자 안내서를 참조하세요.

AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고 코드를 실행하는 데 사용할 수 있는 컴퓨팅 서비스입니다. 코드를 패키징하여 AWS Lambda에 로Lambda 함수로 업로드합니다. 그러면 AWS Lambda에서는 해당 함수가 간접적으로 호출될 때 실행합니다. 함수는 이벤트에 대한 응답으로 또는 애플리케이션 또는 서비스(예: Amazon Pinpoint)의 요청에 대한 응답으로 사용자가 수동으로 또는 자동으로 간접 호출할 수 있습니다. Lambda 함수 생성 및 호출에 대한 자세한 내용은 AWS Lambda 개발자 안내서를 참조하세요.

추천 모델에 대한 Amazon Pinpoint 구성을 생성한 후 캠페인 및 여정에서 보내는 메시지에 모델의 권장 사항을 추가할 수 있습니다. 이렇게 하려면 추천 속성에 대한 메시지 변수가 포함된 메시지 템플릿을 사용합니다. 추천 속성은 추천 데이터를 저장하도록 설계된 동적 엔드포인트 또는 사용자 속성입니다. 추천 모델에 대한 구성을 만들 때 이러한 속성을 정의합니다.

다음과 같은 유형의 메시지 템플릿에서 추천 속성에 대한 변수를 사용할 수 있습니다.

  • 이메일 템플릿 - 캠페인 또는 여정에서 보내는 이메일 메시지용입니다.

  • 푸시 알림 템플릿 - 캠페인에서 보내는 푸시 알림용입니다.

  • SMS 템플릿 - 캠페인에서 보내는 SMS 문자 메시지용입니다.

Amazon Pinpoint에서 추천 모델을 사용하는 방법에 대한 자세한 내용은 Amazon Pinpoint 사용 설명서기계 학습 모델 섹션을 참조하세요.

추천 데이터를 처리하는 Lambda 함수를 간접적으로 호출하도록 Amazon Pinpoint를 구성한 경우, Amazon Pinpoint는 캠페인 또는 여정에 대한 메시지로 맞춤형 추천을 보낼 때마다 다음과 같은 일반 작업을 수행합니다.

  1. 메시지 및 메시지 템플릿의 구성 설정 및 내용을 평가하고 처리합니다.

  2. 메시지 템플릿이 추천 모델에 연결되어 있는지 확인합니다.

  3. 모델에 연결하고 사용하기 위한 구성 설정을 평가합니다. 이는 모델의 추천 모델 리소스에 의해 정의됩니다.

  4. 모델의 구성 설정에 의해 정의된 추천 속성에 대해 하나 이상의 메시지 변수를 감지합니다.

  5. 모델의 구성 설정에 지정된 Amazon Personalize 캠페인에서 추천 데이터를 검색합니다. 이는 Amazon Personalize 런타임 API의 GetRecommendations 작업을 사용하여 이 태스크를 수행합니다.

  6. 각 메시지 수신자에 대해 적절한 추천 데이터를 동적 추천 속성(RecommendationItems)에 추가합니다.

  7. Lambda 함수를 간접적으로 호출하고 처리를 위해 각 수신자에 대한 추천 데이터를 해당 함수에 보냅니다.

    데이터는 각 수신자에 대한 엔드포인트 정의가 포함된 JSON 객체로 전송됩니다. 각 엔드포인트 정의에는 1~5개의 값으로 이뤄진 정렬된 배열을 포함하는 RecommendationItems 필드가 포함되어 있습니다. 배열의 값 수는 모델의 구성 설정에 따라 다릅니다.

  8. Lambda 함수가 데이터를 처리하고 결과를 반환할 때까지 기다립니다.

    결과는 각 수신자에 대해 업데이트된 엔드포인트 정의를 포함하는 JSON 객체입니다. 업데이트된 각 엔드포인트 정의에는 새 Recommendations 객체가 포함됩니다. 이 객체에는 모델의 구성 설정에서 정의한 각 사용자 지정 추천 속성에 대해 하나씩 1~10개의 필드가 포함되어 있습니다. 이러한 각 필드에는 엔드포인트에 대한 개선된 추천 데이터가 저장됩니다.

  9. 각 수신자에 대해 업데이트된 엔드포인트 정의를 사용하여 각 메시지 변수를 해당 수신자에 대한 적절한 값으로 바꿉니다.

  10. 각 메시지 수신자에 대한 맞춤형 추천이 포함된 메시지 버전을 보냅니다.

이러한 방식으로 추천을 사용자 지정하고 개선하려면 먼저 Amazon Pinpoint에서 보낸 엔드포인트 정의를 처리하고 업데이트된 엔드포인트 정의를 반환하는 Lambda 함수를 만듭니다. 다음으로 Lambda 함수 정책을 함수에 할당하고 함수를 간접적으로 호출하도록 Amazon Pinpoint에 권한을 부여합니다. 그런 다음 Amazon Pinpoint에서 추천 모델을 구성합니다. 모델을 구성할 때 간접적으로 호출할 함수를 지정하고 사용할 추천 속성을 정의합니다.

Lambda 함수 생성

Lambda 함수를 생성하는 방법을 알아보려면 AWS Lambda 개발자 안내서시작하기를 참조하세요. 함수를 설계하고 개발할 때 다음 요구 사항과 지침을 염두에 두십시오.

입력 이벤트 데이터

Amazon Pinpoint는 추천 모델에 대한 Lambda 함수를 간접적으로 호출할 때 메시지를 보내는 캠페인 또는 여정에 대한 구성 및 기타 설정이 포함된 페이로드를 보냅니다. 페이로드에는 메시지 수신자에 대한 엔드포인트 정의와 엔드포인트 ID를 연결하는 맵인 Endpoints 객체가 포함됩니다.

엔드포인트 정의는 Amazon Pinpoint API의 엔드포인트 리소스에서 정의한 구조를 사용합니다. 그러나 여기에는 RecommendationItems라는 동적 추천 속성에 대한 필드도 포함됩니다. RecommendationItems 필드에는 Amazon Personalize 캠페인에서 반환된 엔드포인트에 대한 추천 항목이 하나 이상 포함됩니다. 이 필드의 값은 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 설정은 다음과 같습니다.

  • 추천 모델은 각 엔드포인트 또는 사용자에 대해 세 가지 추천 항목을 검색하도록 구성됩니다. (RecommendationsPerMessage 속성 값은 3으로 설정됩니다.) 이 설정을 사용하면 Amazon Pinpoint에서는 각 엔드포인트 또는 사용자에 대해 첫 번째, 두 번째 및 세 번째 추천 항목만 검색하고 추가합니다.

  • 프로젝트는 각 사용자의 이름, 성 및 거주하는 지역을 저장하는 사용자 지정 사용자 속성을 사용하도록 구성됩니다. (UserAttributes 객체에는 이러한 속성의 값이 포함되어 있습니다.)

  • 프로젝트는 해당 엔드포인트가 프로젝트에서 메시지를 수신하기 위한 사용자의 기본 주소(채널)인지 여부를 나타내는 사용자 지정 엔드포인트 속성(AddressType)을 사용하도록 구성됩니다. (Attributes 객체에는 이 속성의 값이 포함되어 있습니다.)

Amazon Pinpoint에서 Lambda 함수를 간접적으로 호출하고 이 페이로드를 이벤트 데이터로 전송하면 AWS Lambda에서 처리를 위해 Lambda 함수에 데이터를 전달합니다.

각 페이로드는 최대 50개의 엔드포인트에 대한 데이터를 포함할 수 있습니다. 세그먼트에 50개 이상의 엔드포인트가 포함된 경우, Amazon Pinpoint는 함수가 모든 데이터를 처리할 때까지 한 번에 최대 50개의 엔드포인트에 대해 함수를 반복적으로 간접 호출합니다.

응답 데이터 및 요구 사항

Lambda 함수를 설계하고 개발할 경우 기계 학습 모델에 대한 할당량을 염두에 둡니다. 함수가 이러한 할당량에 의해 정의된 조건을 충족하지 않으면 Amazon Pinpoint에서 메시지를 처리하고 보낼 수 없습니다.

또한 다음 요구 사항을 염두에 두십시오.

  • 함수는 입력 이벤트 데이터에 의해 제공된 것과 동일한 형식으로 업데이트된 엔드포인트 정의를 반환해야 합니다.

  • 업데이트된 각 엔드포인트 정의에는 엔드포인트 또는 사용자에 대해 1~10개의 사용자 지정 추천 속성이 포함될 수 있습니다. 이러한 속성의 이름은 Amazon Pinpoint에서 추천 모델을 구성할 때 지정하는 속성 이름과 일치해야 합니다.

  • 모든 사용자 지정 추천 속성은 각 엔드포인트 또는 사용자에 대해 단일 Recommendations 객체로 반환되어야 합니다. 이 요구 사항은 이름 충돌이 발생하지 않도록 하는 데 도움이 됩니다. 엔드포인트 정의의 모든 위치에 Recommendations 객체를 추가할 수 있습니다.

  • 각 사용자 지정 추천 속성의 값은 문자열(단일 값) 또는 문자열 배열(다중 값)이어야 합니다. 값이 문자열 배열인 경우 RecommendationItems 필드에 표시된 대로 Amazon Personalize가 반환한 추천 항목의 순서를 유지하는 것이 좋습니다. 그렇지 않으면 콘텐츠가 엔드포인트 또는 사용자에 대한 모델의 예측을 반영하지 않을 수 있습니다.

  • 함수는 엔드포인트 또는 사용자에 대한 다른 속성 값을 포함하여 이벤트 데이터의 다른 요소를 수정해서는 안 됩니다. 사용자 지정 추천 속성에 대한 값만 추가하고 반환해야 합니다. Amazon Pinpoint는 함수의 응답에 있는 다른 값에 대한 업데이트는 수락하지 않습니다.

  • 함수는 함수를 호출하는 Amazon Pinpoint 프로젝트와 동일한 AWS 리전에서 호스트되어야 합니다. 함수와 프로젝트가 동일한 리전에 있지 않으면 Amazon Pinpoint에서 이벤트 데이터를 함수로 보낼 수 없습니다.

위의 요구 사항 중 하나라도 충족되지 않으면 Amazon Pinpoint에서 메시지를 처리하고 하나 이상의 엔드포인트로 보낼 수 없습니다. 이로 인해 캠페인 또는 여정 활동이 실패할 수 있습니다.

마지막으로 함수에 대해 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.TitleRecommendations.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 객체에 TitleGenre 필드가 포함된 새 Recommendations 객체가 포함됩니다. 이러한 각 필드는 세 개의 정렬된 값 배열(문자열)을 저장합니다. 여기서 각 값은 RecommendationItems 필드의 해당 추천 항목에 대한 개선된 내용을 제공합니다.

Lambda 함수 정책 할당

Lambda 함수를 사용하여 추천 데이터를 처리하려면 먼저 함수를 간접적으로 호출할 권한을 Amazon Pinpoint에 부여해야 합니다. 호출 권한을 부여하려면 함수에 Lambda 함수 정책을 할당합니다. Lambda 함수 정책은 리소스 기반 권한 정책으로, 함수를 사용할 수 있는 개체와 이러한 엔터티가 실행할 수 있는 작업을 지정합니다. 자세한 내용은 AWS Lambda 개발자 안내서에서 AWS Lambda에 리소스 기반 정책 사용을 참조하세요.

아래의 예제 정책은 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 블록이 필요합니다. 이 키는 함수를 간접적으로 호출할 수 있는 리소스를 지정합니다. 앞의 예에서 정책은 하나의 특정 캠페인이 함수를 간접적으로 호출하도록 허용합니다.

또한 Amazon Pinpoint 서비스 주체가 특정 Amazon Pinpoint 프로젝트(projectId)의 모든 캠페인 및 여정에 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 키를 사용하면 한 특정 프로젝트에서 함수를 간접적으로 호출할 수 있습니다. 이 권한은 프로젝트의 모든 캠페인 및 여정에 적용됩니다.

더 일반적인 정책을 작성하려면 다중 문자 매칭 와일드카드(*)를 사용하면 됩니다. 예를 들어 아래의 Condition 블록을 사용하여 모든 Amazon Pinpoint 프로젝트에서 함수를 간접적으로 호출할 수 있습니다.

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

Amazon Pinpoint 계정에 대한 모든 프로젝트에서 Lambda 함수를 사용하려면 앞의 방법으로 정책의 Condition 블록을 구성하는 것이 좋습니다. 그러나 특정 리소스에 대해 특정 작업을 수행하는 데 필요한 권한만 포함하는 정책을 만드는 것이 가장 좋습니다.

함수를 간접적으로 호출하도록 Amazon Pinpoint에 권한 부여

Lambda 함수 정책을 함수에 할당한 후 Amazon Pinpoint에서 특정 프로젝트, 캠페인 또는 여정에 대해 함수를 간접적으로 호출할 수 있도록 하는 권한을 추가할 수 있습니다. AWS Command Line Interface(AWS CLI) 및 Lambda add-permission 명령을 사용하여 이를 수행할 수 있습니다. 다음 예제에서는 특정 프로젝트(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의 경우 백슬래시(\) 줄 연속 문자를 캐럿(^)으로 바꿉니다.

이 명령이 제대로 실행되면 다음과 비슷한 출력이 표시됩니다.

{ "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를 구성하려면 모델에 대해 다음과 같은 Lambda 관련 구성 설정을 지정합니다.

  • RecommendationTransformerUri - 이 속성은 Lambda 함수의 이름 또는 Amazon 리소스 이름(ARN)을 지정합니다.

  • Attributes - 이 객체는 함수가 각 엔드포인트 정의에 추가하는 사용자 지정 추천 속성을 정의하는 맵입니다. 이러한 각 속성은 메시지 템플릿에서 메시지 변수로 사용할 수 있습니다.

Amazon Pinpoint API의 추천 모델 리소스(모델에 대한 구성을 생성할 경우) 또는 Amazon Pinpoint API의 추천 모델 모델 리소스(모델의 구성을 업데이트할 경우)를 사용하여 이러한 설정을 지정할 수 있습니다. Amazon Pinpoint 콘솔을 사용하여 이러한 설정을 정의할 수도 있습니다.

Amazon Pinpoint에서 추천 모델을 사용하는 방법에 대한 자세한 내용은 Amazon Pinpoint 사용 설명서기계 학습 모델 섹션을 참조하세요.