Reputation: 51
I'm trying to create a canary deployment using the Python sdk for AWS CDK. This is the pertinent part of the code:
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')
)
I'm getting this error, even when I check that there's no other canary created:
Resource of type 'AWS::Synthetics::Canary' with identifier '{"/properties/Name":"canary-example"}' already exists.
As I said, I already checked in the console for the existence of other canary (there's none), and I destroy the created stack before trying again.
Any ideas?
Upvotes: 3
Views: 1871
Reputation: 178
I've had success with similar situations by adding a random string to the name of the resource (using Date.Now() works in TypeScript or the equivalent in Python). This forces CloudFormation to delete, and re-create the resource on each deploy.
Upvotes: 0