

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

# 使用 CLI 创建复制器 AWS
<a name="msk-replicator-create-cli"></a>

使用`create-replicator`命令创建 MSK 复制器。在开始之前，请确保已完成[创建 MSK 复制器所需的 IAM 权限](msk-replicator-create-iam-perms.md)并已完成[准备源集群和目标集群](msk-replicator-prepare-clusters.md)。

**注意**  
以下示例显示了两个 MSK 集群之间的复制。MSK Replicator 还支持在自我管理的 Apache Kafka 集群和使用 Express 代理的 MSK 预配置集群之间进行复制。有关涵盖该场景的 API 示例，请参阅[CreateReplicator 自管理 Kafka 集群的 API 示例](msk-replicator-external-api-examples.md)。

```
aws kafka create-replicator \
  --replicator-name "<replicator-name>" \
  --service-execution-role-arn "arn:aws:iam::<account-id>:role/<role-name>" \
  --kafka-clusters '[
    {
      "AmazonMskCluster": {"MskClusterArn": "<source-cluster-arn>"},
      "VpcConfig": {
        "SubnetIds": ["<subnet-1>", "<subnet-2>"],
        "SecurityGroupIds": ["<security-group-id>"]
      }
    },
    {
      "AmazonMskCluster": {"MskClusterArn": "<target-cluster-arn>"},
      "VpcConfig": {
        "SubnetIds": ["<subnet-1>", "<subnet-2>"],
        "SecurityGroupIds": ["<security-group-id>"]
      }
    }
  ]' \
  --replication-info-list '[
    {
      "SourceKafkaClusterArn": "<source-cluster-arn>",
      "TargetKafkaClusterArn": "<target-cluster-arn>",
      "TopicReplication": {
        "TopicsToReplicate": [".*"],
        "CopyTopicConfigurations": true,
        "CopyAccessControlListsForTopics": true,
        "DetectAndCopyNewTopics": true,
        "StartingPosition": {"Type": "LATEST"},
        "TopicNameConfiguration": {"Type": "PREFIXED"}
      },
      "ConsumerGroupReplication": {
        "ConsumerGroupsToReplicate": [".*"],
        "ConsumerGroupOffsetSyncMode": "LEGACY"
      },
      "TargetCompressionType": "NONE"
    }
  ]'
```

要在创建复制器时启用日志传输，请添加`--log-delivery`参数。以下示例允许将日志传输到亚马逊 CloudWatch 日志、亚马逊 S3 和亚马逊 Data Firehose。

```
aws kafka create-replicator \
  --replicator-name "<replicator-name>" \
  --service-execution-role-arn "arn:aws:iam::<account-id>:role/<role-name>" \
  --kafka-clusters '[
    {
      "AmazonMskCluster": {"MskClusterArn": "<source-cluster-arn>"},
      "VpcConfig": {
        "SubnetIds": ["<subnet-1>", "<subnet-2>"],
        "SecurityGroupIds": ["<security-group-id>"]
      }
    },
    {
      "AmazonMskCluster": {"MskClusterArn": "<target-cluster-arn>"},
      "VpcConfig": {
        "SubnetIds": ["<subnet-1>", "<subnet-2>"],
        "SecurityGroupIds": ["<security-group-id>"]
      }
    }
  ]' \
  --replication-info-list '[
    {
      "SourceKafkaClusterArn": "<source-cluster-arn>",
      "TargetKafkaClusterArn": "<target-cluster-arn>",
      "TopicReplication": {
        "TopicsToReplicate": [".*"],
        "CopyTopicConfigurations": true,
        "CopyAccessControlListsForTopics": true,
        "DetectAndCopyNewTopics": true,
        "StartingPosition": {"Type": "LATEST"},
        "TopicNameConfiguration": {"Type": "PREFIXED"}
      },
      "ConsumerGroupReplication": {
        "ConsumerGroupsToReplicate": [".*"]
      },
      "TargetCompressionType": "NONE"
    }
  ]' \
  --log-delivery '{
    "ReplicatorLogDelivery": {
      "CloudWatchLogs": {
        "Enabled": true,
        "LogGroup": "/mskr/logs/<log-group-name>"
      },
      "S3": {
        "Enabled": true,
        "Bucket": "<s3-bucket-name>",
        "Prefix": "<optional-prefix>"
      },
      "Firehose": {
        "Enabled": true,
        "DeliveryStream": "<delivery-stream-name>"
      }
    }
  }'
```

您可以启用一个或多个日志传送目标。要仅启用 Amazon CloudWatch 日志，请省略`S3`和`Firehose`字段，或将其`Enabled`值设置为。`false`有关日志传送的更多信息，请参阅[MSK 复制器日志](msk-replicator-logs.md)。

**注意**  
启用日志传输后，您的 IAM 角色必须具有写入配置的日志目标所需的额外权限。有关所需权限，请参阅[启用来自 AWS 服务的日志记录](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-vended-logs-permissions.html)。

有关完整的 API 参考，请参阅[CreateReplicator](https://docs.aws.amazon.com/msk/1.0/apireference-replicator/v1-replicators.html#CreateReplicator)《亚马逊 MSK API 参考》。

## 选择性主题复制
<a name="msk-replicator-cli-selective-topics"></a>

在`topicsToReplicate`和中使用正则表达式模式`topicsToExclude`来控制复制哪些主题。以下示例复制了以开头的主题，`prod-`并排除以以下开头`test-`的主题：

```
"topicReplication": {
  "topicsToReplicate": ["prod-.*"],
  "topicsToExclude": ["test-.*"],
  "detectAndCopyNewTopics": true
}
```

## 验证复制器状态
<a name="msk-replicator-cli-verify-status"></a>

创建复制器后，使用`describe-replicator`以下命令检查其状态：

```
aws kafka describe-replicator \
  --replicator-arn arn:aws:kafka:us-east-1:123456789012:replicator/my-replicator/xxx
```

复制器通过 `CREATING` → `RUNNING` 状态前进。等待大约 30 分钟，让复制器进入`RUNNING`状态。如果过渡到`FAILED`，请参阅[对 Amazon MSK 复制器进行故障排除](msk-replicator-troubleshooting.md)。