Deploy AWS Synthetics Canary Using a Local Script
Example to deploy an AWS synthetics canary.
This example lives in the pulumi/examples repository. Check out just this directory to use it:
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examplesgit -C pulumi-examples sparse-checkout set aws-ts-synthetics-canarycd pulumi-examples/aws-ts-synthetics-canaryAn 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:
Terminal window pulumi stack init dev -
Set the AWS region:
$ pulumi config set aws:region us-east-1 -
Restore NPM modules via
npm installoryarn install.npm install -
Run
pulumi upto preview and deploy changes:$ pulumi upPreviewing update (dev)...Updating (dev)View Live: https://app.pulumi.com/acmecorp/aws-synthetics-canary/dev/updates/1Type Name Status+ pulumi:pulumi:Stack aws-synthetics-canary-dev created+ ├─ aws:s3:Bucket canary-results created+ ├─ aws:s3:Bucket 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 createdOutputs: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.