Managed Streaming for Kafka

2023/10/17 - Managed Streaming for Kafka - 5 new api methods

Changes  AWS Managed Streaming for Kafka is launching MSK Replicator, a new feature that enables customers to reliably replicate data across Amazon MSK clusters in same or different AWS regions. You can now use SDK to create, list, describe, delete, update, and manage tags of MSK Replicators.

ListReplicators (new) Link ¶

Lists the replicators.

See also: AWS API Documentation

Request Syntax

client.list_replicators(
    MaxResults=123,
    NextToken='string',
    ReplicatorNameFilter='string'
)
type MaxResults:

integer

param MaxResults:

The maximum number of results to return in the response. If there are more results, the response includes a NextToken parameter.

type NextToken:

string

param NextToken:

If the response of ListReplicators is truncated, it returns a NextToken in the response. This NextToken should be sent in the subsequent request to ListReplicators.

type ReplicatorNameFilter:

string

param ReplicatorNameFilter:

Returns replicators starting with given name.

rtype:

dict

returns:

Response Syntax

{
    'NextToken': 'string',
    'Replicators': [
        {
            'CreationTime': datetime(2015, 1, 1),
            'CurrentVersion': 'string',
            'IsReplicatorReference': True|False,
            'KafkaClustersSummary': [
                {
                    'AmazonMskCluster': {
                        'MskClusterArn': 'string'
                    },
                    'KafkaClusterAlias': 'string'
                },
            ],
            'ReplicationInfoSummaryList': [
                {
                    'SourceKafkaClusterAlias': 'string',
                    'TargetKafkaClusterAlias': 'string'
                },
            ],
            'ReplicatorArn': 'string',
            'ReplicatorName': 'string',
            'ReplicatorResourceArn': 'string',
            'ReplicatorState': 'RUNNING'|'CREATING'|'UPDATING'|'DELETING'|'FAILED'
        },
    ]
}

Response Structure

  • (dict) -- HTTP Status Code 200: OK.

    • NextToken (string) --

      If the response of ListReplicators is truncated, it returns a NextToken in the response. This NextToken should be sent in the subsequent request to ListReplicators.

    • Replicators (list) --

      List containing information of each of the replicators in the account.

      • (dict) --

        Information about a replicator.

        • CreationTime (datetime) --

          The time the replicator was created.

        • CurrentVersion (string) --

          The current version of the replicator.

        • IsReplicatorReference (boolean) --

          Whether this resource is a replicator reference.

        • KafkaClustersSummary (list) --

          Kafka Clusters used in setting up sources / targets for replication.

          • (dict) --

            Summarized information about Kafka Cluster used as source / target for replication.

            • AmazonMskCluster (dict) --

              Details of an Amazon MSK Cluster.

              • MskClusterArn (string) --

                The Amazon Resource Name (ARN) of an Amazon MSK cluster.

            • KafkaClusterAlias (string) --

              The alias of the Kafka cluster. Used to prefix names of replicated topics.

        • ReplicationInfoSummaryList (list) --

          A list of summarized information of replications between clusters.

          • (dict) --

            Summarized information of replication between clusters.

            • SourceKafkaClusterAlias (string) --

              The alias of the source Kafka cluster.

            • TargetKafkaClusterAlias (string) --

              The alias of the target Kafka cluster.

        • ReplicatorArn (string) --

          The Amazon Resource Name (ARN) of the replicator.

        • ReplicatorName (string) --

          The name of the replicator.

        • ReplicatorResourceArn (string) --

          The Amazon Resource Name (ARN) of the replicator resource in the region where the replicator was created.

        • ReplicatorState (string) --

          State of the replicator.

CreateReplicator (new) Link ¶

Creates the replicator.

See also: AWS API Documentation

Request Syntax

client.create_replicator(
    Description='string',
    KafkaClusters=[
        {
            'AmazonMskCluster': {
                'MskClusterArn': 'string'
            },
            'VpcConfig': {
                'SecurityGroupIds': [
                    'string',
                ],
                'SubnetIds': [
                    'string',
                ]
            }
        },
    ],
    ReplicationInfoList=[
        {
            'ConsumerGroupReplication': {
                'ConsumerGroupsToExclude': [
                    'string',
                ],
                'ConsumerGroupsToReplicate': [
                    'string',
                ],
                'DetectAndCopyNewConsumerGroups': True|False,
                'SynchroniseConsumerGroupOffsets': True|False
            },
            'SourceKafkaClusterArn': 'string',
            'TargetCompressionType': 'NONE'|'GZIP'|'SNAPPY'|'LZ4'|'ZSTD',
            'TargetKafkaClusterArn': 'string',
            'TopicReplication': {
                'CopyAccessControlListsForTopics': True|False,
                'CopyTopicConfigurations': True|False,
                'DetectAndCopyNewTopics': True|False,
                'TopicsToExclude': [
                    'string',
                ],
                'TopicsToReplicate': [
                    'string',
                ]
            }
        },
    ],
    ReplicatorName='string',
    ServiceExecutionRoleArn='string',
    Tags={
        'string': 'string'
    }
)
type Description:

