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.

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.

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.

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) --

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.

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.