

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 通过市场活动部署 Amazon Personalize 解决方案版本
<a name="campaigns"></a>

要获取包含自定义资源的实时建议，完成[手动创建解决方案版本](creating-a-solution-version.md)后，您就可以通过市场活动部署解决方案版本了。

 *市场活动* 部署的解决方案版本（经过训练的模型）具有预调配的事务容量，用于生成实时建议。创建市场活动后，您可以使用 [GetRecommendations](API_RS_GetRecommendations.md) 或 [GetPersonalizedRanking](API_RS_GetPersonalizedRanking.md) API 操作来获取建议。如果您获得批量物品推荐或用户细分，则无需创建市场活动。有关更多信息，请参阅[获取批量物品推荐](getting-batch-recommendations.md)或[获取批量用户细分](getting-user-segments.md)。

在创建市场活动时，您可以配置以下内容：
+ 您可以将市场活动配置为自动更新以使用解决方案的最新解决方案版本。有关更多信息，请参阅 [市场活动自动更新](#create-campaign-automatic-latest-sv-update)。
+ 您可以在推荐中启用物品元数据。有关更多信息，请参阅 [推荐中的物品元数据](#create-campaign-return-metadata)。
+ 您可以为该市场活动指定预置的每秒最低事务数。这是 Amazon Personalize 为该市场活动预置的基准事务吞吐量。它会设置市场活动处于活动状态时的最低账单费用。有关更多信息，请参阅 [预调配的最低每秒事务数和自动扩缩](#min-tps-auto-scaling)。

您可以使用 Amazon Personalize 控制台、AWS Command Line Interface (AWS CLI) 或 AWS SDK 创建市场活动。如果您想要更改现有市场活动的设置，例如在推荐中启用元数据，则必须更新您的市场活动。有关更多信息，请参阅 [更新 Amazon Personalize 市场活动的配置](update-campaigns.md)。

 当市场活动处于活动状态时，会产生市场活动费用。为避免产生不必要的费用，请务必在市场活动结束后删除它。有关市场活动成本的信息，请参阅 [Amazon Personalize 定价](https://aws.amazon.com/personalize/pricing/)。

**Topics**
+ [市场活动自动更新](#create-campaign-automatic-latest-sv-update)
+ [预调配的最低每秒事务数和自动扩缩](#min-tps-auto-scaling)
+ [推荐中的物品元数据](#create-campaign-return-metadata)
+ [创建市场活动（控制台）](#create-campaign-console)
+ [创建市场活动 (AWS CLI)](#create-campaign-cli)
+ [创建市场活动 (AWS SDK)](#create-campaign-sdk)

## 市场活动自动更新
<a name="create-campaign-automatic-latest-sv-update"></a>

创建市场活动时，您可以启用市场活动自动更新。通过自动更新，市场活动会自动更新以部署解决方案的最新自动或手动训练解决方案版本。这样您就能够更轻松地使市场活动保持最新状态。

例如，如果您的解决方案使用[自动训练](solution-config-auto-training.md)，每七天创建一个新的解决方案版本，则您的市场活动将自动更新为在每周训练中使用最新的解决方案版本。如果您不使用市场活动自动更新，则必须手动更新市场活动以部署最新的已训练模型。
+ 要在使用 Amazon Personalize 控制台创建市场活动时启用市场活动自动更新，请在**市场活动详细信息**中选择**自动更新以使用解决方案的最新解决方案版本**。您可以在市场活动详细信息页面上找到最新更新的时间戳。

  有关更多信息，请参阅 [创建市场活动（控制台）](#create-campaign-console)。
+ 要在使用 [CreateCampaign](API_CreateCampaign.md) API 操作时启用市场活动自动更新，请在 `SolutionVersionArn` 参数中以 `SolutionArn/$LATEST` 格式指定解决方案的 Amazon 资源名称（ARN）。在 `campaignConfig` 中，将 `enableMetadataWithRecommendations` 设置为 `true`。

  要获取最新市场活动更新的时间戳，您可以使用 [DescribeCampaign](API_DescribeCampaign.md) API 操作并查看响应中的 `latestCampaignUpdate` 详细信息。

  有关向您展示如何启用自动更新的代码示例，请参阅[创建市场活动 (AWS CLI)](#create-campaign-cli)或[创建市场活动 (AWS SDK)](#create-campaign-sdk)。

## 预调配的最低每秒事务数和自动扩缩
<a name="min-tps-auto-scaling"></a>

**重要**  
 高 `minProvisionedTPS` 会增加您的成本。我们建议从 1 开始设置 `minProvisionedTPS`（默认值）。使用 Amazon CloudWatch 指标跟踪您的使用情况，并在必要时增加 `minProvisionedTPS`。

 在创建 Amazon Personalize 市场活动时，您可以为该市场活动指定预置的每秒最低事务数 (`minProvisionedTPS`)。这是 Amazon Personalize 为该市场活动预置的基准事务吞吐量。它会设置市场活动处于活动状态时的最低账单费用。事务是单个 `GetRecommendations` 或 `GetPersonalizedRanking` 请求。默认 `minProvisionedTPS` 为 1。

 如果您的 TPS 增加到超过 `minProvisionedTPS`，则 Amazon Personalize 会自动纵向扩展和缩减预置容量，但从不会低于 `minProvisionedTPS`。增加容量时会有短时间延迟，这可能会导致事务丢失。当您的流量减少时，容量将恢复到 `minProvisionedTPS`。

您需要为预置的最低 TPS 付费，或者，如果您的请求超过 `minProvisionedTPS`，则需要为实际 TPS 付费。实际 TPS 是您发出的建议请求的总数。我们建议从低 `minProvisionedTPS` 开始，使用 Amazon CloudWatch 指标跟踪您的使用情况，然后根据需要增加 `minProvisionedTPS`。

有关市场活动成本的更多信息，请参阅 [Amazon Personalize 定价](https://aws.amazon.com/personalize/pricing/)。

## 推荐中的物品元数据
<a name="create-campaign-return-metadata"></a>

**重要**  
如果您使用 User-Personalization-v2 或 Personalized-Ranking-v2 配方，则元数据不会产生额外费用。对于所有其他配方和所有域应用场景，会产生额外费用。有关更多信息，请参阅 [Amazon Personalize 定价](https://aws.amazon.com/personalize/pricing/)。

获得推荐后，您可以让 Amazon Personalize 在推荐结果中包括物品元数据。在请求中，可以从物品数据集选择要包括的列。Amazon Personalize 会在建议响应中返回每个物品的这些数据。

您可以使用元数据来丰富用户界面中的建议，例如将电影的类型添加到轮播中。或者，您可以用它来直观地评测建议质量。如果您在应用程序中使用生成式人工智能，则可以将元数据插入人工智能提示中，以生成相关性更高的内容。有关 Amazon Personalize 与生成式人工智能结合使用的更多信息，请参阅[Amazon Personalize 和生成式人工智能](personalize-with-gen-ai.md)。

### 启用元数据
<a name="enabling-metadata"></a>

要向建议添加元数据，您必须拥有包含一列元数据的物品数据集。您不一定要在训练中使用元数据。有关创建数据集的信息，请参阅[创建架构和数据集](data-prep-creating-datasets.md)。有关更新数据的信息，请参阅[训练后更新数据集中的数据](updating-datasets.md)。

 如果您使用 User-Personalization-v2 或 Personalized-Ranking-v2 配方，则新市场活动会自动选择在推荐结果中包括物品元数据。您没有手动为市场活动启用元数据。对于所有其他配方和域应用场景，必须启用元数据选项：
+ 要使用 Amazon Personalize 控制台启用元数据，请在创建市场活动时，在**市场活动详细信息**中选择**在建议结果中返回物品元数据**。有关更多信息，请参阅 [创建市场活动（控制台）](#create-campaign-console)。
+ 要使用 AWS SDK 或 AWS CLI 启用元数据，请使用 [CreateCampaign](API_CreateCampaign.md) API 操作并在 `campaignConfig` 中将 `enableMetadataWithRecommendations` 设置为 `true`。有关更多信息，请参阅[创建市场活动 (AWS CLI)](#create-campaign-cli)或[创建市场活动 (AWS SDK)](#create-campaign-sdk)。

## 创建市场活动（控制台）
<a name="create-campaign-console"></a>

**重要**  
 当市场活动处于活动状态时，会产生市场活动费用。为避免产生不必要的费用，请务必在市场活动结束后删除它。有关市场活动成本的信息，请参阅 [Amazon Personalize 定价](https://aws.amazon.com/personalize/pricing/)。

在您的解决方案版本状态变为“活动”后，您就可以通过 Amazon Personalize 市场活动进行部署了。

**创建市场活动（控制台）**

1. 打开 Amazon Personalize 控制台（网址为 [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home)），并登录您的账户。

1. 选择包含要部署的解决方案版本的数据集组。

1. 在导航窗格中，在**自定义资源**下选择**市场活动**。

1. 在**市场活动**选项卡上，选择**创建市场活动**。

1. 在**创建新的市场活动**页面上，对于**市场活动详细信息**，提供以下信息：
   + **市场活动名称** – 输入市场活动的名称。您在此处输入的文本将显示在市场活动控制面板和详细信息页面上。
   + **解决方案** – 选择您刚创建的解决方案。
   + **自动更新以使用解决方案的最新解决方案版本** - 选择此选项可让市场活动自动使用最新的活动解决方案版本。如果不选择此选项，则每次要部署新的解决方案版本时都必须手动更新市场活动。有关更多信息，请参阅 [市场活动自动更新](#create-campaign-automatic-latest-sv-update)。
   + **解决方案版本 ID** - 如果不通过市场活动自动更新来使用最新的解决方案版本，请选择要部署的解决方案版本的 ID。
   + **预置的每秒最低事务数（在 API 中称为 minProvisionedTPS）**– 设置 Amazon Personalize 支持的预置的每秒最低事务数。较高的值会增加费用。我们建议从 1（默认值）开始设置。使用 Amazon CloudWatch 指标跟踪您的使用情况，并在必要时增加 `minProvisionedTPS`。有关更多信息，请参阅 [预调配的最低每秒事务数和自动扩缩](#min-tps-auto-scaling)。
   + **在推荐结果中返回物品元数据** - 如果您希望在推荐结果中包括元数据，请选择此选项。如果启用了此选项，则在获取建议时可以指定物品数据集中的列。有关更多信息，请参阅 [推荐中的物品元数据](#create-campaign-return-metadata)。

1. 如果您使用了 User-Personalization 配方，则在**市场活动配置**中，可以选择输入**浏览权重**和**浏览项目中断时长**的值。有关更多信息，请参阅 [User-Personalization](native-recipe-new-item-USER_PERSONALIZATION.md)。

1. 对于**标签**，可以选择添加任何标签。有关标记 Amazon Personalize 资源的更多信息，请参阅[为 Amazon Personalize 资源添加标签](tagging-resources.md)。

1. 选择**创建市场活动**。

1. 在市场活动详细信息页面上，当市场活动状态变为**活动** 时，您可以使用市场活动来获取建议并记录展示量。有关更多信息，请参阅 [从 Amazon Personalize 获取建议](getting-recommendations.md)。

   当市场活动状态为“活动”时，市场活动即已准备就绪。如果您重新训练解决方案版本，或者想要更改市场活动设置，则必须更新您的市场活动。有关更多信息，请参阅 [更新 Amazon Personalize 市场活动的配置](update-campaigns.md)。

## 创建市场活动 (AWS CLI)
<a name="create-campaign-cli"></a>

**重要**  
 当市场活动处于活动状态时，会产生市场活动费用。为避免产生不必要的费用，请务必在市场活动结束后删除它。有关市场活动成本的信息，请参阅 [Amazon Personalize 定价](https://aws.amazon.com/personalize/pricing/)。

在您的解决方案版本变为“活动”后，您就可以通过 Amazon Personalize 市场活动进行部署了。要使用 AWS CLI 创建市场活动，请使用 `create-campaign` 命令。

以下代码示例演示了如何创建市场活动。该示例部署了使用 User-Personalization 配方的解决方案的最新解决方案版本。它创建的市场活动会自动更新以使用未来的解决方案版本。该代码使用以下配置：
+ 它将市场活动配置为自动更新，以便使用适用于您的解决方案的最新解决方案版本：`solution-version-arn` 的格式为 `solution ARN/$LATEST`，`syncWithLatestSolutionVersion` 为 `True`。要使用该代码，请将 `solution ARN` 替换为解决方案的 Amazon 资源名称（ARN）。

  要禁用自动 `syncWithLatestSolutionVersion`，请仅指定解决方案版本 ARN（不带 `/$LATEST`），并将 `syncWithLatestSolutionVersion` 设置为 `False`。
+ 它将 `enableMetadataWithRecommendations` 选项设置为 `True`。这样会启用推荐请求选项，以便将物品数据集中的物品元数据与推荐结果一起包括在内。要禁用此选项，请将其设置为 `False`。有关更多信息，请参阅 [推荐中的物品元数据](#create-campaign-return-metadata)。
+ 它将 `min-provisioned-tps` 设置为 1（默认值）。我们建议从 1 开始设置 `minProvisionedTPS`（默认值）。使用 Amazon CloudWatch 指标跟踪您的使用情况，并在必要时增加 `minProvisionedTPS`。有关更多信息，请参阅 [预调配的最低每秒事务数和自动扩缩](#min-tps-auto-scaling)。

要获得所有参数的完整列表，请参阅[CreateCampaign](API_CreateCampaign.md)。

```
aws personalize create-campaign \
--name campaign-name \
--solution-version-arn solution-arn/\$LATEST \
--min-provisioned-tps 1 \
--campaign-config "{"\"syncWithLatestSolutionVersion"\": "true", "\"enableMetadataWithRecommendations"\": "true"}"
```

当市场活动状态为“活动”时，市场活动即已准备就绪。要获取当前状态，请调用 [DescribeCampaign](API_DescribeCampaign.md) 并检查 `status` 字段是否为 `ACTIVE`。

如果您重新训练解决方案版本，但市场活动未自动更新为使用最新的解决方案版本，或者如果您想要更改市场活动设置，则必须更新您的市场活动。有关更多信息，请参阅 [更新 Amazon Personalize 市场活动的配置](update-campaigns.md)。

Amazon Personalize 为您提供用于管理市场活动的操作（如 [ListCampaigns](API_ListCampaigns.md)）以列出您创建的市场活动。您可以通过调用 [DeleteCampaign](API_DeleteCampaign.md) 来删除活动。如果您删除一个市场活动，不会删除属于该市场活动的一部分的解决方案版本。

在创建市场活动后，可以使用它来进行推荐。有关更多信息，请参阅 [从 Amazon Personalize 获取建议](getting-recommendations.md)。

## 创建市场活动 (AWS SDK)
<a name="create-campaign-sdk"></a>

**重要**  
 当市场活动处于活动状态时，会产生市场活动费用。为避免产生不必要的费用，请务必在市场活动结束后删除它。有关市场活动成本的信息，请参阅 [Amazon Personalize 定价](https://aws.amazon.com/personalize/pricing/)。

在您的解决方案版本变为“活动”后，您就可以通过 Amazon Personalize 市场活动进行部署了。要使用 AWS SDK 创建市场活动，请使用 [CreateCampaign](API_CreateCampaign.md) API 操作。

以下代码示例演示了如何创建市场活动。该代码部署了使用 User-Personalization 配方的解决方案的最新解决方案版本。它创建的市场活动会自动更新以使用未来的解决方案版本。该代码使用以下配置：
+ 它将市场活动配置为自动更新，以便使用适用于您的解决方案的最新解决方案版本：`solutionVersionArn` 的格式为 `solution ARN/$LATEST`，`syncWithLatestSolutionVersion` 为 `True`。要使用该代码，请将 `solution ARN` 替换为解决方案版本的 Amazon 资源名称（ARN）。

  要禁用自动 `syncWithLatestSolutionVersion`，请仅指定解决方案版本 ARN（不带 `/$LATEST`），并将 `syncWithLatestSolutionVersion` 设置为 `False`。
+ 它将 `enableMetadataWithRecommendations` 选项设置为 `True`。这样会启用推荐请求选项，以便将物品数据集中的物品元数据与推荐结果一起包括在内。要禁用此选项，请将其设置为 `False`。有关更多信息，请参阅 [推荐中的物品元数据](#create-campaign-return-metadata)。
+ 它将 `minProvisionedTPS` 设置为 1（默认值）。对于 `minProvisionedTPS`，我们建议从 1（默认值）开始设置。使用 Amazon CloudWatch 指标跟踪您的使用情况，并在必要时增加 `minProvisionedTPS`。有关更多信息，请参阅 [预调配的最低每秒事务数和自动扩缩](#min-tps-auto-scaling)。

要获得所有参数的完整列表，请参阅[CreateCampaign](API_CreateCampaign.md)。

------
#### [ SDK for Python (Boto3) ]

```
import boto3

personalize = boto3.client('personalize')

response = personalize.create_campaign(
    name = 'campaign name',
    solutionVersionArn = 'solution ARN/$LATEST',
    minProvisionedTPS = 1,
    campaignConfig = {"syncWithLatestSolutionVersion": True, "enableMetadataWithRecommendations": True}
)

arn = response['campaignArn']

description = personalize.describe_campaign(campaignArn = arn)['campaign']
print('Name: ' + description['name'])
print('ARN: ' + description['campaignArn'])
print('Status: ' + description['status'])
```

------
#### [ SDK for JavaScript v3 ]

```
// Get service clients module and commands using ES6 syntax.
import { CreateCampaignCommand, PersonalizeClient } from
  "@aws-sdk/client-personalize";

// create personalizeClient
const personalizeClient = new PersonalizeClient({ region: "REGION" });

// set the campaign parameters
export const createCampaignParam = {
  solutionVersionArn: "SOLUTION_ARN/$LATEST" /* required */,
  name: "NAME" /* required */,
  minProvisionedTPS: 1 /* optional */,
  campaignConfig: {   /* optional */
    syncWithLatestSolutionVersion: true,
    enableMetadataWithRecommendations: true,
  },
};

export const run = async () => {
  try {
    const response = await personalizeClient.send(
      new CreateCampaignCommand(createCampaignParam)
    );
    console.log("Success", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------

当市场活动状态为“活动”时，市场活动即已准备就绪。要获取当前状态，请调用 [DescribeCampaign](API_DescribeCampaign.md) 并检查 `status` 字段是否为 `ACTIVE`。

如果您手动重新训练解决方案版本，或如果您想要更改市场活动设置，则必须更新您的市场活动。有关更多信息，请参阅 [更新 Amazon Personalize 市场活动的配置](update-campaigns.md)。

Amazon Personalize 为您提供用于管理市场活动的操作（如 [ListCampaigns](API_ListCampaigns.md)）以列出您创建的市场活动。您可以通过调用 [DeleteCampaign](API_DeleteCampaign.md) 来删除活动。如果您删除一个市场活动，不会删除属于该市场活动的一部分的解决方案版本。

在创建您的市场活动后，请使用它来进行推荐。有关更多信息，请参阅 [从 Amazon Personalize 获取建议](getting-recommendations.md)。