

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

# 更新 Amazon Personalize 市场活动的配置
<a name="update-campaigns"></a>

要更改市场活动的 [最低预调配的 TPS](campaigns.md#min-tps-auto-scaling)、手动部署新的解决方案版本，或修改市场活动的配置（例如，打开在推荐中包含元数据的选项），您必须手动更新市场活动。

 以下内容不需要手动更新市场活动：
+ 如果您的市场活动使用自动市场活动更新，则不必更新市场活动即可部署解决方案的最新自动或手动训练解决方案版本。有关更多信息，请参阅 [市场活动自动更新](campaigns.md#create-campaign-automatic-latest-sv-update)。
+  使用 User-Personalization-v2、User-Personalization 或 Next-Best-Action 时，Amazon Personalize 每两小时自动更新一次最新解决方案版本，以便在操作中包括新物品或操作。您的市场活动会自动使用更新的解决方案版本。

您可以使用 Amazon Personalize 控制台、AWS Command Line Interface (AWS CLI) 或 AWS SDK 手动更新市场活动。

**注意**  
要更新市场活动以打开在推荐中包含元数据的选项，您必须拥有包含一列元数据的物品数据集。您不一定要在训练中使用元数据。  
如果您的市场活动之前部署了使用 User-Personalization-v2 或 Personalized-Ranking-v2 的解决方案版本，而您正在切换到旧版本的配方，则默认情况下，包含元数据的选项处于关闭状态。您可以在更新市场活动时将其启用。有关更多信息，请参阅 [推荐中的物品元数据](campaigns.md#create-campaign-return-metadata)。

**Topics**
+ [更新市场活动（控制台）](#update-campaign-console)
+ [更新市场活动 (AWS CLI)](#update-campaign-cli)
+ [更新市场活动 (AWS SDK)](#update-campaign-sdk)

## 更新市场活动（控制台）
<a name="update-campaign-console"></a>

要部署手动再训练的解决方案版本或更改市场活动配置，您必须更新市场活动。

**更新市场活动（控制台）**

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

1.  选择要更新的市场活动所在的数据集组。

1. 在导航窗格中，选择**市场活动**。

1. 在**市场活动**页面上，选择要更新的市场活动。

1. 在市场活动详细信息页面上，选择**更新**。

1. 在**更新市场活动**页面上，进行更改。例如，如果您要部署经过再训练的解决方案版本，请为**解决方案版本 ID** 选择新解决方案版本的标识号。

1. 选择**更新**。Amazon Personalize 会更新市场活动以使用新的解决方案版本和任何更改的配置。

## 更新市场活动 (AWS CLI)
<a name="update-campaign-cli"></a>

要部署新的解决方案版本，更改市场活动的[最低预调配的 TPS](campaigns.md#min-tps-auto-scaling)，或更改市场活动配置，您必须更新市场活动。使用以下 `update-campaign` 命令，通过 AWS CLI 更新市场活动以使用新的解决方案版本。

将 `campaign arn` 替换为要更新的市场活动的 Amazon 资源名称 (ARN)。将 `new solution version arn` 替换为要部署的解决方案版本。

```
aws personalize update-campaign \
--campaign-arn campaign arn \
--solution-version-arn new solution version arn \
--min-provisioned-tps 1
```

## 更新市场活动 (AWS SDK)
<a name="update-campaign-sdk"></a>

要部署新的解决方案版本，更改市场活动的[最低预调配的 TPS](campaigns.md#min-tps-auto-scaling)，或更改市场活动配置，您必须更新市场活动。使用以下代码，通过 SDK for Python (Boto3) 或 SDK for Java 2.x 更新市场活动。要获得参数的完整列表，请参阅 [UpdateCampaign](API_UpdateCampaign.md)。

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

使用以下 `update_campaign` 方法部署新的解决方案版本。将 `campaign arn` 替换为要更新的市场活动的 Amazon 资源名称 (ARN)，将 `new solution version arn` 替换为新解决方案版本 ARN，并选择更改 `minProvisionedTPS`。

```
import boto3

personalize = boto3.client('personalize')

response = personalize.update_campaign(
    campaignArn = 'campaign arn',
    solutionVersionArn = 'new solution version arn',
    minProvisionedTPS = 1,
)

arn = response['campaignArn']

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

------
#### [ SDK for Java 2.x ]

使用以下 `updateCampaign` 方法，更新市场活动以使用新的解决方案版本。将以下内容作为参数传递：Amazon Personalize 服务客户端、新解决方案版本的 Amazon 资源名称 (ARN) 以及[最低预调配的 TPS](campaigns.md#min-tps-auto-scaling)。

```
public static void updateCampaign(PersonalizeClient personalizeClient, 
                                String campaignArn,
                                String solutionVersionArn, 
                                Integer minProvisionedTPS) {

    try {    
        // build the updateCampaignRequest
        UpdateCampaignRequest updateCampaignRequest = UpdateCampaignRequest.builder()
            .campaignArn(campaignArn)
            .solutionVersionArn(solutionVersionArn)
            .minProvisionedTPS(minProvisionedTPS)
            .build();
        
        // update the campaign
        personalizeClient.updateCampaign(updateCampaignRequest);
        
        DescribeCampaignRequest campaignRequest = DescribeCampaignRequest.builder()
              .campaignArn(campaignArn)
              .build();
    
        DescribeCampaignResponse campaignResponse = personalizeClient.describeCampaign(campaignRequest);
        Campaign updatedCampaign = campaignResponse.campaign();
        
        System.out.println("The Campaign status is " + updatedCampaign.status());
    
    } catch (PersonalizeException e) {
        System.err.println(e.awsErrorDetails().errorMessage());
        System.exit(1);
    }
}
```

------