

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 更新 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 SDKs手動更新行銷活動。

**注意**  
若要更新行銷活動以開啟選項，以在建議中包含中繼資料，您必須具有具有中繼資料資料欄的項目資料集。您不需要在訓練中使用中繼資料。  
如果您的行銷活動先前部署了使用 User-Personalization-v2 或 Personalized-Ranking-v2 的解決方案版本，而且您正在切換到舊版配方，則包含中繼資料的選項預設為關閉。您可以在更新行銷活動時啟用它。如需詳細資訊，請參閱[建議中的項目中繼資料](campaigns.md#create-campaign-return-metadata)。

**Topics**
+ [更新行銷活動 （主控台）](#update-campaign-console)
+ [更新行銷活動 (AWS CLI)](#update-campaign-cli)
+ [更新行銷活動AWS SDKs)](#update-campaign-sdk)

## 更新行銷活動 （主控台）
<a name="update-campaign-console"></a>

若要部署手動重新訓練的解決方案版本或變更行銷活動組態，您必須更新您的行銷活動。

**更新行銷活動 （主控台）**

1. 在 [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home)：// 開啟 Amazon Personalize 主控台並登入您的帳戶。

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 Resource Name (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 SDKs)
<a name="update-campaign-sdk"></a>

若要部署新的解決方案版本、變更行銷活動的 [佈建的 TPS 下限](campaigns.md#min-tps-auto-scaling)或變更行銷活動的組態，您必須更新行銷活動。使用以下程式碼，使用適用於 Python (Boto3) 的 SDK 或適用於 Java 的 SDK 2.x 來更新行銷活動。如需有關參數的完整清單，請參閱[UpdateCampaign](API_UpdateCampaign.md)。

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

使用下列`update_campaign`方法部署新的解決方案版本。`campaign arn` 將 取代為您想要更新之行銷活動的 Amazon Resource Name (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 Resource Name (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);
    }
}
```

------