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.
-
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 install
oryarn install
.npm install
-
Run
pulumi up
to 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"
-
Run
pulumi destroy
to tear down all resources.NOTE: Until hashicorp/terraform-provider-aws#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.