使用 的 Amazon MSK範例 AWS CLI - AWS Command Line Interface

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

使用 的 Amazon MSK範例 AWS CLI

下列程式碼範例示範如何搭配 AWS Command Line Interface Amazon 使用 來執行動作和實作常見案例MSK。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會示範如何呼叫個別服務函數,但您可以在相關案例中查看內容中的動作。

每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例示範如何使用 create-cluster

AWS CLI

若要建立 Amazon MSK叢集

下列create-cluster範例會建立具有三個代理程式節點MessagingCluster的MSK叢集。名為 JSON的檔案會brokernodegroupinfo.json指定您要 Amazon MSK分發代理程式節點的三個子網路。此範例不會指定監控層級,因此叢集會取得DEFAULT層級。

aws kafka create-cluster \ --cluster-name "MessagingCluster" \ --broker-node-group-info file://brokernodegroupinfo.json \ --kafka-version "2.2.1" \ --number-of-broker-nodes 3

brokernodegroupinfo.json 的內容:

{ "InstanceType": "kafka.m5.xlarge", "BrokerAZDistribution": "DEFAULT", "ClientSubnets": [ "subnet-0123456789111abcd", "subnet-0123456789222abcd", "subnet-0123456789333abcd" ] }

輸出:

{ "ClusterArn": "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2", "ClusterName": "MessagingCluster", "State": "CREATING" }

如需詳細資訊,請參閱 Amazon Managed Streaming for Apache Kafka 中的建立 Amazon MSK叢集

  • 如需API詳細資訊,請參閱 命令參考 CreateCluster中的 。 AWS CLI

下列程式碼範例示範如何使用 create-configuration

AWS CLI

建立自訂 Amazon MSK組態

下列create-configuration範例會使用輸入檔案中指定的伺服器屬性建立自訂MSK組態。

aws kafka create-configuration \ --name "CustomConfiguration" \ --description "Topic autocreation enabled; Apache ZooKeeper timeout 2000 ms; Log rolling 604800000 ms." \ --kafka-versions "2.2.1" \ --server-properties file://configuration.txt

configuration.txt 的內容:

auto.create.topics.enable = true zookeeper.connection.timeout.ms = 2000 log.roll.ms = 604800000

此命令不會產生輸出。輸出:

{ "Arn": "arn:aws:kafka:us-west-2:123456789012:configuration/CustomConfiguration/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2", "CreationTime": "2019-10-09T15:26:05.548Z", "LatestRevision": { "CreationTime": "2019-10-09T15:26:05.548Z", "Description": "Topic autocreation enabled; Apache ZooKeeper timeout 2000 ms; Log rolling 604800000 ms.", "Revision": 1 }, "Name": "CustomConfiguration" }

如需詳細資訊,請參閱 Amazon Managed Streaming for Apache Kafka 開發人員指南 中的 Amazon MSK Configuration Operations

下列程式碼範例示範如何使用 describe-cluster

AWS CLI

描述叢集

下列describe-cluster範例說明 Amazon MSK叢集。

aws kafka describe-cluster \ --cluster-arn arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5

輸出:

{ "ClusterInfo": { "BrokerNodeGroupInfo": { "BrokerAZDistribution": "DEFAULT", "ClientSubnets": [ "subnet-cbfff283", "subnet-6746046b" ], "InstanceType": "kafka.m5.large", "SecurityGroups": [ "sg-f839b688" ], "StorageInfo": { "EbsStorageInfo": { "VolumeSize": 100 } } }, "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5", "ClusterName": "demo-cluster-1", "CreationTime": "2020-07-09T02:31:36.223000+00:00", "CurrentBrokerSoftwareInfo": { "KafkaVersion": "2.2.1" }, "CurrentVersion": "K3AEGXETSR30VB", "EncryptionInfo": { "EncryptionAtRest": { "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a7ca56d5-0768-4b64-a670-339a9fbef81c" }, "EncryptionInTransit": { "ClientBroker": "TLS_PLAINTEXT", "InCluster": true } }, "EnhancedMonitoring": "DEFAULT", "OpenMonitoring": { "Prometheus": { "JmxExporter": { "EnabledInBroker": false }, "NodeExporter": { "EnabledInBroker": false } } }, "NumberOfBrokerNodes": 2, "State": "ACTIVE", "Tags": {}, "ZookeeperConnectString": "z-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181,z-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181,z-3.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181" } }

如需詳細資訊,請參閱 Amazon Managed Streaming for Apache Kafka 開發人員指南 中的列出 Amazon MSK叢集

  • 如需API詳細資訊,請參閱 命令參考 DescribeCluster中的 。 AWS CLI

下列程式碼範例示範如何使用 get-bootstrap-brokers

