@orcabus/platform-cdk-constructs 0.0.21 → 0.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +367 -35
- package/api-gateway/api-gateway.js +1 -1
- package/deployment-stack-pipeline/artifact-bucket.js +1 -1
- package/deployment-stack-pipeline/pipeline.js +1 -1
- package/dynamodb/index.js +2 -2
- package/ecs/config.d.ts +3 -0
- package/ecs/config.js +4 -1
- package/ecs/index.d.ts +2 -2
- package/ecs/index.js +15 -4
- package/index.d.ts +1 -0
- package/index.js +3 -2
- package/index.ts +1 -0
- package/lambda/index.js +1 -1
- package/lambda/layers/orcabus_api_tools/poetry.lock +247 -1
- package/lambda/layers/orcabus_api_tools/pyproject.toml +1 -0
- package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/fastq/__init__.py +9 -0
- package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/fastq/query_helpers.py +2 -1
- package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/fastq/validation_helpers.py +25 -0
- package/monitored-queue/README.md +21 -0
- package/monitored-queue/index.d.ts +57 -0
- package/monitored-queue/index.js +55 -0
- package/named-lambda-role/index.js +1 -1
- package/package.json +1 -1
- package/provider-function/index.js +1 -1
- package/shared-config/index.d.ts +1 -0
- package/shared-config/index.js +3 -2
- package/shared-config/networking.js +2 -2
- package/shared-config/slack.d.ts +16 -0
- package/shared-config/slack.js +28 -0
- package/test/monitored-queue.test.js +72 -0
- package/test/provider-function.test.d.ts +1 -0
- package/test/provider-function.test.js +121 -0
- package/test/providerFunction.test.js +0 -121
- /package/test/{providerFunction.test.d.ts → monitored-queue.test.d.ts} +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MonitoredQueue = void 0;
|
|
4
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
|
+
const constructs_1 = require("constructs");
|
|
6
|
+
const aws_sqs_1 = require("aws-cdk-lib/aws-sqs");
|
|
7
|
+
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
|
|
8
|
+
const aws_sns_1 = require("aws-cdk-lib/aws-sns");
|
|
9
|
+
const aws_cloudwatch_actions_1 = require("aws-cdk-lib/aws-cloudwatch-actions");
|
|
10
|
+
/**
|
|
11
|
+
* A construct that defines an SQS queue, along with a DLQ and CloudWatch alarms that can notify an
|
|
12
|
+
* SNS topic.
|
|
13
|
+
*/
|
|
14
|
+
class MonitoredQueue extends constructs_1.Construct {
|
|
15
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.monitoredQueue.MonitoredQueue", version: "0.0.23" };
|
|
16
|
+
queue;
|
|
17
|
+
deadLetterQueue;
|
|
18
|
+
alarm;
|
|
19
|
+
constructor(scope, id, props) {
|
|
20
|
+
super(scope, id);
|
|
21
|
+
this.deadLetterQueue = new aws_sqs_1.Queue(this, "DeadLetterQueue", {
|
|
22
|
+
enforceSSL: true,
|
|
23
|
+
...props.dlqProps,
|
|
24
|
+
});
|
|
25
|
+
this.queue = new aws_sqs_1.Queue(this, "Queue", {
|
|
26
|
+
enforceSSL: true,
|
|
27
|
+
deadLetterQueue: {
|
|
28
|
+
maxReceiveCount: props.maxReceiveCount ?? 3,
|
|
29
|
+
queue: this.deadLetterQueue,
|
|
30
|
+
},
|
|
31
|
+
...props.queueProps,
|
|
32
|
+
});
|
|
33
|
+
this.alarm = new aws_cloudwatch_1.Alarm(this, "Alarm", {
|
|
34
|
+
metric: this.deadLetterQueue.metricApproximateNumberOfMessagesVisible(),
|
|
35
|
+
treatMissingData: aws_cloudwatch_1.TreatMissingData.BREACHING,
|
|
36
|
+
comparisonOperator: aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_THRESHOLD,
|
|
37
|
+
threshold: 0,
|
|
38
|
+
evaluationPeriods: 1,
|
|
39
|
+
alarmName: `${this.queue.queueName}-alarm`,
|
|
40
|
+
alarmDescription: "An event has been received in the dead letter queue.",
|
|
41
|
+
});
|
|
42
|
+
if (props.snsTopicArn !== undefined) {
|
|
43
|
+
const topic = aws_sns_1.Topic.fromTopicArn(this, "Topic", props.snsTopicArn);
|
|
44
|
+
this.alarm.addAlarmAction(new aws_cloudwatch_actions_1.SnsAction(topic));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get the SQS queue ARN.
|
|
49
|
+
*/
|
|
50
|
+
get queueArn() {
|
|
51
|
+
return this.queue.queueArn;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.MonitoredQueue = MonitoredQueue;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkNBQXVDO0FBQ3ZDLGlEQUE0QztBQUM1QywrREFJb0M7QUFFcEMsaURBQTRDO0FBQzVDLCtFQUErRDtBQTJDL0Q7OztHQUdHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsc0JBQVM7O0lBQ2xDLEtBQUssQ0FBUTtJQUNiLGVBQWUsQ0FBUTtJQUN2QixLQUFLLENBQVE7SUFFdEIsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFLLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQ3hELFVBQVUsRUFBRSxJQUFJO1lBQ2hCLEdBQUcsS0FBSyxDQUFDLFFBQVE7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGVBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ3BDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGVBQWUsRUFBRTtnQkFDZixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWUsSUFBSSxDQUFDO2dCQUMzQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWU7YUFDNUI7WUFDRCxHQUFHLEtBQUssQ0FBQyxVQUFVO1NBQ3BCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxzQkFBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDcEMsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsd0NBQXdDLEVBQUU7WUFDdkUsZ0JBQWdCLEVBQUUsaUNBQWdCLENBQUMsU0FBUztZQUM1QyxrQkFBa0IsRUFBRSxtQ0FBa0IsQ0FBQyxzQkFBc0I7WUFDN0QsU0FBUyxFQUFFLENBQUM7WUFDWixpQkFBaUIsRUFBRSxDQUFDO1lBQ3BCLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxRQUFRO1lBQzFDLGdCQUFnQixFQUFFLHNEQUFzRDtTQUN6RSxDQUFDLENBQUM7UUFFSCxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEMsTUFBTSxLQUFLLEdBQUcsZUFBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLGtDQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUM3QixDQUFDOztBQTNDSCx3Q0E0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgUXVldWUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNxc1wiO1xuaW1wb3J0IHtcbiAgQWxhcm0sXG4gIENvbXBhcmlzb25PcGVyYXRvcixcbiAgVHJlYXRNaXNzaW5nRGF0YSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoXCI7XG5pbXBvcnQgeyBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgVG9waWMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNuc1wiO1xuaW1wb3J0IHsgU25zQWN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoLWFjdGlvbnNcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgbW9uaXRvcmVkIHF1ZXVlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbml0b3JlZFF1ZXVlUHJvcHMge1xuICAvKipcbiAgICogVGhlIHByb3BzIGZvciB0aGUgbWFpbiBTUVMgcXVldWUuXG4gICAqL1xuICByZWFkb25seSBxdWV1ZVByb3BzPzogUXVldWVQcm9wcztcbiAgLyoqXG4gICAqIFRoZSBwcm9wcyBmb3IgdGhlIGRlYWQtbGV0dGVyIFNRUyBxdWV1ZSB3aGVuIGEgbWVzc2FnZSBmYWlscy5cbiAgICovXG4gIHJlYWRvbmx5IGRscVByb3BzPzogUXVldWVQcm9wcztcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB0aW1lcyBhIG1lc3NhZ2UgY2FuIGJlIHVuc3VjY2Vzc2Z1bGx5IHJlY2VpdmVkIGJlZm9yZVxuICAgKiBwdXNoaW5nIGl0IHRvIHRoZSBETFEuIERlZmF1bHRzIHRvIDMuXG4gICAqL1xuICByZWFkb25seSBtYXhSZWNlaXZlQ291bnQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBTZW5kIHRoZSBhbGFybSBub3RpZmljYXRpb24gdG8gdGhlIFNOUyB0b3BpYyB3aXRoIHRoZSBBUk4uXG4gICAqL1xuICByZWFkb25seSBzbnNUb3BpY0Fybj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhbiBTUVMgcXVldWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVldWVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcXVldWUgdG8gY29uc3RydWN0LiBEZWZhdWx0cyB0byB0aGUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEhvdyBsb25nIG1lc3NhZ2VzIHN0YXkgaW4gdGhlIHF1ZXVlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmV0ZW50aW9uUGVyaW9kPzogRHVyYXRpb247XG4gIC8qKlxuICAgKiBUaGUgcmVtb3ZhbCBwb2xpY3kgb2YgdGhlIHF1ZXVlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG59XG5cbi8qKlxuICogQSBjb25zdHJ1Y3QgdGhhdCBkZWZpbmVzIGFuIFNRUyBxdWV1ZSwgYWxvbmcgd2l0aCBhIERMUSBhbmQgQ2xvdWRXYXRjaCBhbGFybXMgdGhhdCBjYW4gbm90aWZ5IGFuXG4gKiBTTlMgdG9waWMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb25pdG9yZWRRdWV1ZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IHF1ZXVlOiBRdWV1ZTtcbiAgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlOiBRdWV1ZTtcbiAgcmVhZG9ubHkgYWxhcm06IEFsYXJtO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBNb25pdG9yZWRRdWV1ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuZGVhZExldHRlclF1ZXVlID0gbmV3IFF1ZXVlKHRoaXMsIFwiRGVhZExldHRlclF1ZXVlXCIsIHtcbiAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgICAuLi5wcm9wcy5kbHFQcm9wcyxcbiAgICB9KTtcblxuICAgIHRoaXMucXVldWUgPSBuZXcgUXVldWUodGhpcywgXCJRdWV1ZVwiLCB7XG4gICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgZGVhZExldHRlclF1ZXVlOiB7XG4gICAgICAgIG1heFJlY2VpdmVDb3VudDogcHJvcHMubWF4UmVjZWl2ZUNvdW50ID8/IDMsXG4gICAgICAgIHF1ZXVlOiB0aGlzLmRlYWRMZXR0ZXJRdWV1ZSxcbiAgICAgIH0sXG4gICAgICAuLi5wcm9wcy5xdWV1ZVByb3BzLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hbGFybSA9IG5ldyBBbGFybSh0aGlzLCBcIkFsYXJtXCIsIHtcbiAgICAgIG1ldHJpYzogdGhpcy5kZWFkTGV0dGVyUXVldWUubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZk1lc3NhZ2VzVmlzaWJsZSgpLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogVHJlYXRNaXNzaW5nRGF0YS5CUkVBQ0hJTkcsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiAwLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICBhbGFybU5hbWU6IGAke3RoaXMucXVldWUucXVldWVOYW1lfS1hbGFybWAsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBcIkFuIGV2ZW50IGhhcyBiZWVuIHJlY2VpdmVkIGluIHRoZSBkZWFkIGxldHRlciBxdWV1ZS5cIixcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5zbnNUb3BpY0FybiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB0b3BpYyA9IFRvcGljLmZyb21Ub3BpY0Fybih0aGlzLCBcIlRvcGljXCIsIHByb3BzLnNuc1RvcGljQXJuKTtcbiAgICAgIHRoaXMuYWxhcm0uYWRkQWxhcm1BY3Rpb24obmV3IFNuc0FjdGlvbih0b3BpYykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIFNRUyBxdWV1ZSBBUk4uXG4gICAqL1xuICBnZXQgcXVldWVBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5xdWV1ZUFybjtcbiAgfVxufVxuIl19
|
|
@@ -7,7 +7,7 @@ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
|
7
7
|
* A construct which represents a named role that a Lambda function can assume.
|
|
8
8
|
*/
|
|
9
9
|
class NamedLambdaRole extends aws_iam_1.Role {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.namedLambdaRole.NamedLambdaRole", version: "0.0.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.namedLambdaRole.NamedLambdaRole", version: "0.0.23" };
|
|
11
11
|
constructor(scope, id, props) {
|
|
12
12
|
super(scope, id, {
|
|
13
13
|
assumedBy: new aws_iam_1.ServicePrincipal("lambda.amazonaws.com"),
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
|
15
15
|
* to the provider framework.
|
|
16
16
|
*/
|
|
17
17
|
class ProviderFunction extends constructs_1.Construct {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.provider.ProviderFunction", version: "0.0.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.provider.ProviderFunction", version: "0.0.23" };
|
|
19
19
|
_function;
|
|
20
20
|
_response;
|
|
21
21
|
constructor(scope, id, props) {
|
package/shared-config/index.d.ts
CHANGED
package/shared-config/index.js
CHANGED
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.icav2 = exports.s3 = exports.database = exports.account = exports.eventBridge = exports.networking = exports.fileManager = void 0;
|
|
36
|
+
exports.slack = exports.icav2 = exports.s3 = exports.database = exports.account = exports.eventBridge = exports.networking = exports.fileManager = void 0;
|
|
37
37
|
exports.fileManager = __importStar(require("./file-manager"));
|
|
38
38
|
exports.networking = __importStar(require("./networking"));
|
|
39
39
|
exports.eventBridge = __importStar(require("./event-bridge"));
|
|
@@ -41,4 +41,5 @@ exports.account = __importStar(require("./accounts"));
|
|
|
41
41
|
exports.database = __importStar(require("./database"));
|
|
42
42
|
exports.s3 = __importStar(require("./s3"));
|
|
43
43
|
exports.icav2 = __importStar(require("./icav2"));
|
|
44
|
-
|
|
44
|
+
exports.slack = __importStar(require("./slack"));
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4REFBOEM7QUFDOUMsMkRBQTJDO0FBQzNDLDhEQUE4QztBQUM5QyxzREFBc0M7QUFDdEMsdURBQXVDO0FBQ3ZDLDJDQUEyQjtBQUMzQixpREFBaUM7QUFDakMsaURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogYXMgZmlsZU1hbmFnZXIgZnJvbSBcIi4vZmlsZS1tYW5hZ2VyXCI7XG5leHBvcnQgKiBhcyBuZXR3b3JraW5nIGZyb20gXCIuL25ldHdvcmtpbmdcIjtcbmV4cG9ydCAqIGFzIGV2ZW50QnJpZGdlIGZyb20gXCIuL2V2ZW50LWJyaWRnZVwiO1xuZXhwb3J0ICogYXMgYWNjb3VudCBmcm9tIFwiLi9hY2NvdW50c1wiO1xuZXhwb3J0ICogYXMgZGF0YWJhc2UgZnJvbSBcIi4vZGF0YWJhc2VcIjtcbmV4cG9ydCAqIGFzIHMzIGZyb20gXCIuL3MzXCI7XG5leHBvcnQgKiBhcyBpY2F2MiBmcm9tIFwiLi9pY2F2MlwiO1xuZXhwb3J0ICogYXMgc2xhY2sgZnJvbSBcIi4vc2xhY2tcIjtcbiJdfQ==
|
|
@@ -23,7 +23,7 @@ exports.VPC_LOOKUP_PROPS = {
|
|
|
23
23
|
* Helper for looking up the shared OrcaBus VPC.
|
|
24
24
|
*/
|
|
25
25
|
class OrcaBusVpc {
|
|
26
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusVpc", version: "0.0.
|
|
26
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusVpc", version: "0.0.23" };
|
|
27
27
|
/**
|
|
28
28
|
* The shared VPC that is used by OrcaBus.
|
|
29
29
|
* @param scope
|
|
@@ -42,7 +42,7 @@ exports.SHARED_SECURITY_GROUP_NAME = "OrcaBusSharedComputeSecurityGroup";
|
|
|
42
42
|
* Helper for looking up the shared compute security group by name.
|
|
43
43
|
*/
|
|
44
44
|
class OrcaBusSharedComputeSecurityGroup {
|
|
45
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusSharedComputeSecurityGroup", version: "0.0.
|
|
45
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusSharedComputeSecurityGroup", version: "0.0.23" };
|
|
46
46
|
/**
|
|
47
47
|
* The shared security group that is used by compute resources to access the database.
|
|
48
48
|
* @param scope
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Arn, Stack } from "aws-cdk-lib";
|
|
2
|
+
/**
|
|
3
|
+
* The SNS topic for slack alerts to alerts-dev, alerts-stg, or alerts-prod.
|
|
4
|
+
*/
|
|
5
|
+
export declare const SLACK_ALERTS_SNS_TOPIC = "AwsChatBotTopic-alerts";
|
|
6
|
+
/**
|
|
7
|
+
* A helper class to construct the arn for the slack SNS topic.
|
|
8
|
+
*/
|
|
9
|
+
export declare class SlackAlerts {
|
|
10
|
+
/**
|
|
11
|
+
* Format the ARN for the slack alerts SNS topic for the current stack.
|
|
12
|
+
* @param stack
|
|
13
|
+
* @returns Arn
|
|
14
|
+
*/
|
|
15
|
+
static formatArn(stack: Stack): Arn;
|
|
16
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SlackAlerts = exports.SLACK_ALERTS_SNS_TOPIC = void 0;
|
|
4
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
6
|
+
/**
|
|
7
|
+
* The SNS topic for slack alerts to alerts-dev, alerts-stg, or alerts-prod.
|
|
8
|
+
*/
|
|
9
|
+
exports.SLACK_ALERTS_SNS_TOPIC = "AwsChatBotTopic-alerts";
|
|
10
|
+
/**
|
|
11
|
+
* A helper class to construct the arn for the slack SNS topic.
|
|
12
|
+
*/
|
|
13
|
+
class SlackAlerts {
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.slack.SlackAlerts", version: "0.0.23" };
|
|
15
|
+
/**
|
|
16
|
+
* Format the ARN for the slack alerts SNS topic for the current stack.
|
|
17
|
+
* @param stack
|
|
18
|
+
* @returns Arn
|
|
19
|
+
*/
|
|
20
|
+
static formatArn(stack) {
|
|
21
|
+
return aws_cdk_lib_1.Arn.format({
|
|
22
|
+
service: "sns",
|
|
23
|
+
resource: exports.SLACK_ALERTS_SNS_TOPIC,
|
|
24
|
+
}, stack);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.SlackAlerts = SlackAlerts;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzbGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNkNBQXlDO0FBRXpDOztHQUVHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyx3QkFBd0IsQ0FBQztBQUUvRDs7R0FFRztBQUNILE1BQWEsV0FBVzs7SUFDdEI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBWTtRQUNsQyxPQUFPLGlCQUFHLENBQUMsTUFBTSxDQUNmO1lBQ0UsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsOEJBQXNCO1NBQ2pDLEVBQ0QsS0FBSyxDQUNOLENBQUM7SUFDSixDQUFDOztBQWRILGtDQWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJuLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG4vKipcbiAqIFRoZSBTTlMgdG9waWMgZm9yIHNsYWNrIGFsZXJ0cyB0byBhbGVydHMtZGV2LCBhbGVydHMtc3RnLCBvciBhbGVydHMtcHJvZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNMQUNLX0FMRVJUU19TTlNfVE9QSUMgPSBcIkF3c0NoYXRCb3RUb3BpYy1hbGVydHNcIjtcblxuLyoqXG4gKiBBIGhlbHBlciBjbGFzcyB0byBjb25zdHJ1Y3QgdGhlIGFybiBmb3IgdGhlIHNsYWNrIFNOUyB0b3BpYy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNsYWNrQWxlcnRzIHtcbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgQVJOIGZvciB0aGUgc2xhY2sgYWxlcnRzIFNOUyB0b3BpYyBmb3IgdGhlIGN1cnJlbnQgc3RhY2suXG4gICAqIEBwYXJhbSBzdGFja1xuICAgKiBAcmV0dXJucyBBcm5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0QXJuKHN0YWNrOiBTdGFjayk6IEFybiB7XG4gICAgcmV0dXJuIEFybi5mb3JtYXQoXG4gICAgICB7XG4gICAgICAgIHNlcnZpY2U6IFwic25zXCIsXG4gICAgICAgIHJlc291cmNlOiBTTEFDS19BTEVSVFNfU05TX1RPUElDLFxuICAgICAgfSxcbiAgICAgIHN0YWNrLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const cdk = __importStar(require("aws-cdk-lib"));
|
|
37
|
+
const assertions_1 = require("aws-cdk-lib/assertions");
|
|
38
|
+
const monitored_queue_1 = require("../monitored-queue");
|
|
39
|
+
let stack;
|
|
40
|
+
beforeEach(() => {
|
|
41
|
+
stack = new cdk.Stack();
|
|
42
|
+
});
|
|
43
|
+
test("Test monitored queue created props", () => {
|
|
44
|
+
new monitored_queue_1.MonitoredQueue(stack, "MonitoredQueue", {
|
|
45
|
+
queueProps: {
|
|
46
|
+
queueName: "queue",
|
|
47
|
+
},
|
|
48
|
+
dlqProps: {
|
|
49
|
+
queueName: "queue-dlq",
|
|
50
|
+
},
|
|
51
|
+
snsTopicArn: "arn:aws:sns:ap-southeast-2:123456789012:topic",
|
|
52
|
+
});
|
|
53
|
+
const template = assertions_1.Template.fromStack(stack);
|
|
54
|
+
template.resourceCountIs("AWS::SQS::Queue", 2);
|
|
55
|
+
template.hasResourceProperties("AWS::SQS::Queue", {
|
|
56
|
+
QueueName: "queue",
|
|
57
|
+
RedrivePolicy: {
|
|
58
|
+
deadLetterTargetArn: assertions_1.Match.anyValue(),
|
|
59
|
+
maxReceiveCount: 3,
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
template.hasResourceProperties("AWS::SQS::Queue", {
|
|
63
|
+
QueueName: "queue-dlq",
|
|
64
|
+
});
|
|
65
|
+
template.hasResourceProperties("AWS::CloudWatch::Alarm", {
|
|
66
|
+
ComparisonOperator: "GreaterThanThreshold",
|
|
67
|
+
EvaluationPeriods: 1,
|
|
68
|
+
Threshold: 0,
|
|
69
|
+
AlarmActions: ["arn:aws:sns:ap-southeast-2:123456789012:topic"],
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvcmVkLXF1ZXVlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtb25pdG9yZWQtcXVldWUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUFtQztBQUNuQyx1REFBeUQ7QUFDekQsd0RBQW9EO0FBRXBELElBQUksS0FBZ0IsQ0FBQztBQUVyQixVQUFVLENBQUMsR0FBRyxFQUFFO0lBQ2QsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQzFCLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRTtJQUM5QyxJQUFJLGdDQUFjLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFO1FBQzFDLFVBQVUsRUFBRTtZQUNWLFNBQVMsRUFBRSxPQUFPO1NBQ25CO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLFdBQVc7U0FDdkI7UUFDRCxXQUFXLEVBQUUsK0NBQStDO0tBQzdELENBQUMsQ0FBQztJQUNILE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTNDLFFBQVEsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsUUFBUSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixFQUFFO1FBQ2hELFNBQVMsRUFBRSxPQUFPO1FBQ2xCLGFBQWEsRUFBRTtZQUNiLG1CQUFtQixFQUFFLGtCQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3JDLGVBQWUsRUFBRSxDQUFDO1NBQ25CO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsUUFBUSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixFQUFFO1FBQ2hELFNBQVMsRUFBRSxXQUFXO0tBQ3ZCLENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyx3QkFBd0IsRUFBRTtRQUN2RCxrQkFBa0IsRUFBRSxzQkFBc0I7UUFDMUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNwQixTQUFTLEVBQUUsQ0FBQztRQUNaLFlBQVksRUFBRSxDQUFDLCtDQUErQyxDQUFDO0tBQ2hFLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgTWF0Y2gsIFRlbXBsYXRlIH0gZnJvbSBcImF3cy1jZGstbGliL2Fzc2VydGlvbnNcIjtcbmltcG9ydCB7IE1vbml0b3JlZFF1ZXVlIH0gZnJvbSBcIi4uL21vbml0b3JlZC1xdWV1ZVwiO1xuXG5sZXQgc3RhY2s6IGNkay5TdGFjaztcblxuYmVmb3JlRWFjaCgoKSA9PiB7XG4gIHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xufSk7XG5cbnRlc3QoXCJUZXN0IG1vbml0b3JlZCBxdWV1ZSBjcmVhdGVkIHByb3BzXCIsICgpID0+IHtcbiAgbmV3IE1vbml0b3JlZFF1ZXVlKHN0YWNrLCBcIk1vbml0b3JlZFF1ZXVlXCIsIHtcbiAgICBxdWV1ZVByb3BzOiB7XG4gICAgICBxdWV1ZU5hbWU6IFwicXVldWVcIixcbiAgICB9LFxuICAgIGRscVByb3BzOiB7XG4gICAgICBxdWV1ZU5hbWU6IFwicXVldWUtZGxxXCIsXG4gICAgfSxcbiAgICBzbnNUb3BpY0FybjogXCJhcm46YXdzOnNuczphcC1zb3V0aGVhc3QtMjoxMjM0NTY3ODkwMTI6dG9waWNcIixcbiAgfSk7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoXCJBV1M6OlNRUzo6UXVldWVcIiwgMik7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6U1FTOjpRdWV1ZVwiLCB7XG4gICAgUXVldWVOYW1lOiBcInF1ZXVlXCIsXG4gICAgUmVkcml2ZVBvbGljeToge1xuICAgICAgZGVhZExldHRlclRhcmdldEFybjogTWF0Y2guYW55VmFsdWUoKSxcbiAgICAgIG1heFJlY2VpdmVDb3VudDogMyxcbiAgICB9LFxuICB9KTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpTUVM6OlF1ZXVlXCIsIHtcbiAgICBRdWV1ZU5hbWU6IFwicXVldWUtZGxxXCIsXG4gIH0pO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkV2F0Y2g6OkFsYXJtXCIsIHtcbiAgICBDb21wYXJpc29uT3BlcmF0b3I6IFwiR3JlYXRlclRoYW5UaHJlc2hvbGRcIixcbiAgICBFdmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICBUaHJlc2hvbGQ6IDAsXG4gICAgQWxhcm1BY3Rpb25zOiBbXCJhcm46YXdzOnNuczphcC1zb3V0aGVhc3QtMjoxMjM0NTY3ODkwMTI6dG9waWNcIl0sXG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const cdk = __importStar(require("aws-cdk-lib"));
|
|
37
|
+
const assertions_1 = require("aws-cdk-lib/assertions");
|
|
38
|
+
const ec2 = __importStar(require("aws-cdk-lib/aws-ec2"));
|
|
39
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
40
|
+
const aws_s3_1 = require("aws-cdk-lib/aws-s3");
|
|
41
|
+
const index_1 = require("../provider-function/index");
|
|
42
|
+
let stack;
|
|
43
|
+
let vpc;
|
|
44
|
+
beforeEach(() => {
|
|
45
|
+
stack = new cdk.Stack();
|
|
46
|
+
vpc = new ec2.Vpc(stack, "MockExistingVPC", {
|
|
47
|
+
subnetConfiguration: [
|
|
48
|
+
{
|
|
49
|
+
cidrMask: 24,
|
|
50
|
+
name: "publicSubnet",
|
|
51
|
+
subnetType: ec2.SubnetType.PUBLIC,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
cidrMask: 24,
|
|
55
|
+
name: "privateWithEgressSubnet",
|
|
56
|
+
subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
function assert_common(template, key) {
|
|
62
|
+
// Contains the provider.
|
|
63
|
+
template.hasResourceProperties("AWS::Lambda::Function", {
|
|
64
|
+
Environment: {
|
|
65
|
+
Variables: {
|
|
66
|
+
USER_ON_EVENT_FUNCTION_ARN: {
|
|
67
|
+
"Fn::GetAtt": [assertions_1.Match.stringLikeRegexp("TestFunction*"), "Arn"],
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
// Contains the custom resource.
|
|
73
|
+
template.hasResourceProperties("AWS::CloudFormation::CustomResource", {
|
|
74
|
+
S3Key: key,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
test("Test ProviderFunction", () => {
|
|
78
|
+
const testFunction = new aws_lambda_1.Function(stack, "TestFunction", {
|
|
79
|
+
code: new aws_lambda_1.S3Code(new aws_s3_1.Bucket(stack, "TestBucket", { bucketName: "bucket" }), "key"),
|
|
80
|
+
runtime: aws_lambda_1.Runtime.NODEJS_20_X,
|
|
81
|
+
handler: "index.handler",
|
|
82
|
+
});
|
|
83
|
+
new index_1.ProviderFunction(stack, "TestProviderFunction", {
|
|
84
|
+
function: testFunction,
|
|
85
|
+
vpc,
|
|
86
|
+
});
|
|
87
|
+
const template = assertions_1.Template.fromStack(stack);
|
|
88
|
+
assert_common(template, "key");
|
|
89
|
+
});
|
|
90
|
+
test("Test ProviderFunction additionalHash", () => {
|
|
91
|
+
const testFunction = new aws_lambda_1.Function(stack, "TestFunction", {
|
|
92
|
+
code: new aws_lambda_1.S3Code(new aws_s3_1.Bucket(stack, "TestBucket", { bucketName: "bucket" }), "key"),
|
|
93
|
+
runtime: aws_lambda_1.Runtime.NODEJS_20_X,
|
|
94
|
+
handler: "index.handler",
|
|
95
|
+
});
|
|
96
|
+
new index_1.ProviderFunction(stack, "TestProviderFunction", {
|
|
97
|
+
function: testFunction,
|
|
98
|
+
vpc,
|
|
99
|
+
additionalHash: "hash",
|
|
100
|
+
});
|
|
101
|
+
const template = assertions_1.Template.fromStack(stack);
|
|
102
|
+
assert_common(template, "hash");
|
|
103
|
+
});
|
|
104
|
+
test("Test ProviderFunction properties", () => {
|
|
105
|
+
const testFunction = new aws_lambda_1.Function(stack, "TestFunction", {
|
|
106
|
+
code: new aws_lambda_1.S3Code(new aws_s3_1.Bucket(stack, "TestBucket", { bucketName: "bucket" }), "key"),
|
|
107
|
+
runtime: aws_lambda_1.Runtime.NODEJS_20_X,
|
|
108
|
+
handler: "index.handler",
|
|
109
|
+
});
|
|
110
|
+
new index_1.ProviderFunction(stack, "TestProviderFunction", {
|
|
111
|
+
function: testFunction,
|
|
112
|
+
vpc,
|
|
113
|
+
resourceProperties: { Property: "value" },
|
|
114
|
+
});
|
|
115
|
+
const template = assertions_1.Template.fromStack(stack);
|
|
116
|
+
assert_common(template, "key");
|
|
117
|
+
template.hasResourceProperties("AWS::CloudFormation::CustomResource", {
|
|
118
|
+
Property: "value",
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItZnVuY3Rpb24udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGVyLWZ1bmN0aW9uLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBbUM7QUFDbkMsdURBQXlEO0FBQ3pELHlEQUEyQztBQUMzQyx1REFBbUU7QUFDbkUsK0NBQTRDO0FBQzVDLHNEQUE4RDtBQUU5RCxJQUFJLEtBQWdCLENBQUM7QUFDckIsSUFBSSxHQUFZLENBQUM7QUFFakIsVUFBVSxDQUFDLEdBQUcsRUFBRTtJQUNkLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRTtRQUMxQyxtQkFBbUIsRUFBRTtZQUNuQjtnQkFDRSxRQUFRLEVBQUUsRUFBRTtnQkFDWixJQUFJLEVBQUUsY0FBYztnQkFDcEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTTthQUNsQztZQUNEO2dCQUNFLFFBQVEsRUFBRSxFQUFFO2dCQUNaLElBQUksRUFBRSx5QkFBeUI7Z0JBQy9CLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLG1CQUFtQjthQUMvQztTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxTQUFTLGFBQWEsQ0FBQyxRQUFrQixFQUFFLEdBQVc7SUFDcEQseUJBQXlCO0lBQ3pCLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyx1QkFBdUIsRUFBRTtRQUN0RCxXQUFXLEVBQUU7WUFDWCxTQUFTLEVBQUU7Z0JBQ1QsMEJBQTBCLEVBQUU7b0JBQzFCLFlBQVksRUFBRSxDQUFDLGtCQUFLLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxDQUFDO2lCQUMvRDthQUNGO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCxnQ0FBZ0M7SUFDaEMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLHFDQUFxQyxFQUFFO1FBQ3BFLEtBQUssRUFBRSxHQUFHO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7SUFDakMsTUFBTSxZQUFZLEdBQUcsSUFBSSxxQkFBUSxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUU7UUFDdkQsSUFBSSxFQUFFLElBQUksbUJBQU0sQ0FDZCxJQUFJLGVBQU0sQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQ3pELEtBQUssQ0FDTjtRQUNELE9BQU8sRUFBRSxvQkFBTyxDQUFDLFdBQVc7UUFDNUIsT0FBTyxFQUFFLGVBQWU7S0FDekIsQ0FBQyxDQUFDO0lBRUgsSUFBSSx3QkFBZ0IsQ0FBQyxLQUFLLEVBQUUsc0JBQXNCLEVBQUU7UUFDbEQsUUFBUSxFQUFFLFlBQVk7UUFDdEIsR0FBRztLQUNKLENBQUMsQ0FBQztJQUVILE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFO0lBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUkscUJBQVEsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFO1FBQ3ZELElBQUksRUFBRSxJQUFJLG1CQUFNLENBQ2QsSUFBSSxlQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUN6RCxLQUFLLENBQ047UUFDRCxPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO1FBQzVCLE9BQU8sRUFBRSxlQUFlO0tBQ3pCLENBQUMsQ0FBQztJQUVILElBQUksd0JBQWdCLENBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFFO1FBQ2xELFFBQVEsRUFBRSxZQUFZO1FBQ3RCLEdBQUc7UUFDSCxjQUFjLEVBQUUsTUFBTTtLQUN2QixDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxhQUFhLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtJQUM1QyxNQUFNLFlBQVksR0FBRyxJQUFJLHFCQUFRLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRTtRQUN2RCxJQUFJLEVBQUUsSUFBSSxtQkFBTSxDQUNkLElBQUksZUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFDekQsS0FBSyxDQUNOO1FBQ0QsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztRQUM1QixPQUFPLEVBQUUsZUFBZTtLQUN6QixDQUFDLENBQUM7SUFFSCxJQUFJLHdCQUFnQixDQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBRTtRQUNsRCxRQUFRLEVBQUUsWUFBWTtRQUN0QixHQUFHO1FBQ0gsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFO0tBQzFDLENBQUMsQ0FBQztJQUVILE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFL0IsUUFBUSxDQUFDLHFCQUFxQixDQUFDLHFDQUFxQyxFQUFFO1FBQ3BFLFFBQVEsRUFBRSxPQUFPO0tBQ2xCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgTWF0Y2gsIFRlbXBsYXRlIH0gZnJvbSBcImF3cy1jZGstbGliL2Fzc2VydGlvbnNcIjtcbmltcG9ydCAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgRnVuY3Rpb24sIFJ1bnRpbWUsIFMzQ29kZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBQcm92aWRlckZ1bmN0aW9uIH0gZnJvbSBcIi4uL3Byb3ZpZGVyLWZ1bmN0aW9uL2luZGV4XCI7XG5cbmxldCBzdGFjazogY2RrLlN0YWNrO1xubGV0IHZwYzogZWMyLlZwYztcblxuYmVmb3JlRWFjaCgoKSA9PiB7XG4gIHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuICB2cGMgPSBuZXcgZWMyLlZwYyhzdGFjaywgXCJNb2NrRXhpc3RpbmdWUENcIiwge1xuICAgIHN1Ym5ldENvbmZpZ3VyYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgY2lkck1hc2s6IDI0LFxuICAgICAgICBuYW1lOiBcInB1YmxpY1N1Ym5ldFwiLFxuICAgICAgICBzdWJuZXRUeXBlOiBlYzIuU3VibmV0VHlwZS5QVUJMSUMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjaWRyTWFzazogMjQsXG4gICAgICAgIG5hbWU6IFwicHJpdmF0ZVdpdGhFZ3Jlc3NTdWJuZXRcIixcbiAgICAgICAgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTUyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSk7XG59KTtcblxuZnVuY3Rpb24gYXNzZXJ0X2NvbW1vbih0ZW1wbGF0ZTogVGVtcGxhdGUsIGtleTogc3RyaW5nKSB7XG4gIC8vIENvbnRhaW5zIHRoZSBwcm92aWRlci5cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpMYW1iZGE6OkZ1bmN0aW9uXCIsIHtcbiAgICBFbnZpcm9ubWVudDoge1xuICAgICAgVmFyaWFibGVzOiB7XG4gICAgICAgIFVTRVJfT05fRVZFTlRfRlVOQ1RJT05fQVJOOiB7XG4gICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKFwiVGVzdEZ1bmN0aW9uKlwiKSwgXCJBcm5cIl0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIENvbnRhaW5zIHRoZSBjdXN0b20gcmVzb3VyY2UuXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlXCIsIHtcbiAgICBTM0tleToga2V5LFxuICB9KTtcbn1cblxudGVzdChcIlRlc3QgUHJvdmlkZXJGdW5jdGlvblwiLCAoKSA9PiB7XG4gIGNvbnN0IHRlc3RGdW5jdGlvbiA9IG5ldyBGdW5jdGlvbihzdGFjaywgXCJUZXN0RnVuY3Rpb25cIiwge1xuICAgIGNvZGU6IG5ldyBTM0NvZGUoXG4gICAgICBuZXcgQnVja2V0KHN0YWNrLCBcIlRlc3RCdWNrZXRcIiwgeyBidWNrZXROYW1lOiBcImJ1Y2tldFwiIH0pLFxuICAgICAgXCJrZXlcIixcbiAgICApLFxuICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gIH0pO1xuXG4gIG5ldyBQcm92aWRlckZ1bmN0aW9uKHN0YWNrLCBcIlRlc3RQcm92aWRlckZ1bmN0aW9uXCIsIHtcbiAgICBmdW5jdGlvbjogdGVzdEZ1bmN0aW9uLFxuICAgIHZwYyxcbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICBhc3NlcnRfY29tbW9uKHRlbXBsYXRlLCBcImtleVwiKTtcbn0pO1xuXG50ZXN0KFwiVGVzdCBQcm92aWRlckZ1bmN0aW9uIGFkZGl0aW9uYWxIYXNoXCIsICgpID0+IHtcbiAgY29uc3QgdGVzdEZ1bmN0aW9uID0gbmV3IEZ1bmN0aW9uKHN0YWNrLCBcIlRlc3RGdW5jdGlvblwiLCB7XG4gICAgY29kZTogbmV3IFMzQ29kZShcbiAgICAgIG5ldyBCdWNrZXQoc3RhY2ssIFwiVGVzdEJ1Y2tldFwiLCB7IGJ1Y2tldE5hbWU6IFwiYnVja2V0XCIgfSksXG4gICAgICBcImtleVwiLFxuICAgICksXG4gICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMjBfWCxcbiAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgfSk7XG5cbiAgbmV3IFByb3ZpZGVyRnVuY3Rpb24oc3RhY2ssIFwiVGVzdFByb3ZpZGVyRnVuY3Rpb25cIiwge1xuICAgIGZ1bmN0aW9uOiB0ZXN0RnVuY3Rpb24sXG4gICAgdnBjLFxuICAgIGFkZGl0aW9uYWxIYXNoOiBcImhhc2hcIixcbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICBhc3NlcnRfY29tbW9uKHRlbXBsYXRlLCBcImhhc2hcIik7XG59KTtcblxudGVzdChcIlRlc3QgUHJvdmlkZXJGdW5jdGlvbiBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgY29uc3QgdGVzdEZ1bmN0aW9uID0gbmV3IEZ1bmN0aW9uKHN0YWNrLCBcIlRlc3RGdW5jdGlvblwiLCB7XG4gICAgY29kZTogbmV3IFMzQ29kZShcbiAgICAgIG5ldyBCdWNrZXQoc3RhY2ssIFwiVGVzdEJ1Y2tldFwiLCB7IGJ1Y2tldE5hbWU6IFwiYnVja2V0XCIgfSksXG4gICAgICBcImtleVwiLFxuICAgICksXG4gICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMjBfWCxcbiAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgfSk7XG5cbiAgbmV3IFByb3ZpZGVyRnVuY3Rpb24oc3RhY2ssIFwiVGVzdFByb3ZpZGVyRnVuY3Rpb25cIiwge1xuICAgIGZ1bmN0aW9uOiB0ZXN0RnVuY3Rpb24sXG4gICAgdnBjLFxuICAgIHJlc291cmNlUHJvcGVydGllczogeyBQcm9wZXJ0eTogXCJ2YWx1ZVwiIH0sXG4gIH0pO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgYXNzZXJ0X2NvbW1vbih0ZW1wbGF0ZSwgXCJrZXlcIik7XG5cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2VcIiwge1xuICAgIFByb3BlcnR5OiBcInZhbHVlXCIsXG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
const cdk = __importStar(require("aws-cdk-lib"));
|
|
37
|
-
const assertions_1 = require("aws-cdk-lib/assertions");
|
|
38
|
-
const ec2 = __importStar(require("aws-cdk-lib/aws-ec2"));
|
|
39
|
-
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
40
|
-
const aws_s3_1 = require("aws-cdk-lib/aws-s3");
|
|
41
|
-
const index_1 = require("../provider-function/index");
|
|
42
|
-
let stack;
|
|
43
|
-
let vpc;
|
|
44
|
-
beforeEach(() => {
|
|
45
|
-
stack = new cdk.Stack();
|
|
46
|
-
vpc = new ec2.Vpc(stack, 'MockExistingVPC', {
|
|
47
|
-
subnetConfiguration: [
|
|
48
|
-
{
|
|
49
|
-
cidrMask: 24,
|
|
50
|
-
name: 'publicSubnet',
|
|
51
|
-
subnetType: ec2.SubnetType.PUBLIC,
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
cidrMask: 24,
|
|
55
|
-
name: 'privateWithEgressSubnet',
|
|
56
|
-
subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
function assert_common(template, key) {
|
|
62
|
-
// Contains the provider.
|
|
63
|
-
template.hasResourceProperties('AWS::Lambda::Function', {
|
|
64
|
-
Environment: {
|
|
65
|
-
Variables: {
|
|
66
|
-
USER_ON_EVENT_FUNCTION_ARN: {
|
|
67
|
-
'Fn::GetAtt': [assertions_1.Match.stringLikeRegexp('TestFunction*'), 'Arn'],
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
});
|
|
72
|
-
// Contains the custom resource.
|
|
73
|
-
template.hasResourceProperties('AWS::CloudFormation::CustomResource', {
|
|
74
|
-
S3Key: key,
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
test('Test ProviderFunction', () => {
|
|
78
|
-
const testFunction = new aws_lambda_1.Function(stack, 'TestFunction', {
|
|
79
|
-
code: new aws_lambda_1.S3Code(new aws_s3_1.Bucket(stack, 'TestBucket', { bucketName: 'bucket' }), 'key'),
|
|
80
|
-
runtime: aws_lambda_1.Runtime.NODEJS_20_X,
|
|
81
|
-
handler: 'index.handler',
|
|
82
|
-
});
|
|
83
|
-
new index_1.ProviderFunction(stack, 'TestProviderFunction', {
|
|
84
|
-
function: testFunction,
|
|
85
|
-
vpc,
|
|
86
|
-
});
|
|
87
|
-
const template = assertions_1.Template.fromStack(stack);
|
|
88
|
-
assert_common(template, 'key');
|
|
89
|
-
});
|
|
90
|
-
test('Test ProviderFunction additionalHash', () => {
|
|
91
|
-
const testFunction = new aws_lambda_1.Function(stack, 'TestFunction', {
|
|
92
|
-
code: new aws_lambda_1.S3Code(new aws_s3_1.Bucket(stack, 'TestBucket', { bucketName: 'bucket' }), 'key'),
|
|
93
|
-
runtime: aws_lambda_1.Runtime.NODEJS_20_X,
|
|
94
|
-
handler: 'index.handler',
|
|
95
|
-
});
|
|
96
|
-
new index_1.ProviderFunction(stack, 'TestProviderFunction', {
|
|
97
|
-
function: testFunction,
|
|
98
|
-
vpc,
|
|
99
|
-
additionalHash: 'hash',
|
|
100
|
-
});
|
|
101
|
-
const template = assertions_1.Template.fromStack(stack);
|
|
102
|
-
assert_common(template, 'hash');
|
|
103
|
-
});
|
|
104
|
-
test('Test ProviderFunction properties', () => {
|
|
105
|
-
const testFunction = new aws_lambda_1.Function(stack, 'TestFunction', {
|
|
106
|
-
code: new aws_lambda_1.S3Code(new aws_s3_1.Bucket(stack, 'TestBucket', { bucketName: 'bucket' }), 'key'),
|
|
107
|
-
runtime: aws_lambda_1.Runtime.NODEJS_20_X,
|
|
108
|
-
handler: 'index.handler',
|
|
109
|
-
});
|
|
110
|
-
new index_1.ProviderFunction(stack, 'TestProviderFunction', {
|
|
111
|
-
function: testFunction,
|
|
112
|
-
vpc,
|
|
113
|
-
resourceProperties: { Property: 'value' },
|
|
114
|
-
});
|
|
115
|
-
const template = assertions_1.Template.fromStack(stack);
|
|
116
|
-
assert_common(template, 'key');
|
|
117
|
-
template.hasResourceProperties('AWS::CloudFormation::CustomResource', {
|
|
118
|
-
Property: 'value',
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJGdW5jdGlvbi50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHJvdmlkZXJGdW5jdGlvbi50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQW1DO0FBQ25DLHVEQUF5RDtBQUN6RCx5REFBMkM7QUFDM0MsdURBQW1FO0FBQ25FLCtDQUE0QztBQUM1QyxzREFBNEQ7QUFFNUQsSUFBSSxLQUFnQixDQUFDO0FBQ3JCLElBQUksR0FBWSxDQUFDO0FBRWpCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7SUFDZCxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7UUFDMUMsbUJBQW1CLEVBQUU7WUFDbkI7Z0JBQ0UsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU07YUFDbEM7WUFDRDtnQkFDRSxRQUFRLEVBQUUsRUFBRTtnQkFDWixJQUFJLEVBQUUseUJBQXlCO2dCQUMvQixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUI7YUFDL0M7U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsU0FBUyxhQUFhLENBQUMsUUFBa0IsRUFBRSxHQUFXO0lBQ3BELHlCQUF5QjtJQUN6QixRQUFRLENBQUMscUJBQXFCLENBQUMsdUJBQXVCLEVBQUU7UUFDdEQsV0FBVyxFQUFFO1lBQ1gsU0FBUyxFQUFFO2dCQUNULDBCQUEwQixFQUFFO29CQUMxQixZQUFZLEVBQUUsQ0FBQyxrQkFBSyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssQ0FBQztpQkFDL0Q7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsZ0NBQWdDO0lBQ2hDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxxQ0FBcUMsRUFBRTtRQUNwRSxLQUFLLEVBQUUsR0FBRztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLE1BQU0sWUFBWSxHQUFHLElBQUkscUJBQVEsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFO1FBQ3ZELElBQUksRUFBRSxJQUFJLG1CQUFNLENBQUMsSUFBSSxlQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUNsRixPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO1FBQzVCLE9BQU8sRUFBRSxlQUFlO0tBQ3pCLENBQUMsQ0FBQztJQUVILElBQUksd0JBQWdCLENBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFFO1FBQ2xELFFBQVEsRUFBRSxZQUFZO1FBQ3RCLEdBQUc7S0FDSixDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxhQUFhLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRTtJQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLHFCQUFRLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRTtRQUN2RCxJQUFJLEVBQUUsSUFBSSxtQkFBTSxDQUFDLElBQUksZUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUM7UUFDbEYsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztRQUM1QixPQUFPLEVBQUUsZUFBZTtLQUN6QixDQUFDLENBQUM7SUFFSCxJQUFJLHdCQUFnQixDQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBRTtRQUNsRCxRQUFRLEVBQUUsWUFBWTtRQUN0QixHQUFHO1FBQ0gsY0FBYyxFQUFFLE1BQU07S0FDdkIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxRQUFRLEdBQUcscUJBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsYUFBYSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7SUFDNUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxxQkFBUSxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUU7UUFDdkQsSUFBSSxFQUFFLElBQUksbUJBQU0sQ0FBQyxJQUFJLGVBQU0sQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDO1FBQ2xGLE9BQU8sRUFBRSxvQkFBTyxDQUFDLFdBQVc7UUFDNUIsT0FBTyxFQUFFLGVBQWU7S0FDekIsQ0FBQyxDQUFDO0lBRUgsSUFBSSx3QkFBZ0IsQ0FBQyxLQUFLLEVBQUUsc0JBQXNCLEVBQUU7UUFDbEQsUUFBUSxFQUFFLFlBQVk7UUFDdEIsR0FBRztRQUNILGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtLQUMxQyxDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxhQUFhLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRS9CLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxxQ0FBcUMsRUFBRTtRQUNwRSxRQUFRLEVBQUUsT0FBTztLQUNsQixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBNYXRjaCwgVGVtcGxhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hc3NlcnRpb25zJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IEZ1bmN0aW9uLCBSdW50aW1lLCBTM0NvZGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IEJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQge1Byb3ZpZGVyRnVuY3Rpb259IGZyb20gXCIuLi9wcm92aWRlci1mdW5jdGlvbi9pbmRleFwiO1xuXG5sZXQgc3RhY2s6IGNkay5TdGFjaztcbmxldCB2cGM6IGVjMi5WcGM7XG5cbmJlZm9yZUVhY2goKCkgPT4ge1xuICBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgdnBjID0gbmV3IGVjMi5WcGMoc3RhY2ssICdNb2NrRXhpc3RpbmdWUEMnLCB7XG4gICAgc3VibmV0Q29uZmlndXJhdGlvbjogW1xuICAgICAge1xuICAgICAgICBjaWRyTWFzazogMjQsXG4gICAgICAgIG5hbWU6ICdwdWJsaWNTdWJuZXQnLFxuICAgICAgICBzdWJuZXRUeXBlOiBlYzIuU3VibmV0VHlwZS5QVUJMSUMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjaWRyTWFzazogMjQsXG4gICAgICAgIG5hbWU6ICdwcml2YXRlV2l0aEVncmVzc1N1Ym5ldCcsXG4gICAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1MsXG4gICAgICB9LFxuICAgIF0sXG4gIH0pO1xufSk7XG5cbmZ1bmN0aW9uIGFzc2VydF9jb21tb24odGVtcGxhdGU6IFRlbXBsYXRlLCBrZXk6IHN0cmluZykge1xuICAvLyBDb250YWlucyB0aGUgcHJvdmlkZXIuXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJywge1xuICAgIEVudmlyb25tZW50OiB7XG4gICAgICBWYXJpYWJsZXM6IHtcbiAgICAgICAgVVNFUl9PTl9FVkVOVF9GVU5DVElPTl9BUk46IHtcbiAgICAgICAgICAnRm46OkdldEF0dCc6IFtNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKCdUZXN0RnVuY3Rpb24qJyksICdBcm4nXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gQ29udGFpbnMgdGhlIGN1c3RvbSByZXNvdXJjZS5cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsIHtcbiAgICBTM0tleToga2V5LFxuICB9KTtcbn1cblxudGVzdCgnVGVzdCBQcm92aWRlckZ1bmN0aW9uJywgKCkgPT4ge1xuICBjb25zdCB0ZXN0RnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24oc3RhY2ssICdUZXN0RnVuY3Rpb24nLCB7XG4gICAgY29kZTogbmV3IFMzQ29kZShuZXcgQnVja2V0KHN0YWNrLCAnVGVzdEJ1Y2tldCcsIHsgYnVja2V0TmFtZTogJ2J1Y2tldCcgfSksICdrZXknKSxcbiAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18yMF9YLFxuICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgfSk7XG5cbiAgbmV3IFByb3ZpZGVyRnVuY3Rpb24oc3RhY2ssICdUZXN0UHJvdmlkZXJGdW5jdGlvbicsIHtcbiAgICBmdW5jdGlvbjogdGVzdEZ1bmN0aW9uLFxuICAgIHZwYyxcbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICBhc3NlcnRfY29tbW9uKHRlbXBsYXRlLCAna2V5Jyk7XG59KTtcblxudGVzdCgnVGVzdCBQcm92aWRlckZ1bmN0aW9uIGFkZGl0aW9uYWxIYXNoJywgKCkgPT4ge1xuICBjb25zdCB0ZXN0RnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24oc3RhY2ssICdUZXN0RnVuY3Rpb24nLCB7XG4gICAgY29kZTogbmV3IFMzQ29kZShuZXcgQnVja2V0KHN0YWNrLCAnVGVzdEJ1Y2tldCcsIHsgYnVja2V0TmFtZTogJ2J1Y2tldCcgfSksICdrZXknKSxcbiAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18yMF9YLFxuICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgfSk7XG5cbiAgbmV3IFByb3ZpZGVyRnVuY3Rpb24oc3RhY2ssICdUZXN0UHJvdmlkZXJGdW5jdGlvbicsIHtcbiAgICBmdW5jdGlvbjogdGVzdEZ1bmN0aW9uLFxuICAgIHZwYyxcbiAgICBhZGRpdGlvbmFsSGFzaDogJ2hhc2gnLFxuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIGFzc2VydF9jb21tb24odGVtcGxhdGUsICdoYXNoJyk7XG59KTtcblxudGVzdCgnVGVzdCBQcm92aWRlckZ1bmN0aW9uIHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gIGNvbnN0IHRlc3RGdW5jdGlvbiA9IG5ldyBGdW5jdGlvbihzdGFjaywgJ1Rlc3RGdW5jdGlvbicsIHtcbiAgICBjb2RlOiBuZXcgUzNDb2RlKG5ldyBCdWNrZXQoc3RhY2ssICdUZXN0QnVja2V0JywgeyBidWNrZXROYW1lOiAnYnVja2V0JyB9KSwgJ2tleScpLFxuICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICB9KTtcblxuICBuZXcgUHJvdmlkZXJGdW5jdGlvbihzdGFjaywgJ1Rlc3RQcm92aWRlckZ1bmN0aW9uJywge1xuICAgIGZ1bmN0aW9uOiB0ZXN0RnVuY3Rpb24sXG4gICAgdnBjLFxuICAgIHJlc291cmNlUHJvcGVydGllczogeyBQcm9wZXJ0eTogJ3ZhbHVlJyB9LFxuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIGFzc2VydF9jb21tb24odGVtcGxhdGUsICdrZXknKTtcblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJywge1xuICAgIFByb3BlcnR5OiAndmFsdWUnLFxuICB9KTtcbn0pO1xuIl19
|
|
File without changes
|