如何使用AWS_MSK CDK创建连接器自定义插件



我正在使用CfnConnector(如以下文档参考链接所述(创建MSK连接器,它需要customPluginArn。如何使用CDK创建自定义插件,以便获得CustomPluginArn和修订号?没有任何关于它的文档。谢谢

对于参考类CnConnector文档:在此处输入链接描述

我结束了创建一个自定义资源,如果它对某人有用,请在这里编码:

def _create_custom_plugin(self):
create_params = {
"contentType": 'ZIP',
"location": { 
's3Location': { 
'bucketArn': self._msk_connector_bucket_arn,
'fileKey': self._plugin_file_name, 
'objectVersion': 'null'
}
},            
"name": self._plugin_name,
"description": self._plugin_name
}

create_custom_plugin = custom_resources.AwsSdkCall(
service='KafkaConnect',
action='createCustomPlugin',
region='ap-southeast-2',
physical_resource_id=custom_resources.PhysicalResourceId.of(f'connector-{self._environment_name}'),
parameters = create_params
)
cr_policy = iam.Policy(self, 'cr_policy',
statements = [iam.PolicyStatement(
actions=[
's3:*'
],
effect=iam.Effect.ALLOW,
resources=['*']
)]
)
lambda_role = self._get_provisioning_lambda_role(construct_id=id)
lambda_role.attach_inline_policy(cr_policy)         

create_update_custom_plugin = custom_resources.AwsCustomResource(self,
'CreateUpdateCustomPlugin',
on_create=create_custom_plugin,
on_update=create_custom_plugin,
policy=custom_resources.AwsCustomResourcePolicy.from_sdk_calls(resources=custom_resources.AwsCustomResourcePolicy.ANY_RESOURCE)
,role=lambda_role)
self._custom_plugin_arn = create_update_custom_plugin.get_response_field('customPluginArn')
self._revision = create_update_custom_plugin.get_response_field('revision')  

def _get_provisioning_lambda_role(self, construct_id: str):
return iam.Role(
scope=self,
id=f'{construct_id}-LambdaRole',
assumed_by=iam.ServicePrincipal('lambda.amazonaws.com'),
managed_policies=[iam.ManagedPolicy.from_aws_managed_policy_name(
"service-role/AWSLambdaBasicExecutionRole")],
)

最新更新