AWS CLI

若要取得引導代理程式

下列get-bootstrap-brokers範例會擷取 Amazon MSK叢集的引導代理程式資訊。

aws kafka get-bootstrap-brokers \ --cluster-arn arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5

輸出:

{ "BootstrapBrokerString": "b-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9092,b-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9092", "BootstrapBrokerStringTls": "b-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9094,b-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9094" }

如需詳細資訊,請參閱 Amazon Managed Streaming for Apache Kafka 開發人員指南中的取得引導代理程式。

下列程式碼範例示範如何使用 list-clusters

AWS CLI

列出可用的叢集

下列list-clusters範例列出您 AWS 帳戶中的 Amazon MSK叢集。

aws kafka list-clusters

輸出:

{ "ClusterInfoList": [ { "BrokerNodeGroupInfo": { "BrokerAZDistribution": "DEFAULT", "ClientSubnets": [ "subnet-cbfff283", "subnet-6746046b" ], "InstanceType": "kafka.m5.large", "SecurityGroups": [ "sg-f839b688" ], "StorageInfo": { "EbsStorageInfo": { "VolumeSize": 100 } } }, "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5", "ClusterName": "demo-cluster-1", "CreationTime": "2020-07-09T02:31:36.223000+00:00", "CurrentBrokerSoftwareInfo": { "KafkaVersion": "2.2.1" }, "CurrentVersion": "K3AEGXETSR30VB", "EncryptionInfo": { "EncryptionAtRest": { "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a7ca56d5-0768-4b64-a670-339a9fbef81c" }, "EncryptionInTransit": { "ClientBroker": "TLS_PLAINTEXT", "InCluster": true } }, "EnhancedMonitoring": "DEFAULT", "OpenMonitoring": { "Prometheus": { "JmxExporter": { "EnabledInBroker": false }, "NodeExporter": { "EnabledInBroker": false } } }, "NumberOfBrokerNodes": 2, "State": "ACTIVE", "Tags": {}, "ZookeeperConnectString": "z-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181,z-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181,z-3.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181" } ] }

如需詳細資訊,請參閱 Amazon Managed Streaming for Apache Kafka 開發人員指南 中的列出 Amazon MSK叢集

  • 如需API詳細資訊,請參閱 命令參考 ListClusters中的 。 AWS CLI

下列程式碼範例示範如何使用 update-broker-storage

AWS CLI

更新代理程式的EBS儲存體

下列update-broker-storage範例會更新叢集中所有代理程式的EBS儲存量。Amazon MSK 會將每個代理程式的目標儲存量設定為範例中指定的量。您可以描述叢集或列出所有叢集,以取得叢集的目前版本。

aws kafka update-broker-storage \ --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2" \ --current-version "K21V3IB1VIZYYH" \ --target-broker-ebs-volume-info "KafkaBrokerNodeId=ALL,VolumeSizeGB=1100"

輸出會傳回update-broker-storage此操作ARN的 。若要判斷此操作是否已完成,請使用 describe-cluster-operation命令搭配此 ARN做為輸入。

{ "ClusterArn": "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2", "ClusterOperationArn": "arn:aws:kafka:us-west-2:123456789012:cluster-operation/V123450123/a1b2c3d4-1234-abcd-cdef-22222EXAMPLE-2/a1b2c3d4-abcd-1234-bcde-33333EXAMPLE" }

如需詳細資訊,請參閱 Amazon Managed Streaming for Apache Kafka 開發人員指南 中的更新代理程式的EBS儲存

下列程式碼範例示範如何使用 update-cluster-configuration

AWS CLI

更新 Amazon MSK叢集的組態

下列update-cluster-configuration範例會更新指定現有MSK叢集的組態。它使用自訂MSK組態。

aws kafka update-cluster-configuration \ --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2" \ --configuration-info file://configuration-info.json \ --current-version "K21V3IB1VIZYYH"

configuration-info.json 的內容:

{ "Arn": "arn:aws:kafka:us-west-2:123456789012:configuration/CustomConfiguration/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2", "Revision": 1 }

輸出會傳回update-cluster-configuration此操作ARN的 。若要判斷此操作是否已完成,請使用 describe-cluster-operation命令搭配此 ARN做為輸入。

{ "ClusterArn": "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2", "ClusterOperationArn": "arn:aws:kafka:us-west-2:123456789012:cluster-operation/V123450123/a1b2c3d4-1234-abcd-cdef-22222EXAMPLE-2/a1b2c3d4-abcd-1234-bcde-33333EXAMPLE" }

如需詳細資訊,請參閱 Amazon Managed Streaming for Apache Kafka 開發人員指南 中的更新 Amazon MSK叢集的組態