string

param Description:

A summary description of the replicator.

type KafkaClusters:

list

param KafkaClusters:

[REQUIRED]

Kafka Clusters to use in setting up sources / targets for replication.

  • (dict) --

    Information about Kafka Cluster to be used as source / target for replication.

    • AmazonMskCluster (dict) -- [REQUIRED]

      Details of an Amazon MSK Cluster.

      • MskClusterArn (string) -- [REQUIRED]

        The Amazon Resource Name (ARN) of an Amazon MSK cluster.

    • VpcConfig (dict) -- [REQUIRED]

      Details of an Amazon VPC which has network connectivity to the Apache Kafka cluster.

      • SecurityGroupIds (list) --

        The security groups to attach to the ENIs for the broker nodes.

        • (string) --

      • SubnetIds (list) -- [REQUIRED]

        The list of subnets in the client VPC to connect to.

        • (string) --

type ReplicationInfoList:

list

param ReplicationInfoList:

[REQUIRED]

A list of replication configurations, where each configuration targets a given source cluster to target cluster replication flow.

  • (dict) --

    Specifies configuration for replication between a source and target Kafka cluster.

    • ConsumerGroupReplication (dict) -- [REQUIRED]

      Configuration relating to consumer group replication.

      • ConsumerGroupsToExclude (list) --

        List of regular expression patterns indicating the consumer groups that should not be replicated.

        • (string) --

      • ConsumerGroupsToReplicate (list) -- [REQUIRED]

        List of regular expression patterns indicating the consumer groups to copy.

        • (string) --

      • DetectAndCopyNewConsumerGroups (boolean) --

        Enables synchronization of consumer groups to target cluster.

      • SynchroniseConsumerGroupOffsets (boolean) --

        Enables synchronization of consumer group offsets to target cluster. The translated offsets will be written to topic __consumer_offsets.

    • SourceKafkaClusterArn (string) -- [REQUIRED]

      The ARN of the source Kafka cluster.

    • TargetCompressionType (string) -- [REQUIRED]

      The compression type to use when producing records to target cluster.

    • TargetKafkaClusterArn (string) -- [REQUIRED]

      The ARN of the target Kafka cluster.

    • TopicReplication (dict) -- [REQUIRED]

      Configuration relating to topic replication.

      • CopyAccessControlListsForTopics (boolean) --

        Whether to periodically configure remote topic ACLs to match their corresponding upstream topics.

      • CopyTopicConfigurations (boolean) --

        Whether to periodically configure remote topics to match their corresponding upstream topics.

      • DetectAndCopyNewTopics (boolean) --

        Whether to periodically check for new topics and partitions.

      • TopicsToExclude (list) --

        List of regular expression patterns indicating the topics that should not be replicated.

        • (string) --

      • TopicsToReplicate (list) -- [REQUIRED]

        List of regular expression patterns indicating the topics to copy.

        • (string) --

type ReplicatorName:

string

param ReplicatorName:

[REQUIRED]

The name of the replicator. Alpha-numeric characters with '-' are allowed.

type ServiceExecutionRoleArn:

string

param ServiceExecutionRoleArn:

[REQUIRED]

The ARN of the IAM role used by the replicator to access resources in the customer's account (e.g source and target clusters)

type Tags:

dict

param Tags:

List of tags to attach to created Replicator.

  • (string) --

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'ReplicatorArn': 'string',
    'ReplicatorName': 'string',
    'ReplicatorState': 'RUNNING'|'CREATING'|'UPDATING'|'DELETING'|'FAILED'
}

Response Structure

  • (dict) --

    HTTP Status Code 200: OK.

    • ReplicatorArn (string) --

      The Amazon Resource Name (ARN) of the replicator.

    • ReplicatorName (string) --

      Name of the replicator provided by the customer.

    • ReplicatorState (string) --

      State of the replicator.

DeleteReplicator (new) Link ¶

Deletes a replicator.

See also: AWS API Documentation

Request Syntax

client.delete_replicator(
    CurrentVersion='string',
    ReplicatorArn='string'
)
type CurrentVersion:

string

param CurrentVersion:

The current version of the replicator.

type ReplicatorArn:

string

param ReplicatorArn:

[REQUIRED]

The Amazon Resource Name (ARN) of the replicator to be deleted.

rtype:

dict

returns:

Response Syntax

{
    'ReplicatorArn': 'string',
    'ReplicatorState': 'RUNNING'|'CREATING'|'UPDATING'|'DELETING'|'FAILED'
}

