AWS Code Sample
Catalog

The AWS Documentation website is getting a new look!
Try it now and let us know what you think. Switch to the new look >>

You can return to the original look by selecting English in the language selector above.

HelloCdk-stack.ts

HelloCdk-stack.ts creates a stack with an SQS queue, SNS topic, subscribes the queue to the topic, and sets a CloudWatch metric and alarm on the SQS queue.

// Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. // // This file is licensed under the Apache License, Version 2.0 (the "License"). // You may not use this file except in compliance with the License. A copy of the // License is located at // // http://aws.amazon.com/apache2.0/ // // This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS // OF ANY KIND, either express or implied. See the License for the specific // language governing permissions and limitations under the License. import core = require("@aws-cdk/core"); import cloudwatch = require("@aws-cdk/aws-cloudwatch"); import sns = require("@aws-cdk/aws-sns"); import sqs = require("@aws-cdk/aws-sqs"); import subscriptions = require("@aws-cdk/aws-sns-subscriptions"); export class HelloCdkStack extends core.Stack { constructor(scope: core.App, id: string, props?: core.StackProps) { super(scope, id, props); const queue = new sqs.Queue(this, "HelloCdkQueue", { visibilityTimeout: core.Duration.seconds(300) }); const topic = new sns.Topic(this, "HelloCdkTopic"); const sub = new subscriptions.SqsSubscription(queue, {}); sub.bind(topic); // Raise an alarm if we have more than 100 messages available for retrieval // in two of the last three seconds // Do not change the spacing in the following example // otherwise you'll screw up the online docs const qMetric = queue.metric("ApproximateNumberOfMessagesVisible"); new cloudwatch.Alarm(this, "Alarm", { metric: qMetric, threshold: 100, evaluationPeriods: 3, datapointsToAlarm: 2 }); } }

Sample Details

Service: cdk

Last tested: 2019-7-11

Author: Doug-AWS

Type: full-example

On this page: