aws-ddk-core
Version:
The AWS DataOps Development Kit is an open source development framework for customers that build data workflows and modern data architecture on AWS.
44 lines • 7.86 kB
JavaScript
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SnsSqsToLambdaStage = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const events_targets = require("aws-cdk-lib/aws-events-targets");
const sns = require("aws-cdk-lib/aws-sns");
const subscriptions = require("aws-cdk-lib/aws-sns-subscriptions");
const sqs = require("aws-cdk-lib/aws-sqs");
const sqs_lambda_1 = require("./sqs-lambda");
const sns_factory_1 = require("../core/sns-factory");
/**
* Stage implements an SNS Topic connected to an Amazon SQS queue and an AWS Lambda function,
* with an optional DLQ.
*/
class SnsSqsToLambdaStage extends sqs_lambda_1.SqsToLambdaStage {
/**
* Constructs `SnsSqsToLambdaStage`.
* @param scope Scope within which this construct is defined.
* @param id Identifier of the stage.
* @param props Properties for the stage.
*/
constructor(scope, id, props) {
super(scope, id, props);
this.snsDeadLetterQueue = props.snsDlqEnabled ? new sqs.Queue(this, "SNS Dead Letter Queue", {}) : undefined;
this.topic = props.snsTopic ? props.snsTopic : new sns.Topic(this, "Topic", { ...props.snsTopicProps });
if (this.topic.fifo) {
throw TypeError("FIFO SNS Topics are unsupported for Lambda Triggers");
}
if (!props.disableDefaultTopicPolicy) {
sns_factory_1.SnsFactory.secureSnsTopicPolicy(this.topic);
}
this.topic.addSubscription(new subscriptions.SqsSubscription(this.queue, {
deadLetterQueue: this.deadLetterQueue,
filterPolicy: props.filterPolicy ?? {},
rawMessageDelivery: props.rawMessageDelivery ?? undefined,
}));
this.targets = [new events_targets.SnsTopic(this.topic, {})];
}
}
exports.SnsSqsToLambdaStage = SnsSqsToLambdaStage;
_a = JSII_RTTI_SYMBOL_1;
SnsSqsToLambdaStage[_a] = { fqn: "aws-ddk-core.SnsSqsToLambdaStage", version: "1.4.1" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25zLWxhbWJkYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGFnZXMvc25zLWxhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGlFQUFpRTtBQUNqRSwyQ0FBMkM7QUFDM0MsbUVBQW1FO0FBQ25FLDJDQUEyQztBQUUzQyw2Q0FBdUU7QUFDdkUscURBQWlEO0FBOENqRDs7O0dBR0c7QUFDSCxNQUFhLG1CQUFvQixTQUFRLDZCQUFnQjtJQU92RDs7Ozs7T0FLRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUM3RyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN4RyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ25CLE1BQU0sU0FBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDeEU7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFO1lBQ3BDLHdCQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQ3hCLElBQUksYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzVDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVksSUFBSSxFQUFFO1lBQ3RDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxTQUFTO1NBQzFELENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7QUFsQ0gsa0RBbUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzXCI7XG5pbXBvcnQgKiBhcyBldmVudHNfdGFyZ2V0cyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzXCI7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zbnNcIjtcbmltcG9ydCAqIGFzIHN1YnNjcmlwdGlvbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zbnMtc3Vic2NyaXB0aW9uc1wiO1xuaW1wb3J0ICogYXMgc3FzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3FzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgU3FzVG9MYW1iZGFTdGFnZSwgU3FzVG9MYW1iZGFTdGFnZVByb3BzIH0gZnJvbSBcIi4vc3FzLWxhbWJkYVwiO1xuaW1wb3J0IHsgU25zRmFjdG9yeSB9IGZyb20gXCIuLi9jb3JlL3Nucy1mYWN0b3J5XCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYFNuc1Nxc1RvTGFtYmRhU3RhZ2VgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNuc1RvTGFtYmRhU3RhZ2VQcm9wcyBleHRlbmRzIFNxc1RvTGFtYmRhU3RhZ2VQcm9wcyB7XG4gIC8qKlxuICAgKiBQcmVleGlzdGluZyBTTlMgVG9waWMgdG8gdXNlIGluIHN0YWdlLlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIGEgbmV3IG9uZSB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBzbnNUb3BpYz86IHNucy5JVG9waWM7XG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIGZvciB0aGUgU05TIFRvcGljIHRoYXQgd2lsbCBiZSBjcmVhdGVkIGJ5IHRoaXMgY29uc3RydWN0XG4gICAqIChpZiBgc25zVG9waWNgIGlzIG5vdCBwcm92aWRlZCkuXG4gICAqL1xuICByZWFkb25seSBzbnNUb3BpY1Byb3BzPzogc25zLlRvcGljUHJvcHM7XG4gIC8qKlxuICAgKiBUaGUgZmlsdGVyIHBvbGljeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgbWVzc2FnZXMgYXJlIGRlbGl2ZXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyUG9saWN5PzogeyBbYXR0cmlidXRlOiBzdHJpbmddOiBzbnMuU3Vic2NyaXB0aW9uRmlsdGVyIH07XG4gIC8qKlxuICAgKiBRdWV1ZSB0byBiZSB1c2VkIGFzIGRlYWQgbGV0dGVyIHF1ZXVlLlxuICAgKiBJZiBub3QgcGFzc2VkIG5vIGRlYWQgbGV0dGVyIHF1ZXVlIGlzIGVuYWJsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZGVhZCBsZXR0ZXIgcXVldWUgZW5hYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNuc0RscUVuYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIG1lc3NhZ2UgdG8gdGhlIHF1ZXVlIGlzIHRoZSBzYW1lIGFzIGl0IHdhcyBzZW50IHRvIHRoZSB0b3BpY1xuICAgKlxuICAgKiBJZiBmYWxzZSwgdGhlIG1lc3NhZ2Ugd2lsbCBiZSB3cmFwcGVkIGluIGFuIFNOUyBlbnZlbG9wZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJhd01lc3NhZ2VEZWxpdmVyeT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGRlZmF1bHQgdG9waWMgcG9saWN5IGdlbmVyYXRlZCBieSBTbnNGYWN0b3J5LlxuICAgKiBAc2VlIFNuc0ZhY3Rvcnkuc2VjdXJlU25zVG9waWNQb2xpY3lcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVEZWZhdWx0VG9waWNQb2xpY3k/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFN0YWdlIGltcGxlbWVudHMgYW4gU05TIFRvcGljIGNvbm5lY3RlZCB0byBhbiBBbWF6b24gU1FTIHF1ZXVlIGFuZCBhbiBBV1MgTGFtYmRhIGZ1bmN0aW9uLFxuICogd2l0aCBhbiBvcHRpb25hbCBETFEuXG4gKi9cbmV4cG9ydCBjbGFzcyBTbnNTcXNUb0xhbWJkYVN0YWdlIGV4dGVuZHMgU3FzVG9MYW1iZGFTdGFnZSB7XG4gIHJlYWRvbmx5IHRhcmdldHM/OiBldmVudHMuSVJ1bGVUYXJnZXRbXTtcbiAgcmVhZG9ubHkgZXZlbnRQYXR0ZXJuPzogZXZlbnRzLkV2ZW50UGF0dGVybjtcblxuICByZWFkb25seSB0b3BpYzogc25zLklUb3BpYztcbiAgcmVhZG9ubHkgc25zRGVhZExldHRlclF1ZXVlPzogc3FzLlF1ZXVlO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGBTbnNTcXNUb0xhbWJkYVN0YWdlYC5cbiAgICogQHBhcmFtIHNjb3BlIFNjb3BlIHdpdGhpbiB3aGljaCB0aGlzIGNvbnN0cnVjdCBpcyBkZWZpbmVkLlxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgc3RhZ2UuXG4gICAqIEBwYXJhbSBwcm9wcyBQcm9wZXJ0aWVzIGZvciB0aGUgc3RhZ2UuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU25zVG9MYW1iZGFTdGFnZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnNuc0RlYWRMZXR0ZXJRdWV1ZSA9IHByb3BzLnNuc0RscUVuYWJsZWQgPyBuZXcgc3FzLlF1ZXVlKHRoaXMsIFwiU05TIERlYWQgTGV0dGVyIFF1ZXVlXCIsIHt9KSA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnRvcGljID0gcHJvcHMuc25zVG9waWMgPyBwcm9wcy5zbnNUb3BpYyA6IG5ldyBzbnMuVG9waWModGhpcywgXCJUb3BpY1wiLCB7IC4uLnByb3BzLnNuc1RvcGljUHJvcHMgfSk7XG4gICAgaWYgKHRoaXMudG9waWMuZmlmbykge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKFwiRklGTyBTTlMgVG9waWNzIGFyZSB1bnN1cHBvcnRlZCBmb3IgTGFtYmRhIFRyaWdnZXJzXCIpO1xuICAgIH1cbiAgICBpZiAoIXByb3BzLmRpc2FibGVEZWZhdWx0VG9waWNQb2xpY3kpIHtcbiAgICAgIFNuc0ZhY3Rvcnkuc2VjdXJlU25zVG9waWNQb2xpY3kodGhpcy50b3BpYyk7XG4gICAgfVxuXG4gICAgdGhpcy50b3BpYy5hZGRTdWJzY3JpcHRpb24oXG4gICAgICBuZXcgc3Vic2NyaXB0aW9ucy5TcXNTdWJzY3JpcHRpb24odGhpcy5xdWV1ZSwge1xuICAgICAgICBkZWFkTGV0dGVyUXVldWU6IHRoaXMuZGVhZExldHRlclF1ZXVlLFxuICAgICAgICBmaWx0ZXJQb2xpY3k6IHByb3BzLmZpbHRlclBvbGljeSA/PyB7fSxcbiAgICAgICAgcmF3TWVzc2FnZURlbGl2ZXJ5OiBwcm9wcy5yYXdNZXNzYWdlRGVsaXZlcnkgPz8gdW5kZWZpbmVkLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMudGFyZ2V0cyA9IFtuZXcgZXZlbnRzX3RhcmdldHMuU25zVG9waWModGhpcy50b3BpYywge30pXTtcbiAgfVxufVxuIl19
;