Response Structure

  • (dict) -- HTTP Status Code 200: OK.

    • ReplicatorArn (string) --

      The Amazon Resource Name (ARN) of the replicator.

    • ReplicatorState (string) --

      The state of the replicator.

DescribeReplicator (new) Link ¶

Describes a replicator.

See also: AWS API Documentation

Request Syntax

client.describe_replicator(
    ReplicatorArn='string'
)
type ReplicatorArn:

string

param ReplicatorArn:

[REQUIRED]

The Amazon Resource Name (ARN) of the replicator to be described.

rtype:

dict

returns:

Response Syntax

{
    'CreationTime': datetime(2015, 1, 1),
    'CurrentVersion': 'string',
    'IsReplicatorReference': True|False,
    'KafkaClusters': [
        {
            'AmazonMskCluster': {
                'MskClusterArn': 'string'
            },
            'KafkaClusterAlias': 'string',
            'VpcConfig': {
                'SecurityGroupIds': [
                    'string',
                ],
                'SubnetIds': [
                    'string',
                ]
            }
        },
    ],
    'ReplicationInfoList': [
        {
            'ConsumerGroupReplication': {
                'ConsumerGroupsToExclude': [
                    'string',
                ],
                'ConsumerGroupsToReplicate': [
                    'string',
                ],
                'DetectAndCopyNewConsumerGroups': True|False,
                'SynchroniseConsumerGroupOffsets': True|False
            },
            'SourceKafkaClusterAlias': 'string',
            'TargetCompressionType': 'NONE'|'GZIP'|'SNAPPY'|'LZ4'|'ZSTD',
            'TargetKafkaClusterAlias': 'string',
            'TopicReplication': {
                'CopyAccessControlListsForTopics': True|False,
                'CopyTopicConfigurations': True|False,
                'DetectAndCopyNewTopics': True|False,
                'TopicsToExclude': [
                    'string',
                ],
                'TopicsToReplicate': [
                    'string',
                ]
            }
        },
    ],
    'ReplicatorArn': 'string',
    'ReplicatorDescription': 'string',
    'ReplicatorName': 'string',
    'ReplicatorResourceArn': 'string',
    'ReplicatorState': 'RUNNING'|'CREATING'|'UPDATING'|'DELETING'|'FAILED',
    'ServiceExecutionRoleArn': 'string',
    'StateInfo': {
        'Code': 'string',
        'Message': 'string'
    },
    'Tags': {
        'string': 'string'
    }
}

Response Structure

  • (dict) --

    HTTP Status Code 200: OK.

    • CreationTime (datetime) --

      The time when the replicator was created.

    • CurrentVersion (string) --

      The current version number of the replicator.

    • IsReplicatorReference (boolean) --

      Whether this resource is a replicator reference.

    • KafkaClusters (list) --

      Kafka Clusters used in setting up sources / targets for replication.

      • (dict) --

        Information about Kafka Cluster used as source / target for replication.

        • AmazonMskCluster (dict) --

          Details of an Amazon MSK Cluster.

          • MskClusterArn (string) --

            The Amazon Resource Name (ARN) of an Amazon MSK cluster.

        • KafkaClusterAlias (string) --

          The alias of the Kafka cluster. Used to prefix names of replicated topics.

        • VpcConfig (dict) --

          Details of an Amazon VPC which has network connectivity to the Apache Kafka cluster.

          • SecurityGroupIds (list) --

            The security groups to attach to the ENIs for the broker nodes.

            • (string) --

          • SubnetIds (list) --

            The list of subnets in the client VPC to connect to.

            • (string) --

    • ReplicationInfoList (list) --

      A list of replication configurations, where each configuration targets a given source cluster to target cluster replication flow.

      • (dict) --

        Specifies configuration for replication between a source and target Kafka cluster (sourceKafkaClusterAlias -> targetKafkaClusterAlias)

        • ConsumerGroupReplication (dict) --

          Configuration relating to consumer group replication.

          • ConsumerGroupsToExclude (list) --

            List of regular expression patterns indicating the consumer groups that should not be replicated.

            • (string) --

          • ConsumerGroupsToReplicate (list) --

            List of regular expression patterns indicating the consumer groups to copy.

            • (string) --

          • DetectAndCopyNewConsumerGroups (boolean) --

            Enables synchronization of consumer groups to target cluster.

          • SynchroniseConsumerGroupOffsets (boolean) --

            Enables synchronization of consumer group offsets to target cluster. The translated offsets will be written to topic __consumer_offsets.

        • SourceKafkaClusterAlias (string) --

          The alias of the source Kafka cluster.

        • TargetCompressionType (string) --

          The compression type to use when producing records to target cluster.

        • TargetKafkaClusterAlias (string) --

          The alias of the target Kafka cluster.

        • TopicReplication (dict) --

          Configuration relating to topic replication.

          • CopyAccessControlListsForTopics (boolean) --

            Whether to periodically configure remote topic ACLs to match their corresponding upstream topics.

          • CopyTopicConfigurations (boolean) --

            Whether to periodically configure remote topics to match their corresponding upstream topics.

          • DetectAndCopyNewTopics (boolean) --

            Whether to periodically check for new topics and partitions.

          • TopicsToExclude (list) --

            List of regular expression patterns indicating the topics that should not be replicated.

            • (string) --

          • TopicsToReplicate (list) --

            List of regular expression patterns indicating the topics to copy.

            • (string) --

    • ReplicatorArn (string) --

      The Amazon Resource Name (ARN) of the replicator.

    • ReplicatorDescription (string) --

      The description of the replicator.

    • ReplicatorName (string) --

      The name of the replicator.

    • ReplicatorResourceArn (string) --

      The Amazon Resource Name (ARN) of the replicator resource in the region where the replicator was created.

    • ReplicatorState (string) --

      State of the replicator.

    • ServiceExecutionRoleArn (string) --

      The Amazon Resource Name (ARN) of the IAM role used by the replicator to access resources in the customer's account (e.g source and target clusters)

    • StateInfo (dict) --

      Details about the state of the replicator.

      • Code (string) -- Code that describes the current state of the replicator.

      • Message (string) -- Message that describes the state of the replicator.

    • Tags (dict) --

      List of tags attached to the Replicator.

      • (string) --

        • (string) --

