

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

# 更新 Amazon MSK 集群的配置
<a name="msk-update-cluster-config"></a>

要更新集群配置，请确保集群处于 `ACTIVE` 状态。您还必须确保 MSK 集群上每个代理的分区数低于 [调整集群的大小：每个标准代理的分区数量](bestpractices.md#partitions-per-broker) 中所述的限制。如果超过这些限制，便无法更新集群的配置。

有关 MSK 配置的信息，包括如何创建自定义配置、可以更新哪些属性以及更新现有集群的配置时会发生什么情况，请参阅 [预置 Amazon MSK 配置](msk-configuration.md)。

**Topics**
+ [配置更新期间代理的可用性](#update-config-cluster-availability)
+ [使用更新集群的配置 AWS CLI](#update-config-cli)
+ [使用 API 更新 Amazon MSK 集群的配置](#update-config-api)

## 配置更新期间代理的可用性
<a name="update-config-cluster-availability"></a>

Amazon MSK 在大多数集群配置更新期间保持高可用性。Amazon MSK 进行滚动更新，一次更新一个代理。在此过程中，集群仍保持可用，但各代理将在其配置更新后重新启动。但是，某些配置更改可能需要同时更新所有代理，这可能会造成集群范围内的短暂中断。有关更新期间对代理可用性造成影响的更多信息，请参阅[预置 Amazon MSK 配置](msk-configuration.md)。

在更新生产集群之前，建议在非生产环境中对配置更改进行测试，并在维护时段内安排更新。

如果在升级 MSK 集群时遇到任何问题，请参阅[升级 Amazon MSK 集群时如何排除疑难问题？](https://repost.aws/knowledge-center/msk-upgrade-cluster-issues)

## 使用更新集群的配置 AWS CLI
<a name="update-config-cli"></a>

1. 复制以下 JSON 并将其保存到文件中。将文件命名为 `configuration-info.json`。{{ConfigurationArn}}替换为您要用于更新集群的配置的 Amazon 资源名称 (ARN)。在以下 JSON 中，ARN 字符串必须使用引号引起来。

   {{Configuration-Revision}}替换为您要使用的配置修订版。配置修订版本是从 `1` 开始的整数。在以下 JSON 中，该整数不能使用引号引起来。

   ```
   {
        "Arn": {{ConfigurationArn}},
        "Revision": {{Configuration-Revision}}
   }
   ```

    

1. 运行以下命令，{{ClusterArn}}替换为创建集群时获得的 ARN。如果您没有该集群的 ARN，可以通过列出所有集群来找到它。有关更多信息，请参阅 [列出 Amazon MSK 集群](msk-list-clusters.md)。

   {{Path-to-Config-Info-File}}替换为配置信息文件的路径。如果您命名了在上一步中创建的文件`configuration-info.json`并将其保存在当前目录中，则{{Path-to-Config-Info-File}}为`configuration-info.json`。

   将 {{Current-Cluster-Version}} 替换为集群的当前版本。
**重要**  
集群版本不是简单的整数。要查找集群的当前版本，请使用[DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster)操作或 desc [ribe-](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html) AWS CLI cluster 命令。示例版本是 `KTVPDKIKX0DER`。

   ```
   aws kafka update-cluster-configuration --cluster-arn {{ClusterArn}} --configuration-info file://{{Path-to-Config-Info-File}} --current-version {{Current-Cluster-Version}}
   ```

   下面的示例说明如何使用此命令：

   ```
   aws kafka update-cluster-configuration --cluster-arn "arn:aws:kafka:us-east-1:0123456789012:cluster/exampleName/abcd1234-0123-abcd-5678-1234abcd-1" --configuration-info file://c:\users\tester\msk\configuration-info.json --current-version "K1X5R6FKA87"
   ```

   该 `update-cluster-configuration` 命令的输出如以下 JSON 示例所示。

   ```
   {
       "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2",
       "ClusterOperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef"
   }
   ```

1. 要获得`update-cluster-configuration`操作结果，请运行以下命令，{{ClusterOperationArn}}替换为在命令输出中获得的 ARN。`update-cluster-configuration`

   ```
   aws kafka describe-cluster-operation --cluster-operation-arn {{ClusterOperationArn}}
   ```

   该 `describe-cluster-operation` 命令的输出如以下 JSON 示例所示。

   ```
   {
       "ClusterOperationInfo": {
           "ClientRequestId": "982168a3-939f-11e9-8a62-538df00285db",
           "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2",
           "CreationTime": "2019-06-20T21:08:57.735Z",
           "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef",
           "OperationState": "UPDATE_COMPLETE",
           "OperationType": "UPDATE_CLUSTER_CONFIGURATION",
           "SourceClusterInfo": {},
           "TargetClusterInfo": {
               "ConfigurationInfo": {
                   "Arn": "arn:aws:kafka:us-east-1:123456789012:configuration/ExampleConfigurationName/abcdabcd-abcd-1234-abcd-abcd123e8e8e-1",
                   "Revision": 1
               }
           }
       }
   }
   ```

   在此输出中， `OperationType` 是 `UPDATE_CLUSTER_CONFIGURATION`。如果 `OperationState` 的值为 `UPDATE_IN_PROGRESS`，请等待一段时间，然后再次运行 `describe-cluster-operation` 命令。

## 使用 API 更新 Amazon MSK 集群的配置
<a name="update-config-api"></a>

要使用 API 更新 Amazon MSK 集群的配置，请参阅[UpdateClusterConfiguration](https://docs.aws.amazon.com//msk/1.0/apireference/clusters-clusterarn-configuration.html#UpdateClusterConfiguration)。