3

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?

Ivan
  • 51
  • 9
  • Check using [CLI if canary](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/synthetics/describe-canaries.html) exisits. Not all may be shown in console. – Marcin Jul 24 '20 at 23:14
  • 1
    I'm seeing the same problem, the CLI confirms that there are no canaries in this account. @Ivan did you make any progress with this? – Alex Barnes Aug 03 '20 at 18:43
  • I've started a ticket with AWS. They told me that they don't see any issue with the code, but sadly right now I'm having administrative issues to follow the ticket. As soon as I can make progress I'll update. – Ivan Aug 04 '20 at 19:19

1 Answers1

0

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.

Pharmakon
  • 160
  • 1
  • 12