UpdateReplicationInfo (new) Link ¶

Updates replication info of a replicator.

See also: AWS API Documentation

Request Syntax

client.update_replication_info(
    ConsumerGroupReplication={
        'ConsumerGroupsToExclude': [
            'string',
        ],
        'ConsumerGroupsToReplicate': [
            'string',
        ],
        'DetectAndCopyNewConsumerGroups': True|False,
        'SynchroniseConsumerGroupOffsets': True|False
    },
    CurrentVersion='string',
    ReplicatorArn='string',
    SourceKafkaClusterArn='string',
    TargetKafkaClusterArn='string',
    TopicReplication={
        'CopyAccessControlListsForTopics': True|False,
        'CopyTopicConfigurations': True|False,
        'DetectAndCopyNewTopics': True|False,
        'TopicsToExclude': [
            'string',
        ],
        'TopicsToReplicate': [
            'string',
        ]
    }
)
type ConsumerGroupReplication:

dict

param ConsumerGroupReplication:

Updated consumer group replication information.

  • ConsumerGroupsToExclude (list) -- [REQUIRED]

    List of regular expression patterns indicating the consumer groups that should not be replicated.

    • (string) --

  • ConsumerGroupsToReplicate (list) -- [REQUIRED]

    List of regular expression patterns indicating the consumer groups to copy.

    • (string) --

  • DetectAndCopyNewConsumerGroups (boolean) -- [REQUIRED]

    Enables synchronization of consumer groups to target cluster.

  • SynchroniseConsumerGroupOffsets (boolean) -- [REQUIRED]

    Enables synchronization of consumer group offsets to target cluster. The translated offsets will be written to topic __consumer_offsets.

type CurrentVersion:

string

param CurrentVersion:

[REQUIRED]

Current replicator version.

type ReplicatorArn:

string

param ReplicatorArn:

[REQUIRED]

The Amazon Resource Name (ARN) of the replicator to be updated.

type SourceKafkaClusterArn:

string

param SourceKafkaClusterArn:

[REQUIRED]

The ARN of the source Kafka cluster.

type TargetKafkaClusterArn:

string

param TargetKafkaClusterArn:

[REQUIRED]

The ARN of the target Kafka cluster.

type TopicReplication:

dict

param TopicReplication:

Updated topic replication information.

  • CopyAccessControlListsForTopics (boolean) -- [REQUIRED]

    Whether to periodically configure remote topic ACLs to match their corresponding upstream topics.

  • CopyTopicConfigurations (boolean) -- [REQUIRED]

    Whether to periodically configure remote topics to match their corresponding upstream topics.

  • DetectAndCopyNewTopics (boolean) -- [REQUIRED]

    Whether to periodically check for new topics and partitions.

  • TopicsToExclude (list) -- [REQUIRED]

    List of regular expression patterns indicating the topics that should not be replicated.

    • (string) --

  • TopicsToReplicate (list) -- [REQUIRED]

    List of regular expression patterns indicating the topics to copy.

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'ReplicatorArn': 'string',
    'ReplicatorState': 'RUNNING'|'CREATING'|'UPDATING'|'DELETING'|'FAILED'
}

Response Structure

  • (dict) -- HTTP Status Code 200: OK.

    • ReplicatorArn (string) --

      The Amazon Resource Name (ARN) of the replicator.

    • ReplicatorState (string) --

      State of the replicator.