3

我正在尝试使用适用于 AWS CDK 的 Python sdk 创建金丝雀部署。这是代码的相关部分:

canary = CfnCanary(
        scope=self,
        id='canary',
        execution_role_arn=canary_execution_role.role_arn,
        name='canary-example',
        run_config=CfnCanary.RunConfigProperty(timeout_in_seconds=1),
        runtime_version='syn-1.0',
        schedule=CfnCanary.ScheduleProperty(duration_in_seconds='5', expression='rate(0 minute)'),
        artifact_s3_location=f's3://{bucket.bucket_name}',
        start_canary_after_creation=False,
        code=CfnCanary.CodeProperty(s3_bucket='s3://canary-script-002', handler='handler.handler', s3_key='handler.handler')
    )

即使我检查没有创建其他金丝雀,我也会收到此错误:

Resource of type 'AWS::Synthetics::Canary' with identifier '{"/properties/Name":"canary-example"}' already exists.

正如我所说,我已经在控制台中检查了是否存在其他金丝雀(没有),我在重试之前销毁了创建的堆栈。

有任何想法吗?

4

1 回答 1

0

通过在资源名称中添加随机字符串(在 TypeScript 中使用 Date.Now() 或 Python 中的等效项),我在类似情况下取得了成功。这会强制 CloudFormation 在每次部署时删除并重新创建资源。

于 2021-11-12T05:11:32.617 回答