Python 无法为Kinesis数据消防软管传递流创建CDK脚本
我必须为数据管道的部署创建一个CDK脚本。我已经创建了lambda函数、SNS主题、S3 bucket(非常容易),但在创建用于将文件放入S3 bucket的Kinesis Firehose交付流时,我遇到了困难 到目前为止,用于Kinesis消防软管输送流的My stack.py代码不起作用:Python 无法为Kinesis数据消防软管传递流创建CDK脚本,python,aws-cdk,amazon-kinesis-firehose,Python,Aws Cdk,Amazon Kinesis Firehose,我必须为数据管道的部署创建一个CDK脚本。我已经创建了lambda函数、SNS主题、S3 bucket(非常容易),但在创建用于将文件放入S3 bucket的Kinesis Firehose交付流时,我遇到了困难 到目前为止,用于Kinesis消防软管输送流的My stack.py代码不起作用: delivery_stream = firehose.CfnDeliveryStream( self, "CdkworkshopFirehose"
delivery_stream = firehose.CfnDeliveryStream(
self, "CdkworkshopFirehose",
s3_destination_configuration=firehose.CfnDeliveryStream.S3DestinationConfigurationProperty(
bucket_arn=destination_bucket.bucket_arn,
buffering_hints=firehose.CfnDeliveryStream.BufferingHintsProperty(
interval_in_seconds=60
),
compression_format="UNCOMPRESSED",
role_arn=" "
)
)
有人知道问题出在哪里以及原因吗?因为此代码返回一个错误:
CdkworkshopFirehose Model validation failed (#/S3DestinationConfiguration/RoleARN: failed validation constraint for keyword [pattern])
角色ARN是强制性的,如果您查看错误消息,它会告诉您问题所在(我已突出显示): CDKWorkshopFirehope模型验证失败(#/S3DestinationConfiguration/RoleARN:关键字[pattern]的验证约束失败) 问题是
S3DestinationConfiguration
的一部分,这意味着您的firehose.CfnDeliveryStream.S3DestinationConfiguration属性
中的RoleARN
与定义有效角色ARN的模式不匹配
解决方案:创建角色并引用其ARN或输入现有角色的ARN。解决方案:
firehose_role = iam.Role(self, "firehose-role", assumed_by=iam.ServicePrincipal("firehose.amazonaws.com"))
firehose_role_arn = firehose_role.role_arn
delivery_stream = firehose.CfnDeliveryStream(
self, "CdkworkshopFirehose",
s3_destination_configuration=firehose.CfnDeliveryStream.S3DestinationConfigurationProperty(
bucket_arn=destination_bucket.bucket_arn,
buffering_hints=firehose.CfnDeliveryStream.BufferingHintsProperty(
interval_in_seconds=60
),
compression_format="UNCOMPRESSED",
role_arn=firehose_role_arn
)
)
我想出来了,但我找不到在CDK中创建角色的任何示例,我尝试从控制台输入现有角色的ARN,但也不起作用。好的,您可以添加一个单独的答案,以便将来的读者可以从中受益吗?