Cluster
Manages AWS Managed Streaming for Kafka cluster
Example Usage
using Pulumi;
using Aws = Pulumi.Aws;
class MyStack : Stack
{
public MyStack()
{
var vpc = new Aws.Ec2.Vpc("vpc", new Aws.Ec2.VpcArgs
{
CidrBlock = "192.168.0.0/22",
});
var azs = Output.Create(Aws.GetAvailabilityZones.InvokeAsync(new Aws.GetAvailabilityZonesArgs
{
State = "available",
}));
var subnetAz1 = new Aws.Ec2.Subnet("subnetAz1", new Aws.Ec2.SubnetArgs
{
AvailabilityZone = azs.Apply(azs => azs.Names[0]),
CidrBlock = "192.168.0.0/24",
VpcId = vpc.Id,
});
var subnetAz2 = new Aws.Ec2.Subnet("subnetAz2", new Aws.Ec2.SubnetArgs
{
AvailabilityZone = azs.Apply(azs => azs.Names[1]),
CidrBlock = "192.168.1.0/24",
VpcId = vpc.Id,
});
var subnetAz3 = new Aws.Ec2.Subnet("subnetAz3", new Aws.Ec2.SubnetArgs
{
AvailabilityZone = azs.Apply(azs => azs.Names[2]),
CidrBlock = "192.168.2.0/24",
VpcId = vpc.Id,
});
var sg = new Aws.Ec2.SecurityGroup("sg", new Aws.Ec2.SecurityGroupArgs
{
VpcId = vpc.Id,
});
var kms = new Aws.Kms.Key("kms", new Aws.Kms.KeyArgs
{
Description = "example",
});
var test = new Aws.CloudWatch.LogGroup("test", new Aws.CloudWatch.LogGroupArgs
{
});
var bucket = new Aws.S3.Bucket("bucket", new Aws.S3.BucketArgs
{
Acl = "private",
});
var firehoseRole = new Aws.Iam.Role("firehoseRole", new Aws.Iam.RoleArgs
{
AssumeRolePolicy = @"{
""Version"": ""2012-10-17"",
""Statement"": [
{
""Action"": ""sts:AssumeRole"",
""Principal"": {
""Service"": ""firehose.amazonaws.com""
},
""Effect"": ""Allow"",
""Sid"": """"
}
]
}
",
});
var testStream = new Aws.Kinesis.FirehoseDeliveryStream("testStream", new Aws.Kinesis.FirehoseDeliveryStreamArgs
{
Destination = "s3",
S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamS3ConfigurationArgs
{
RoleArn = firehoseRole.Arn,
BucketArn = bucket.Arn,
},
Tags =
{
{ "LogDeliveryEnabled", "placeholder" },
},
});
var example = new Aws.Msk.Cluster("example", new Aws.Msk.ClusterArgs
{
ClusterName = "example",
KafkaVersion = "2.1.0",
NumberOfBrokerNodes = 3,
BrokerNodeGroupInfo = new Aws.Msk.Inputs.ClusterBrokerNodeGroupInfoArgs
{
InstanceType = "kafka.m5.large",
EbsVolumeSize = 1000,
ClientSubnets =
{
subnetAz1.Id,
subnetAz2.Id,
subnetAz3.Id,
},
SecurityGroups =
{
sg.Id,
},
},
EncryptionInfo = new Aws.Msk.Inputs.ClusterEncryptionInfoArgs
{
EncryptionAtRestKmsKeyArn = kms.Arn,
},
OpenMonitoring = new Aws.Msk.Inputs.ClusterOpenMonitoringArgs
{
Prometheus = new Aws.Msk.Inputs.ClusterOpenMonitoringPrometheusArgs
{
JmxExporter = new Aws.Msk.Inputs.ClusterOpenMonitoringPrometheusJmxExporterArgs
{
EnabledInBroker = true,
},
NodeExporter = new Aws.Msk.Inputs.ClusterOpenMonitoringPrometheusNodeExporterArgs
{
EnabledInBroker = true,
},
},
},
LoggingInfo = new Aws.Msk.Inputs.ClusterLoggingInfoArgs
{
BrokerLogs = new Aws.Msk.Inputs.ClusterLoggingInfoBrokerLogsArgs
{
CloudwatchLogs = new Aws.Msk.Inputs.ClusterLoggingInfoBrokerLogsCloudwatchLogsArgs
{
Enabled = true,
LogGroup = test.Name,
},
Firehose = new Aws.Msk.Inputs.ClusterLoggingInfoBrokerLogsFirehoseArgs
{
Enabled = true,
DeliveryStream = testStream.Name,
},
S3 = new Aws.Msk.Inputs.ClusterLoggingInfoBrokerLogsS3Args
{
Enabled = true,
Bucket = bucket.Id,
Prefix = "logs/msk-",
},
},
},
Tags =
{
{ "foo", "bar" },
},
});
this.ZookeeperConnectString = example.ZookeeperConnectString;
this.BootstrapBrokers = example.BootstrapBrokers;
this.BootstrapBrokersTls = example.BootstrapBrokersTls;
}
[Output("zookeeperConnectString")]
public Output<string> ZookeeperConnectString { get; set; }
[Output("bootstrapBrokers")]
public Output<string> BootstrapBrokers { get; set; }
[Output("bootstrapBrokersTls")]
public Output<string> BootstrapBrokersTls { get; set; }
}
package main
import (
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/cloudwatch"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/ec2"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/iam"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/kinesis"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/kms"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/msk"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/s3"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
vpc, err := ec2.NewVpc(ctx, "vpc", &ec2.VpcArgs{
CidrBlock: pulumi.String("192.168.0.0/22"),
})
if err != nil {
return err
}
opt0 := "available"
azs, err := aws.GetAvailabilityZones(ctx, &aws.GetAvailabilityZonesArgs{
State: &opt0,
}, nil)
if err != nil {
return err
}
subnetAz1, err := ec2.NewSubnet(ctx, "subnetAz1", &ec2.SubnetArgs{
AvailabilityZone: pulumi.String(azs.Names[0]),
CidrBlock: pulumi.String("192.168.0.0/24"),
VpcId: vpc.ID(),
})
if err != nil {
return err
}
subnetAz2, err := ec2.NewSubnet(ctx, "subnetAz2", &ec2.SubnetArgs{
AvailabilityZone: pulumi.String(azs.Names[1]),
CidrBlock: pulumi.String("192.168.1.0/24"),
VpcId: vpc.ID(),
})
if err != nil {
return err
}
subnetAz3, err := ec2.NewSubnet(ctx, "subnetAz3", &ec2.SubnetArgs{
AvailabilityZone: pulumi.String(azs.Names[2]),
CidrBlock: pulumi.String("192.168.2.0/24"),
VpcId: vpc.ID(),
})
if err != nil {
return err
}
sg, err := ec2.NewSecurityGroup(ctx, "sg", &ec2.SecurityGroupArgs{
VpcId: vpc.ID(),
})
if err != nil {
return err
}
kms, err := kms.NewKey(ctx, "kms", &kms.KeyArgs{
Description: pulumi.String("example"),
})
if err != nil {
return err
}
test, err := cloudwatch.NewLogGroup(ctx, "test", nil)
if err != nil {
return err
}
bucket, err := s3.NewBucket(ctx, "bucket", &s3.BucketArgs{
Acl: pulumi.String("private"),
})
if err != nil {
return err
}
firehoseRole, err := iam.NewRole(ctx, "firehoseRole", &iam.RoleArgs{
AssumeRolePolicy: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "\"Version\": \"2012-10-17\",\n", "\"Statement\": [\n", " {\n", " \"Action\": \"sts:AssumeRole\",\n", " \"Principal\": {\n", " \"Service\": \"firehose.amazonaws.com\"\n", " },\n", " \"Effect\": \"Allow\",\n", " \"Sid\": \"\"\n", " }\n", " ]\n", "}\n")),
})
if err != nil {
return err
}
testStream, err := kinesis.NewFirehoseDeliveryStream(ctx, "testStream", &kinesis.FirehoseDeliveryStreamArgs{
Destination: pulumi.String("s3"),
S3Configuration: &kinesis.FirehoseDeliveryStreamS3ConfigurationArgs{
RoleArn: firehoseRole.Arn,
BucketArn: bucket.Arn,
},
Tags: pulumi.StringMap{
"LogDeliveryEnabled": pulumi.String("placeholder"),
},
})
if err != nil {
return err
}
example, err := msk.NewCluster(ctx, "example", &msk.ClusterArgs{
ClusterName: pulumi.String("example"),
KafkaVersion: pulumi.String("2.1.0"),
NumberOfBrokerNodes: pulumi.Int(3),
BrokerNodeGroupInfo: &msk.ClusterBrokerNodeGroupInfoArgs{
InstanceType: pulumi.String("kafka.m5.large"),
EbsVolumeSize: pulumi.Int(1000),
ClientSubnets: pulumi.StringArray{
subnetAz1.ID(),
subnetAz2.ID(),
subnetAz3.ID(),
},
SecurityGroups: pulumi.StringArray{
sg.ID(),
},
},
EncryptionInfo: &msk.ClusterEncryptionInfoArgs{
EncryptionAtRestKmsKeyArn: kms.Arn,
},
OpenMonitoring: &msk.ClusterOpenMonitoringArgs{
Prometheus: &msk.ClusterOpenMonitoringPrometheusArgs{
JmxExporter: &msk.ClusterOpenMonitoringPrometheusJmxExporterArgs{
EnabledInBroker: pulumi.Bool(true),
},
NodeExporter: &msk.ClusterOpenMonitoringPrometheusNodeExporterArgs{
EnabledInBroker: pulumi.Bool(true),
},
},
},
LoggingInfo: &msk.ClusterLoggingInfoArgs{
BrokerLogs: &msk.ClusterLoggingInfoBrokerLogsArgs{
CloudwatchLogs: &msk.ClusterLoggingInfoBrokerLogsCloudwatchLogsArgs{
Enabled: pulumi.Bool(true),
LogGroup: test.Name,
},
Firehose: &msk.ClusterLoggingInfoBrokerLogsFirehoseArgs{
Enabled: pulumi.Bool(true),
DeliveryStream: testStream.Name,
},
S3: &msk.ClusterLoggingInfoBrokerLogsS3Args{
Enabled: pulumi.Bool(true),
Bucket: bucket.ID(),
Prefix: pulumi.String("logs/msk-"),
},
},
},
Tags: pulumi.StringMap{
"foo": pulumi.String("bar"),
},
})
if err != nil {
return err
}
ctx.Export("zookeeperConnectString", example.ZookeeperConnectString)
ctx.Export("bootstrapBrokers", example.BootstrapBrokers)
ctx.Export("bootstrapBrokersTls", example.BootstrapBrokersTls)
return nil
})
}import pulumi
import pulumi_aws as aws
vpc = aws.ec2.Vpc("vpc", cidr_block="192.168.0.0/22")
azs = aws.get_availability_zones(state="available")
subnet_az1 = aws.ec2.Subnet("subnetAz1",
availability_zone=azs.names[0],
cidr_block="192.168.0.0/24",
vpc_id=vpc.id)
subnet_az2 = aws.ec2.Subnet("subnetAz2",
availability_zone=azs.names[1],
cidr_block="192.168.1.0/24",
vpc_id=vpc.id)
subnet_az3 = aws.ec2.Subnet("subnetAz3",
availability_zone=azs.names[2],
cidr_block="192.168.2.0/24",
vpc_id=vpc.id)
sg = aws.ec2.SecurityGroup("sg", vpc_id=vpc.id)
kms = aws.kms.Key("kms", description="example")
test = aws.cloudwatch.LogGroup("test")
bucket = aws.s3.Bucket("bucket", acl="private")
firehose_role = aws.iam.Role("firehoseRole", assume_role_policy="""{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "firehose.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
""")
test_stream = aws.kinesis.FirehoseDeliveryStream("testStream",
destination="s3",
s3_configuration={
"role_arn": firehose_role.arn,
"bucketArn": bucket.arn,
},
tags={
"LogDeliveryEnabled": "placeholder",
})
example = aws.msk.Cluster("example",
cluster_name="example",
kafka_version="2.1.0",
number_of_broker_nodes=3,
broker_node_group_info={
"instance_type": "kafka.m5.large",
"ebsVolumeSize": 1000,
"clientSubnets": [
subnet_az1.id,
subnet_az2.id,
subnet_az3.id,
],
"security_groups": [sg.id],
},
encryption_info={
"encryptionAtRestKmsKeyArn": kms.arn,
},
open_monitoring={
"prometheus": {
"jmxExporter": {
"enabledInBroker": True,
},
"nodeExporter": {
"enabledInBroker": True,
},
},
},
logging_info={
"brokerLogs": {
"cloudwatchLogs": {
"enabled": True,
"log_group": test.name,
},
"firehose": {
"enabled": True,
"deliveryStream": test_stream.name,
},
"s3": {
"enabled": True,
"bucket": bucket.id,
"prefix": "logs/msk-",
},
},
},
tags={
"foo": "bar",
})
pulumi.export("zookeeperConnectString", example.zookeeper_connect_string)
pulumi.export("bootstrapBrokers", example.bootstrap_brokers)
pulumi.export("bootstrapBrokersTls", example.bootstrap_brokers_tls)import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const vpc = new aws.ec2.Vpc("vpc", {cidrBlock: "192.168.0.0/22"});
const azs = aws.getAvailabilityZones({
state: "available",
});
const subnetAz1 = new aws.ec2.Subnet("subnetAz1", {
availabilityZone: azs.then(azs => azs.names[0]),
cidrBlock: "192.168.0.0/24",
vpcId: vpc.id,
});
const subnetAz2 = new aws.ec2.Subnet("subnetAz2", {
availabilityZone: azs.then(azs => azs.names[1]),
cidrBlock: "192.168.1.0/24",
vpcId: vpc.id,
});
const subnetAz3 = new aws.ec2.Subnet("subnetAz3", {
availabilityZone: azs.then(azs => azs.names[2]),
cidrBlock: "192.168.2.0/24",
vpcId: vpc.id,
});
const sg = new aws.ec2.SecurityGroup("sg", {vpcId: vpc.id});
const kms = new aws.kms.Key("kms", {description: "example"});
const test = new aws.cloudwatch.LogGroup("test", {});
const bucket = new aws.s3.Bucket("bucket", {acl: "private"});
const firehoseRole = new aws.iam.Role("firehoseRole", {assumeRolePolicy: `{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "firehose.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
`});
const testStream = new aws.kinesis.FirehoseDeliveryStream("testStream", {
destination: "s3",
s3Configuration: {
roleArn: firehoseRole.arn,
bucketArn: bucket.arn,
},
tags: {
LogDeliveryEnabled: "placeholder",
},
});
const example = new aws.msk.Cluster("example", {
clusterName: "example",
kafkaVersion: "2.1.0",
numberOfBrokerNodes: 3,
brokerNodeGroupInfo: {
instanceType: "kafka.m5.large",
ebsVolumeSize: 1000,
clientSubnets: [
subnetAz1.id,
subnetAz2.id,
subnetAz3.id,
],
securityGroups: [sg.id],
},
encryptionInfo: {
encryptionAtRestKmsKeyArn: kms.arn,
},
openMonitoring: {
prometheus: {
jmxExporter: {
enabledInBroker: true,
},
nodeExporter: {
enabledInBroker: true,
},
},
},
loggingInfo: {
brokerLogs: {
cloudwatchLogs: {
enabled: true,
logGroup: test.name,
},
firehose: {
enabled: true,
deliveryStream: testStream.name,
},
s3: {
enabled: true,
bucket: bucket.id,
prefix: "logs/msk-",
},
},
},
tags: {
foo: "bar",
},
});
export const zookeeperConnectString = example.zookeeperConnectString;
export const bootstrapBrokers = example.bootstrapBrokers;
export const bootstrapBrokersTls = example.bootstrapBrokersTls;Create a Cluster Resource
new Cluster(name: string, args: ClusterArgs, opts?: CustomResourceOptions);def Cluster(resource_name, opts=None, broker_node_group_info=None, client_authentication=None, cluster_name=None, configuration_info=None, encryption_info=None, enhanced_monitoring=None, kafka_version=None, logging_info=None, number_of_broker_nodes=None, open_monitoring=None, tags=None, __props__=None);func NewCluster(ctx *Context, name string, args ClusterArgs, opts ...ResourceOption) (*Cluster, error)public Cluster(string name, ClusterArgs args, CustomResourceOptions? opts = null)- name string
- The unique name of the resource.
- args ClusterArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- opts ResourceOptions
- A bag of options that control this resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args ClusterArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ClusterArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
Cluster Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Programming Model docs.
Inputs
The Cluster resource accepts the following input properties:
- Broker
Node ClusterGroup Info Broker Node Group Info Args Configuration block for the broker nodes of the Kafka cluster.
- Cluster
Name string Name of the MSK cluster.
- Kafka
Version string Specify the desired Kafka software version.
- Number
Of intBroker Nodes The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets.
- Client
Authentication ClusterClient Authentication Args Configuration block for specifying a client authentication. See below.
- Configuration
Info ClusterConfiguration Info Args Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below.
- Encryption
Info ClusterEncryption Info Args Configuration block for specifying encryption. See below.
- Enhanced
Monitoring string Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch
- Logging
Info ClusterLogging Info Args Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below.
- Open
Monitoring ClusterOpen Monitoring Args Configuration block for JMX and Node monitoring for the MSK cluster. See below.
- Dictionary<string, string>
A map of tags to assign to the resource
- Broker
Node ClusterGroup Info Broker Node Group Info Configuration block for the broker nodes of the Kafka cluster.
- Cluster
Name string Name of the MSK cluster.
- Kafka
Version string Specify the desired Kafka software version.
- Number
Of intBroker Nodes The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets.
- Client
Authentication ClusterClient Authentication Configuration block for specifying a client authentication. See below.
- Configuration
Info ClusterConfiguration Info Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below.
- Encryption
Info ClusterEncryption Info Configuration block for specifying encryption. See below.
- Enhanced
Monitoring string Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch
- Logging
Info ClusterLogging Info Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below.
- Open
Monitoring ClusterOpen Monitoring Configuration block for JMX and Node monitoring for the MSK cluster. See below.
- map[string]string
A map of tags to assign to the resource
- broker
Node ClusterGroup Info Broker Node Group Info Configuration block for the broker nodes of the Kafka cluster.
- cluster
Name string Name of the MSK cluster.
- kafka
Version string Specify the desired Kafka software version.
- number
Of numberBroker Nodes The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets.
- client
Authentication ClusterClient Authentication Configuration block for specifying a client authentication. See below.
- configuration
Info ClusterConfiguration Info Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below.
- encryption
Info ClusterEncryption Info Configuration block for specifying encryption. See below.
- enhanced
Monitoring string Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch
- logging
Info ClusterLogging Info Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below.
- open
Monitoring ClusterOpen Monitoring Configuration block for JMX and Node monitoring for the MSK cluster. See below.
- {[key: string]: string}
A map of tags to assign to the resource
- broker_
node_ Dict[Clustergroup_ info Broker Node Group Info] Configuration block for the broker nodes of the Kafka cluster.
- cluster_
name str Name of the MSK cluster.
- kafka_
version str Specify the desired Kafka software version.
- number_
of_ floatbroker_ nodes The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets.
- client_
authentication Dict[ClusterClient Authentication] Configuration block for specifying a client authentication. See below.
- configuration_
info Dict[ClusterConfiguration Info] Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below.
- encryption_
info Dict[ClusterEncryption Info] Configuration block for specifying encryption. See below.
- enhanced_
monitoring str Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch
- logging_
info Dict[ClusterLogging Info] Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below.
- open_
monitoring Dict[ClusterOpen Monitoring] Configuration block for JMX and Node monitoring for the MSK cluster. See below.
- Dict[str, str]
A map of tags to assign to the resource
Outputs
All input properties are implicitly available as output properties. Additionally, the Cluster resource produces the following output properties:
- Arn string
Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster.
- Bootstrap
Brokers string A comma separated list of one or more hostname:port pairs of kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toPLAINTEXTorTLS_PLAINTEXT.- Bootstrap
Brokers stringTls A comma separated list of one or more DNS names (or IPs) and TLS port pairs kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toTLS_PLAINTEXTorTLS.- Current
Version string Current version of the MSK Cluster used for updates, e.g.
K13V1IB3VIYZZH*encryption_info.0.encryption_at_rest_kms_key_arn- The ARN of the KMS key used for encryption at rest of the broker data volumes.- Id string
- The provider-assigned unique ID for this managed resource.
- Zookeeper
Connect stringString A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster.
- Arn string
Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster.
- Bootstrap
Brokers string A comma separated list of one or more hostname:port pairs of kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toPLAINTEXTorTLS_PLAINTEXT.- Bootstrap
Brokers stringTls A comma separated list of one or more DNS names (or IPs) and TLS port pairs kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toTLS_PLAINTEXTorTLS.- Current
Version string Current version of the MSK Cluster used for updates, e.g.
K13V1IB3VIYZZH*encryption_info.0.encryption_at_rest_kms_key_arn- The ARN of the KMS key used for encryption at rest of the broker data volumes.- Id string
- The provider-assigned unique ID for this managed resource.
- Zookeeper
Connect stringString A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster.
- arn string
Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster.
- bootstrap
Brokers string A comma separated list of one or more hostname:port pairs of kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toPLAINTEXTorTLS_PLAINTEXT.- bootstrap
Brokers stringTls A comma separated list of one or more DNS names (or IPs) and TLS port pairs kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toTLS_PLAINTEXTorTLS.- current
Version string Current version of the MSK Cluster used for updates, e.g.
K13V1IB3VIYZZH*encryption_info.0.encryption_at_rest_kms_key_arn- The ARN of the KMS key used for encryption at rest of the broker data volumes.- id string
- The provider-assigned unique ID for this managed resource.
- zookeeper
Connect stringString A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster.
- arn str
Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster.
- bootstrap_
brokers str A comma separated list of one or more hostname:port pairs of kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toPLAINTEXTorTLS_PLAINTEXT.- bootstrap_
brokers_ strtls A comma separated list of one or more DNS names (or IPs) and TLS port pairs kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toTLS_PLAINTEXTorTLS.- current_
version str Current version of the MSK Cluster used for updates, e.g.
K13V1IB3VIYZZH*encryption_info.0.encryption_at_rest_kms_key_arn- The ARN of the KMS key used for encryption at rest of the broker data volumes.- id str
- The provider-assigned unique ID for this managed resource.
- zookeeper_
connect_ strstring A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster.
Look up an Existing Cluster Resource
Get an existing Cluster resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: ClusterState, opts?: CustomResourceOptions): Clusterstatic get(resource_name, id, opts=None, arn=None, bootstrap_brokers=None, bootstrap_brokers_tls=None, broker_node_group_info=None, client_authentication=None, cluster_name=None, configuration_info=None, current_version=None, encryption_info=None, enhanced_monitoring=None, kafka_version=None, logging_info=None, number_of_broker_nodes=None, open_monitoring=None, tags=None, zookeeper_connect_string=None, __props__=None);func GetCluster(ctx *Context, name string, id IDInput, state *ClusterState, opts ...ResourceOption) (*Cluster, error)public static Cluster Get(string name, Input<string> id, ClusterState? state, CustomResourceOptions? opts = null)- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
The following state arguments are supported:
- Arn string
Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster.
- Bootstrap
Brokers string A comma separated list of one or more hostname:port pairs of kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toPLAINTEXTorTLS_PLAINTEXT.- Bootstrap
Brokers stringTls A comma separated list of one or more DNS names (or IPs) and TLS port pairs kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toTLS_PLAINTEXTorTLS.- Broker
Node ClusterGroup Info Broker Node Group Info Args Configuration block for the broker nodes of the Kafka cluster.
- Client
Authentication ClusterClient Authentication Args Configuration block for specifying a client authentication. See below.
- Cluster
Name string Name of the MSK cluster.
- Configuration
Info ClusterConfiguration Info Args Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below.
- Current
Version string Current version of the MSK Cluster used for updates, e.g.
K13V1IB3VIYZZH*encryption_info.0.encryption_at_rest_kms_key_arn- The ARN of the KMS key used for encryption at rest of the broker data volumes.- Encryption
Info ClusterEncryption Info Args Configuration block for specifying encryption. See below.
- Enhanced
Monitoring string Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch
- Kafka
Version string Specify the desired Kafka software version.
- Logging
Info ClusterLogging Info Args Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below.
- Number
Of intBroker Nodes The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets.
- Open
Monitoring ClusterOpen Monitoring Args Configuration block for JMX and Node monitoring for the MSK cluster. See below.
- Dictionary<string, string>
A map of tags to assign to the resource
- Zookeeper
Connect stringString A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster.
- Arn string
Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster.
- Bootstrap
Brokers string A comma separated list of one or more hostname:port pairs of kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toPLAINTEXTorTLS_PLAINTEXT.- Bootstrap
Brokers stringTls A comma separated list of one or more DNS names (or IPs) and TLS port pairs kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toTLS_PLAINTEXTorTLS.- Broker
Node ClusterGroup Info Broker Node Group Info Configuration block for the broker nodes of the Kafka cluster.
- Client
Authentication ClusterClient Authentication Configuration block for specifying a client authentication. See below.
- Cluster
Name string Name of the MSK cluster.
- Configuration
Info ClusterConfiguration Info Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below.
- Current
Version string Current version of the MSK Cluster used for updates, e.g.
K13V1IB3VIYZZH*encryption_info.0.encryption_at_rest_kms_key_arn- The ARN of the KMS key used for encryption at rest of the broker data volumes.- Encryption
Info ClusterEncryption Info Configuration block for specifying encryption. See below.
- Enhanced
Monitoring string Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch
- Kafka
Version string Specify the desired Kafka software version.
- Logging
Info ClusterLogging Info Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below.
- Number
Of intBroker Nodes The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets.
- Open
Monitoring ClusterOpen Monitoring Configuration block for JMX and Node monitoring for the MSK cluster. See below.
- map[string]string
A map of tags to assign to the resource
- Zookeeper
Connect stringString A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster.
- arn string
Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster.
- bootstrap
Brokers string A comma separated list of one or more hostname:port pairs of kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toPLAINTEXTorTLS_PLAINTEXT.- bootstrap
Brokers stringTls A comma separated list of one or more DNS names (or IPs) and TLS port pairs kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toTLS_PLAINTEXTorTLS.- broker
Node ClusterGroup Info Broker Node Group Info Configuration block for the broker nodes of the Kafka cluster.
- client
Authentication ClusterClient Authentication Configuration block for specifying a client authentication. See below.
- cluster
Name string Name of the MSK cluster.
- configuration
Info ClusterConfiguration Info Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below.
- current
Version string Current version of the MSK Cluster used for updates, e.g.
K13V1IB3VIYZZH*encryption_info.0.encryption_at_rest_kms_key_arn- The ARN of the KMS key used for encryption at rest of the broker data volumes.- encryption
Info ClusterEncryption Info Configuration block for specifying encryption. See below.
- enhanced
Monitoring string Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch
- kafka
Version string Specify the desired Kafka software version.
- logging
Info ClusterLogging Info Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below.
- number
Of numberBroker Nodes The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets.
- open
Monitoring ClusterOpen Monitoring Configuration block for JMX and Node monitoring for the MSK cluster. See below.
- {[key: string]: string}
A map of tags to assign to the resource
- zookeeper
Connect stringString A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster.
- arn str
Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster.
- bootstrap_
brokers str A comma separated list of one or more hostname:port pairs of kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toPLAINTEXTorTLS_PLAINTEXT.- bootstrap_
brokers_ strtls A comma separated list of one or more DNS names (or IPs) and TLS port pairs kafka brokers suitable to boostrap connectivity to the kafka cluster. Only contains value if
client_brokerencryption in transit is set toTLS_PLAINTEXTorTLS.- broker_
node_ Dict[Clustergroup_ info Broker Node Group Info] Configuration block for the broker nodes of the Kafka cluster.
- client_
authentication Dict[ClusterClient Authentication] Configuration block for specifying a client authentication. See below.
- cluster_
name str Name of the MSK cluster.
- configuration_
info Dict[ClusterConfiguration Info] Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below.
- current_
version str Current version of the MSK Cluster used for updates, e.g.
K13V1IB3VIYZZH*encryption_info.0.encryption_at_rest_kms_key_arn- The ARN of the KMS key used for encryption at rest of the broker data volumes.- encryption_
info Dict[ClusterEncryption Info] Configuration block for specifying encryption. See below.
- enhanced_
monitoring str Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch
- kafka_
version str Specify the desired Kafka software version.
- logging_
info Dict[ClusterLogging Info] Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below.
- number_
of_ floatbroker_ nodes The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets.
- open_
monitoring Dict[ClusterOpen Monitoring] Configuration block for JMX and Node monitoring for the MSK cluster. See below.
- Dict[str, str]
A map of tags to assign to the resource
- zookeeper_
connect_ strstring A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster.
Supporting Types
ClusterBrokerNodeGroupInfo
- Client
Subnets List<string> A list of subnets to connect to in client VPC (documentation).
- Ebs
Volume intSize The size in GiB of the EBS volume for the data drive on each broker node.
- Instance
Type string Specify the instance type to use for the kafka brokers. e.g. kafka.m5.large. (Pricing info)
- Security
Groups List<string> A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
- Az
Distribution string The distribution of broker nodes across availability zones (documentation). Currently the only valid value is
DEFAULT.
- Client
Subnets []string A list of subnets to connect to in client VPC (documentation).
- Ebs
Volume intSize The size in GiB of the EBS volume for the data drive on each broker node.
- Instance
Type string Specify the instance type to use for the kafka brokers. e.g. kafka.m5.large. (Pricing info)
- Security
Groups []string A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
- Az
Distribution string The distribution of broker nodes across availability zones (documentation). Currently the only valid value is
DEFAULT.
- client
Subnets string[] A list of subnets to connect to in client VPC (documentation).
- ebs
Volume numberSize The size in GiB of the EBS volume for the data drive on each broker node.
- instance
Type string Specify the instance type to use for the kafka brokers. e.g. kafka.m5.large. (Pricing info)
- security
Groups string[] A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
- az
Distribution string The distribution of broker nodes across availability zones (documentation). Currently the only valid value is
DEFAULT.
- client
Subnets List[str] A list of subnets to connect to in client VPC (documentation).
- ebs
Volume floatSize The size in GiB of the EBS volume for the data drive on each broker node.
- instance_
type str Specify the instance type to use for the kafka brokers. e.g. kafka.m5.large. (Pricing info)
- security_
groups List[str] A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
- az
Distribution str The distribution of broker nodes across availability zones (documentation). Currently the only valid value is
DEFAULT.
ClusterClientAuthentication
- Tls
Cluster
Client Authentication Tls Args Configuration block for specifying TLS client authentication. See below.
- Tls
Cluster
Client Authentication Tls Configuration block for specifying TLS client authentication. See below.
- tls
Cluster
Client Authentication Tls Configuration block for specifying TLS client authentication. See below.
- tls
Dict[Cluster
Client Authentication Tls] Configuration block for specifying TLS client authentication. See below.
ClusterClientAuthenticationTls
- List<string>
List of ACM Certificate Authority Amazon Resource Names (ARNs).
- []string
List of ACM Certificate Authority Amazon Resource Names (ARNs).
- string[]
List of ACM Certificate Authority Amazon Resource Names (ARNs).
- List[str]
List of ACM Certificate Authority Amazon Resource Names (ARNs).
ClusterConfigurationInfo
ClusterEncryptionInfo
- Encryption
At stringRest Kms Key Arn You may specify a KMS key short ID or ARN (it will always output an ARN) to use for encrypting your data at rest. If no key is specified, an AWS managed KMS (‘aws/msk’ managed service) key will be used for encrypting the data at rest.
- Encryption
In ClusterTransit Encryption Info Encryption In Transit Args Configuration block to specify encryption in transit. See below.
- Encryption
At stringRest Kms Key Arn You may specify a KMS key short ID or ARN (it will always output an ARN) to use for encrypting your data at rest. If no key is specified, an AWS managed KMS (‘aws/msk’ managed service) key will be used for encrypting the data at rest.
- Encryption
In ClusterTransit Encryption Info Encryption In Transit Configuration block to specify encryption in transit. See below.
- encryption
At stringRest Kms Key Arn You may specify a KMS key short ID or ARN (it will always output an ARN) to use for encrypting your data at rest. If no key is specified, an AWS managed KMS (‘aws/msk’ managed service) key will be used for encrypting the data at rest.
- encryption
In ClusterTransit Encryption Info Encryption In Transit Configuration block to specify encryption in transit. See below.
- encryption
At strRest Kms Key Arn You may specify a KMS key short ID or ARN (it will always output an ARN) to use for encrypting your data at rest. If no key is specified, an AWS managed KMS (‘aws/msk’ managed service) key will be used for encrypting the data at rest.
- encryption
In Dict[ClusterTransit Encryption Info Encryption In Transit] Configuration block to specify encryption in transit. See below.
ClusterEncryptionInfoEncryptionInTransit
- Client
Broker string Encryption setting for data in transit between clients and brokers. Valid values:
TLS,TLS_PLAINTEXT, andPLAINTEXT. Default value isTLS_PLAINTEXTwhenencryption_in_transitblock defined, butTLSwhenencryption_in_transitblock omitted.- In
Cluster bool Whether data communication among broker nodes is encrypted. Default value:
true.
- Client
Broker string Encryption setting for data in transit between clients and brokers. Valid values:
TLS,TLS_PLAINTEXT, andPLAINTEXT. Default value isTLS_PLAINTEXTwhenencryption_in_transitblock defined, butTLSwhenencryption_in_transitblock omitted.- In
Cluster bool Whether data communication among broker nodes is encrypted. Default value:
true.
- client
Broker string Encryption setting for data in transit between clients and brokers. Valid values:
TLS,TLS_PLAINTEXT, andPLAINTEXT. Default value isTLS_PLAINTEXTwhenencryption_in_transitblock defined, butTLSwhenencryption_in_transitblock omitted.- in
Cluster boolean Whether data communication among broker nodes is encrypted. Default value:
true.
- client
Broker str Encryption setting for data in transit between clients and brokers. Valid values:
TLS,TLS_PLAINTEXT, andPLAINTEXT. Default value isTLS_PLAINTEXTwhenencryption_in_transitblock defined, butTLSwhenencryption_in_transitblock omitted.- in
Cluster bool Whether data communication among broker nodes is encrypted. Default value:
true.
ClusterLoggingInfo
- Broker
Logs ClusterLogging Info Broker Logs Args Configuration block for Broker Logs settings for logging info. See below.
- Broker
Logs ClusterLogging Info Broker Logs Configuration block for Broker Logs settings for logging info. See below.
- broker
Logs ClusterLogging Info Broker Logs Configuration block for Broker Logs settings for logging info. See below.
- broker
Logs Dict[ClusterLogging Info Broker Logs] Configuration block for Broker Logs settings for logging info. See below.
ClusterLoggingInfoBrokerLogs
ClusterLoggingInfoBrokerLogsCloudwatchLogs
ClusterLoggingInfoBrokerLogsFirehose
- Enabled bool
Indicates whether you want to enable or disable streaming broker logs to Cloudwatch Logs.
- Delivery
Stream string Name of the Kinesis Data Firehose delivery stream to deliver logs to.
- Enabled bool
Indicates whether you want to enable or disable streaming broker logs to Cloudwatch Logs.
- Delivery
Stream string Name of the Kinesis Data Firehose delivery stream to deliver logs to.
- enabled boolean
Indicates whether you want to enable or disable streaming broker logs to Cloudwatch Logs.
- delivery
Stream string Name of the Kinesis Data Firehose delivery stream to deliver logs to.
- enabled bool
Indicates whether you want to enable or disable streaming broker logs to Cloudwatch Logs.
- delivery
Stream str Name of the Kinesis Data Firehose delivery stream to deliver logs to.
ClusterLoggingInfoBrokerLogsS3
ClusterOpenMonitoring
- Prometheus
Cluster
Open Monitoring Prometheus Args Configuration block for Prometheus settings for open monitoring. See below.
- Prometheus
Cluster
Open Monitoring Prometheus Configuration block for Prometheus settings for open monitoring. See below.
- prometheus
Cluster
Open Monitoring Prometheus Configuration block for Prometheus settings for open monitoring. See below.
- prometheus
Dict[Cluster
Open Monitoring Prometheus] Configuration block for Prometheus settings for open monitoring. See below.
ClusterOpenMonitoringPrometheus
- Jmx
Exporter ClusterOpen Monitoring Prometheus Jmx Exporter Args Configuration block for JMX Exporter. See below.
- Node
Exporter ClusterOpen Monitoring Prometheus Node Exporter Args Configuration block for Node Exporter. See below.
- Jmx
Exporter ClusterOpen Monitoring Prometheus Jmx Exporter Configuration block for JMX Exporter. See below.
- Node
Exporter ClusterOpen Monitoring Prometheus Node Exporter Configuration block for Node Exporter. See below.
- jmx
Exporter ClusterOpen Monitoring Prometheus Jmx Exporter Configuration block for JMX Exporter. See below.
- node
Exporter ClusterOpen Monitoring Prometheus Node Exporter Configuration block for Node Exporter. See below.
- jmx
Exporter Dict[ClusterOpen Monitoring Prometheus Jmx Exporter] Configuration block for JMX Exporter. See below.
- node
Exporter Dict[ClusterOpen Monitoring Prometheus Node Exporter] Configuration block for Node Exporter. See below.
ClusterOpenMonitoringPrometheusJmxExporter
- Enabled
In boolBroker Indicates whether you want to enable or disable the JMX Exporter.
- Enabled
In boolBroker Indicates whether you want to enable or disable the JMX Exporter.
- enabled
In booleanBroker Indicates whether you want to enable or disable the JMX Exporter.
- enabled
In boolBroker Indicates whether you want to enable or disable the JMX Exporter.
ClusterOpenMonitoringPrometheusNodeExporter
- Enabled
In boolBroker Indicates whether you want to enable or disable the JMX Exporter.
- Enabled
In boolBroker Indicates whether you want to enable or disable the JMX Exporter.
- enabled
In booleanBroker Indicates whether you want to enable or disable the JMX Exporter.
- enabled
In boolBroker Indicates whether you want to enable or disable the JMX Exporter.
Package Details
- Repository
- https://github.com/pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
awsTerraform Provider.