AWS Code Sample
Catalog

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 cdk = require('@aws-cdk/cdk'); import cloudwatch = require('@aws-cdk/aws-cloudwatch'); import sns = require('@aws-cdk/aws-sns'); import sqs = require('@aws-cdk/aws-sqs'); export class HelloCdkStack extends cdk.Stack { constructor(scope: cdk.App, id: string, props?: cdk.StackProps) { super(scope, id, props); const queue = new sqs.Queue(this, 'HelloCdkQueue', { visibilityTimeoutSec: 300 }); const topic = new sns.Topic(this, 'HelloCdkTopic'); topic.subscribeQueue(queue); // 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-2-13

Author: Doug-AWS

Type: full-example

On this page: