Deploy AWS Synthetics Canary Using a Local Script
An example of deploying an AWS Synthetics Canary using a script stored locally.
This example does the following:
- Zips up a colocated canary script.
- Pushes the zip file to an S3 bucket.
- Creates an IAM role and policy for the canary.
- Deploys the canary.
The canary used in this example is a simple no-op script that writes a message. See Writing Canary Scripts for details regarding canary directory structure and naming conventions. There are some prebaked canary scripts for doing things like checking an API or a link that can be found on AWS.
Deploying and running the program
- Create a new stack: - $ pulumi stack init dev
- Set the AWS region: - $ pulumi config set aws:region us-east-1
- Restore NPM modules via - npm installor- yarn install.- npm install
- Run - pulumi upto preview and deploy changes:- $ pulumi up Previewing update (dev) ... Updating (dev) View Live: https://app.pulumi.com/acmecorp/aws-synthetics-canary/dev/updates/1 Type Name Status + pulumi:pulumi:Stack aws-synthetics-canary-dev created + ├─ aws:s3:BucketV2 canary-results created + ├─ aws:s3:BucketV2 canary-scripts created + ├─ aws:iam:Role canary-exec-role created + ├─ aws:iam:RolePolicy canary-exec-policy created + ├─ aws:s3:BucketObjectv2 canary-simple-canary created + └─ aws:synthetics:Canary canary-simple created Outputs: canaryName : "canary-simple-a4a3974" canaryNameArn: "arn:aws:synthetics:us-east-1:052848974346:canary:canary-simple-a4a3974"
Clean up
- Run - pulumi destroyto tear down all resources.- NOTE: Until https://github.com/hashicorp/terraform-provider-aws/issues/19288 is addressed, the Canary’s lambda function and related layers are left after the stack is destroyed. So you will want to manually clean up these items. 
- To delete the stack itself, run - pulumi stack rm. Note that this command deletes all deployment history from the Pulumi console.