

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

# 更新解决方案以更改其自动训练配置
<a name="updating-solution"></a>

创建解决方案后，您可以更改其自动训练配置和事件配置：
+ 您可以打开或关闭自动训练，也可以更改训练频率。
  + 如果开启自动训练，则第一次自动训练将在解决方案更新完成后的一小时内开始。如果您在一小时内手动创建解决方案版本，则解决方案会跳过第一次自动训练。
  + 如果您修改解决方案的训练频率，则训练计划会重置，并且新的解决方案版本将在一小时内开始训练。解决方案版本的创建继续按新的频率进行，即第 1 天是更新解决方案的那一天。
+ 您可以更新解决方案事件配置。如果解决方案已指定一个事件配置，则新的事件配置将替换原来的配置。有关针对事件配置优化解决方案的信息，请参阅[使用事件配置优化解决方案](optimizing-solution-events-config.md)。

可以使用 Amazon Personalize 控制台、AWS Command Line Interface 或 AWS SDK 更新解决方案。解决方案更新要几分钟。在更新过程中，您可以为解决方案创建解决方案版本，但不能删除解决方案。在更新完成之前，解决方案使用之前的配置。有关自动训练的更多信息，请参阅[配置自动训练](solution-config-auto-training.md)。

**Topics**
+ [更新解决方案（控制台）](#update-solution-console)
+ [更新解决方案（AWS CLI）](#update-solution-cli)
+ [更新解决方案 (AWS SDK)](#update-solution-sdk)

## 更新解决方案（控制台）
<a name="update-solution-console"></a>

 要在控制台中更新解决方案，请导航到解决方案，选择更新，然后指定要使用的新配置。

**配置解决方案**

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

1. 在**数据集组**页面，选择您的数据集组。

1. 在导航窗格中，选择**自定义资源**，然后选择**解决方案和配方**。

1. 选择您的解决方案，然后选择右上角的**更新**。

1. 在**自动训练**中，修改解决方案是否使用自动训练。如果自动训练已开启，则可以更改 `Automatic training frequency`。默认训练频率为每 7 天一次。

1. 选择**更新解决方案**。您可以在解决方案的详细信息页面上找到解决方案更新的状态。

## 更新解决方案（AWS CLI）
<a name="update-solution-cli"></a>

要使用 AWS Command Line Interface 更新解决方案，请使用 `update-solution` 命令。此命令使用 [UpdateSolution](API_UpdateSolution.md) API 操作。以下代码展示了如何更新解决方案以使用训练频率为 5 天的自动训练。要关闭自动训练，请指定 `--no-perform-auto-training` 并省略 `solution-update-config`。

默认训练频率为每 7 天一次。表达式必须采用以下格式：`rate(value unit)`。对于值，指定一个介于 1 和 30 之间的数字。对于单位，请指定 `day` 或 `days`。

```
aws personalize update-solution \
--solution-arn solution ARN \
--perform-auto-training \
--solution-update-config "{\"autoTrainingConfig\": {\"schedulingExpression\": \"rate(5 days)\"}}"
```

要获取更新的状态，请使用 `describe-solution` 命令（使用 [DescribeSolution](API_DescribeSolution.md) API 操作），并在 `latestSolutionUpdate` 中找到更新状态。

## 更新解决方案 (AWS SDK)
<a name="update-solution-sdk"></a>

要使用 AWS SDK 更新解决方案，请使用 [UpdateSolution](API_UpdateSolution.md) API 操作。以下代码展示了如何使用 SDK for Python（Boto3）更新解决方案以使用训练频率为 5 天的自动训练。该代码通过 [DescribeSolution](API_DescribeSolution.md) API 操作获取更新的状态。

默认训练频率为每 7 天一次。表达式必须采用以下格式：`rate(value unit)`。对于值，指定一个介于 1 和 30 之间的数字。对于单位，请指定 `day` 或 `days`。

```
import boto3

personalize = boto3.client('personalize')

update_solution_response = personalize.update_solution(
    solutionArn='SOLUTION ARN',
    performAutoTraining=True,
    solutionUpdateConfig={
        "autoTrainingConfig": {
            "schedulingExpression": "rate(5 days)"
        }
    }
)
describe_solution_response = personalize.describe_solution(
    solutionArn='SOLUTION ARN'
)
update_status = describe_solution_response["solution"]["latestSolutionUpdate"]["status"]
print(f"Update status: {update_status}")
```