@novha/anlia-core-lib 0.1.0 → 0.2.0
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/cdk/bin/app.ts +21 -0
- package/cdk/bin/infrastructure.ts +16 -6
- package/cdk/lib/app.ts +34 -0
- package/cdk/lib/infrastructures/event-stack.ts +74 -0
- package/cdk/lib/infrastructures/storage-stack.ts +57 -0
- package/cdk.json +1 -1
- package/cdk.out/.cache/dc7aa0aafa98afcdd2faf6146c00c1c90f0e795c782e819001cf6258fc79c93e.zip +0 -0
- package/cdk.out/anlia-core-lib-app-dev.assets.json +36 -0
- package/cdk.out/anlia-core-lib-app-dev.metadata.json +109 -0
- package/cdk.out/anlia-core-lib-app-dev.template.json +157 -0
- package/cdk.out/anlia-core-lib-dev.assets.json +21 -0
- package/cdk.out/anlia-core-lib-dev.metadata.json +223 -0
- package/cdk.out/anlia-core-lib-dev.template.json +232 -0
- package/cdk.out/asset.dc7aa0aafa98afcdd2faf6146c00c1c90f0e795c782e819001cf6258fc79c93e/index.js +38 -0
- package/cdk.out/cdk.out +1 -0
- package/cdk.out/manifest.json +548 -0
- package/cdk.out/tree.json +1 -0
- package/dist/cdk/bin/app.d.ts +1 -0
- package/dist/cdk/bin/app.js +21 -0
- package/dist/cdk/bin/infrastructure.js +13 -6
- package/dist/cdk/lib/app.d.ts +6 -0
- package/dist/cdk/lib/app.js +48 -0
- package/dist/cdk/lib/infrastructure.js +29 -0
- package/dist/cdk/lib/infrastructures/event-stack.d.ts +6 -0
- package/dist/cdk/lib/infrastructures/event-stack.js +61 -0
- package/dist/cdk/lib/infrastructures/storage-stack.d.ts +8 -0
- package/dist/cdk/lib/infrastructures/storage-stack.js +46 -0
- package/dist/src/dynamoDb/DynamoDbModule.d.ts +2 -0
- package/dist/src/dynamoDb/DynamoDbModule.js +29 -0
- package/dist/src/dynamoDb/index.d.ts +4 -0
- package/dist/src/dynamoDb/index.js +18 -0
- package/dist/src/dynamoDb/ioc/index.d.ts +3 -0
- package/dist/src/dynamoDb/ioc/index.js +6 -0
- package/dist/src/dynamoDb/service/DynamoDbService.d.ts +34 -0
- package/dist/src/dynamoDb/service/DynamoDbService.js +2 -0
- package/dist/src/dynamoDb/service/DynamoDbServiceImpl.d.ts +16 -0
- package/dist/src/dynamoDb/service/DynamoDbServiceImpl.js +108 -0
- package/dist/src/eventBridge/EventBridgeModule.js +5 -1
- package/dist/src/handlers/EventLoggerHandler.d.ts +2 -0
- package/dist/src/handlers/EventLoggerHandler.js +13 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +2 -0
- package/dist/src/orders/index.d.ts +1 -0
- package/dist/src/s3/S3Module.d.ts +2 -0
- package/dist/src/s3/S3Module.js +31 -0
- package/dist/src/s3/index.d.ts +4 -0
- package/dist/src/s3/index.js +18 -0
- package/dist/src/s3/ioc/index.d.ts +3 -0
- package/dist/src/s3/ioc/index.js +6 -0
- package/dist/src/s3/service/S3Service.d.ts +27 -0
- package/dist/src/s3/service/S3Service.js +2 -0
- package/dist/src/s3/service/S3ServiceImpl.d.ts +17 -0
- package/dist/src/s3/service/S3ServiceImpl.js +104 -0
- package/package.json +8 -3
- package/src/dynamoDb/DynamoDbModule.ts +18 -0
- package/src/dynamoDb/index.ts +4 -0
- package/src/dynamoDb/ioc/index.ts +3 -0
- package/src/dynamoDb/service/DynamoDbService.ts +37 -0
- package/src/dynamoDb/service/DynamoDbServiceImpl.ts +132 -0
- package/src/eventBridge/EventBridgeModule.ts +6 -1
- package/src/handlers/EventLoggerHandler.ts +11 -0
- package/src/index.ts +3 -1
- package/src/orders/index.ts +2 -1
- package/src/s3/S3Module.ts +20 -0
- package/src/s3/index.ts +4 -0
- package/src/s3/ioc/index.ts +3 -0
- package/src/s3/service/S3Service.ts +30 -0
- package/src/s3/service/S3ServiceImpl.ts +116 -0
- package/tsconfig.json +1 -2
- package/cdk/lib/infrastructure.ts +0 -37
package/cdk/bin/app.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { App } from 'aws-cdk-lib';
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
|
|
4
|
+
import { AppStack } from '../lib/app';
|
|
5
|
+
import { projectName } from './project-names';
|
|
6
|
+
|
|
7
|
+
const app = new App();
|
|
8
|
+
const stage = (app.node.tryGetContext('stage') as string) || "dev";
|
|
9
|
+
|
|
10
|
+
const env = {
|
|
11
|
+
account: process.env.CDK_DEFAULT_ACCOUNT,
|
|
12
|
+
region: process.env.CDK_DEFAULT_REGION ?? "us-east-1",
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
new AppStack(app, `${projectName}-app-${stage}`, {
|
|
16
|
+
projectName,
|
|
17
|
+
stage,
|
|
18
|
+
env,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
app.synth();
|
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
import { App } from 'aws-cdk-lib';
|
|
2
2
|
import process from 'node:process';
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { EventStack } from '../lib/infrastructures/event-stack';
|
|
5
|
+
import { StorageStack } from '../lib/infrastructures/storage-stack';
|
|
5
6
|
import { projectName } from './project-names';
|
|
6
7
|
|
|
7
8
|
const app = new App();
|
|
8
9
|
const stage = (app.node.tryGetContext('stage') as string) || "dev";
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
const env = {
|
|
12
|
+
account: process.env.CDK_DEFAULT_ACCOUNT,
|
|
13
|
+
region: process.env.CDK_DEFAULT_REGION ?? "us-east-1",
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
new EventStack(app, `${projectName}-${stage}`, {
|
|
17
|
+
projectName,
|
|
18
|
+
stage,
|
|
19
|
+
env,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
new StorageStack(app, `${projectName}-${stage}`, {
|
|
11
23
|
projectName,
|
|
12
24
|
stage,
|
|
13
|
-
env
|
|
14
|
-
|
|
15
|
-
region: process.env.CDK_DEFAULT_REGION || "us-east-1"
|
|
16
|
-
} });
|
|
25
|
+
env,
|
|
26
|
+
});
|
|
17
27
|
|
|
18
28
|
app.synth();
|
package/cdk/lib/app.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as path from "path";
|
|
2
|
+
import { Duration, Fn, Stack, StackProps } from "aws-cdk-lib";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
import { Runtime } from "aws-cdk-lib/aws-lambda";
|
|
5
|
+
import { NodejsFunction } from "aws-cdk-lib/aws-lambda-nodejs";
|
|
6
|
+
import { Queue } from "aws-cdk-lib/aws-sqs";
|
|
7
|
+
import { SqsEventSource } from "aws-cdk-lib/aws-lambda-event-sources";
|
|
8
|
+
import { CommonProps } from "../bin/project-names";
|
|
9
|
+
|
|
10
|
+
export class AppStack extends Stack {
|
|
11
|
+
constructor(scope: Construct, id: string, props: CommonProps) {
|
|
12
|
+
super(scope, id, props as unknown as StackProps);
|
|
13
|
+
|
|
14
|
+
const infraPrefix = `${props.projectName}-${props.stage}`;
|
|
15
|
+
|
|
16
|
+
const eventQueue = Queue.fromQueueArn(
|
|
17
|
+
this,
|
|
18
|
+
"EventQueue",
|
|
19
|
+
Fn.importValue(`${infraPrefix}-event-queue-arn`),
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
const eventLogger = new NodejsFunction(this, "EventLogger", {
|
|
23
|
+
entry: path.join(__dirname, "../../src/handlers/EventLoggerHandler.ts"),
|
|
24
|
+
handler: "handler",
|
|
25
|
+
runtime: Runtime.NODEJS_22_X,
|
|
26
|
+
functionName: `${infraPrefix}-event-logger`,
|
|
27
|
+
timeout: Duration.seconds(300),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
eventLogger.addEventSource(
|
|
31
|
+
new SqsEventSource(eventQueue, { batchSize: 10 }),
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { CfnOutput, Duration, Stack } from "aws-cdk-lib";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { EventBus, Match, Rule } from "aws-cdk-lib/aws-events";
|
|
4
|
+
import { SqsQueue } from "aws-cdk-lib/aws-events-targets";
|
|
5
|
+
import { Bucket } from "aws-cdk-lib/aws-s3";
|
|
6
|
+
import { Queue } from "aws-cdk-lib/aws-sqs";
|
|
7
|
+
import { CommonProps } from "../../bin/project-names";
|
|
8
|
+
|
|
9
|
+
export class EventStack extends Stack {
|
|
10
|
+
constructor(scope: Construct, id: string, props: CommonProps) {
|
|
11
|
+
super(scope, id, props);
|
|
12
|
+
|
|
13
|
+
const eventBus = new EventBus(this, "EventBus", {
|
|
14
|
+
eventBusName: `${props.projectName}-${props.stage}-event-bus`,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
// ── SQS ─────────────────────────────────────────────────────────────
|
|
18
|
+
|
|
19
|
+
const dlq = new Queue(this, "EventDLQ", {
|
|
20
|
+
queueName: `${props.projectName}-${props.stage}-event-dlq`,
|
|
21
|
+
retentionPeriod: Duration.days(14),
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const eventQueue = new Queue(this, "EventQueue", {
|
|
25
|
+
queueName: `${props.projectName}-${props.stage}-event-queue`,
|
|
26
|
+
visibilityTimeout: Duration.seconds(300),
|
|
27
|
+
deadLetterQueue: { queue: dlq, maxReceiveCount: 3 },
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// Route every event published to the bus into the queue.
|
|
31
|
+
new Rule(this, "AllEventsRule", {
|
|
32
|
+
eventBus,
|
|
33
|
+
description: "Forward all events on the bus to the event queue",
|
|
34
|
+
eventPattern: { source: Match.prefix("") },
|
|
35
|
+
targets: [new SqsQueue(eventQueue)],
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// ── S3 ──────────────────────────────────────────────────────────────
|
|
39
|
+
|
|
40
|
+
const bucket = new Bucket(this, "Bucket");
|
|
41
|
+
|
|
42
|
+
// ── Outputs ─────────────────────────────────────────────────────────
|
|
43
|
+
|
|
44
|
+
new CfnOutput(this, "EventBusArn", {
|
|
45
|
+
value: eventBus.eventBusArn,
|
|
46
|
+
exportName: `${props.projectName}-${props.stage}-event-bus-arn`,
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
new CfnOutput(this, "EventBusName", {
|
|
50
|
+
value: eventBus.eventBusName,
|
|
51
|
+
exportName: `${props.projectName}-${props.stage}-event-bus-name`,
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
new CfnOutput(this, "EventQueueArn", {
|
|
55
|
+
value: eventQueue.queueArn,
|
|
56
|
+
exportName: `${props.projectName}-${props.stage}-event-queue-arn`,
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
new CfnOutput(this, "EventQueueUrl", {
|
|
60
|
+
value: eventQueue.queueUrl,
|
|
61
|
+
exportName: `${props.projectName}-${props.stage}-event-queue-url`,
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
new CfnOutput(this, "BucketArn", {
|
|
65
|
+
value: bucket.bucketArn,
|
|
66
|
+
exportName: `${props.projectName}-${props.stage}-bucket-arn`,
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
new CfnOutput(this, "BucketName", {
|
|
70
|
+
value: bucket.bucketName,
|
|
71
|
+
exportName: `${props.projectName}-${props.stage}-bucket-name`,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { CfnOutput, RemovalPolicy, Stack } from "aws-cdk-lib";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { Bucket } from "aws-cdk-lib/aws-s3";
|
|
4
|
+
import { CommonProps } from "../../bin/project-names";
|
|
5
|
+
import { AttributeType, BillingMode, ProjectionType, Table } from "aws-cdk-lib/aws-dynamodb";
|
|
6
|
+
|
|
7
|
+
export class StorageStack extends Stack {
|
|
8
|
+
private readonly bucket: Bucket;
|
|
9
|
+
private readonly orderTable: Table;
|
|
10
|
+
|
|
11
|
+
constructor(scope: Construct, id: string, props: CommonProps) {
|
|
12
|
+
super(scope, id, props);
|
|
13
|
+
|
|
14
|
+
// ── S3 ──────────────────────────────────────────────────────────────
|
|
15
|
+
|
|
16
|
+
this.bucket = new Bucket(this, "Bucket");
|
|
17
|
+
|
|
18
|
+
// Define the DynamoDB Order table
|
|
19
|
+
this.orderTable = new Table(this, 'OrderTable', {
|
|
20
|
+
tableName: `${props.projectName}-orders-${props.stage}`,
|
|
21
|
+
partitionKey: { name: 'id', type: AttributeType.STRING },
|
|
22
|
+
sortKey: { name: 'providerIdentifier', type: AttributeType.STRING },
|
|
23
|
+
billingMode: BillingMode.PAY_PER_REQUEST,
|
|
24
|
+
removalPolicy: RemovalPolicy.DESTROY, // NOT recommended for production
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
// Add a Global Secondary Index (GSI)
|
|
28
|
+
this.orderTable.addGlobalSecondaryIndex({
|
|
29
|
+
indexName: 'StatusUpdatedIndex',
|
|
30
|
+
partitionKey: { name: 'status', type: AttributeType.STRING },
|
|
31
|
+
sortKey: { name: 'updatedUtc', type: AttributeType.STRING },
|
|
32
|
+
projectionType: ProjectionType.ALL,
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// ── Outputs ─────────────────────────────────────────────────────────
|
|
36
|
+
|
|
37
|
+
new CfnOutput(this, "BucketArn", {
|
|
38
|
+
value: this.bucket.bucketArn,
|
|
39
|
+
exportName: `${props.projectName}-${props.stage}-bucket-arn`,
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
new CfnOutput(this, "BucketName", {
|
|
43
|
+
value: this.bucket.bucketName,
|
|
44
|
+
exportName: `${props.projectName}-${props.stage}-bucket-name`,
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
new CfnOutput(this, "OrderTableArn", {
|
|
48
|
+
value: this.orderTable.tableArn,
|
|
49
|
+
exportName: `${props.projectName}-${props.stage}-order-table-arn`,
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
new CfnOutput(this, "OrderTableName", {
|
|
53
|
+
value: this.orderTable.tableName,
|
|
54
|
+
exportName: `${props.projectName}-${props.stage}-order-table-name`,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
package/cdk.json
CHANGED
|
Binary file
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "54.0.0",
|
|
3
|
+
"files": {
|
|
4
|
+
"dc7aa0aafa98afcdd2faf6146c00c1c90f0e795c782e819001cf6258fc79c93e": {
|
|
5
|
+
"displayName": "EventLogger/Code",
|
|
6
|
+
"source": {
|
|
7
|
+
"path": "asset.dc7aa0aafa98afcdd2faf6146c00c1c90f0e795c782e819001cf6258fc79c93e",
|
|
8
|
+
"packaging": "zip"
|
|
9
|
+
},
|
|
10
|
+
"destinations": {
|
|
11
|
+
"216661146730-us-east-1-20effd97": {
|
|
12
|
+
"bucketName": "cdk-hnb659fds-assets-216661146730-us-east-1",
|
|
13
|
+
"objectKey": "dc7aa0aafa98afcdd2faf6146c00c1c90f0e795c782e819001cf6258fc79c93e.zip",
|
|
14
|
+
"region": "us-east-1",
|
|
15
|
+
"assumeRoleArn": "arn:${AWS::Partition}:iam::216661146730:role/cdk-hnb659fds-file-publishing-role-216661146730-us-east-1"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"67a87b5d50302cf1ac7b3ad007648fb7331a9da84042ee30dca87c23436d925c": {
|
|
20
|
+
"displayName": "anlia-core-lib-app-dev Template",
|
|
21
|
+
"source": {
|
|
22
|
+
"path": "anlia-core-lib-app-dev.template.json",
|
|
23
|
+
"packaging": "file"
|
|
24
|
+
},
|
|
25
|
+
"destinations": {
|
|
26
|
+
"216661146730-us-east-1-25fd505f": {
|
|
27
|
+
"bucketName": "cdk-hnb659fds-assets-216661146730-us-east-1",
|
|
28
|
+
"objectKey": "67a87b5d50302cf1ac7b3ad007648fb7331a9da84042ee30dca87c23436d925c.json",
|
|
29
|
+
"region": "us-east-1",
|
|
30
|
+
"assumeRoleArn": "arn:${AWS::Partition}:iam::216661146730:role/cdk-hnb659fds-file-publishing-role-216661146730-us-east-1"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"dockerImages": {}
|
|
36
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"/anlia-core-lib-app-dev": [
|
|
3
|
+
{
|
|
4
|
+
"type": "aws:cdk:creationStack",
|
|
5
|
+
"data": [
|
|
6
|
+
"<anonymous> (/Users/rachelnama/app/anlia/anlia-core-lib/cdk/bin/app.ts:15:1)",
|
|
7
|
+
"...node internals, ts-node, ts-node, ts-node..."
|
|
8
|
+
]
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"/anlia-core-lib-app-dev/BootstrapVersion": [
|
|
12
|
+
{
|
|
13
|
+
"type": "aws:cdk:logicalId",
|
|
14
|
+
"data": "BootstrapVersion"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"type": "aws:cdk:creationStack",
|
|
18
|
+
"data": [
|
|
19
|
+
"...aws-cdk-lib...",
|
|
20
|
+
"(no user code in 10 frames, use --stack-trace-limit to capture more)"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"/anlia-core-lib-app-dev/CheckBootstrapVersion": [
|
|
25
|
+
{
|
|
26
|
+
"type": "aws:cdk:logicalId",
|
|
27
|
+
"data": "CheckBootstrapVersion"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"type": "aws:cdk:creationStack",
|
|
31
|
+
"data": [
|
|
32
|
+
"...aws-cdk-lib...",
|
|
33
|
+
"(no user code in 10 frames, use --stack-trace-limit to capture more)"
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"/anlia-core-lib-app-dev/EventLogger/Resource": [
|
|
38
|
+
{
|
|
39
|
+
"type": "aws:cdk:logicalId",
|
|
40
|
+
"data": "EventLogger455115CB"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "aws:cdk:creationStack",
|
|
44
|
+
"data": [
|
|
45
|
+
"...new NodejsFunction in aws-cdk-lib...",
|
|
46
|
+
"new AppStack (/Users/rachelnama/app/anlia/anlia-core-lib/cdk/lib/app.ts:22:29)",
|
|
47
|
+
"<anonymous> (/Users/rachelnama/app/anlia/anlia-core-lib/cdk/bin/app.ts:15:1)",
|
|
48
|
+
"...node internals, ts-node, ts-node..."
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"/anlia-core-lib-app-dev/CDKMetadata/Default": [
|
|
53
|
+
{
|
|
54
|
+
"type": "aws:cdk:logicalId",
|
|
55
|
+
"data": "CDKMetadata"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "aws:cdk:creationStack",
|
|
59
|
+
"data": [
|
|
60
|
+
"...App.synth in aws-cdk-lib...",
|
|
61
|
+
"<anonymous> (/Users/rachelnama/app/anlia/anlia-core-lib/cdk/bin/app.ts:21:5)",
|
|
62
|
+
"...node internals..."
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
"/anlia-core-lib-app-dev/EventLogger/ServiceRole/Resource": [
|
|
67
|
+
{
|
|
68
|
+
"type": "aws:cdk:logicalId",
|
|
69
|
+
"data": "EventLoggerServiceRole7A148BEB"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"type": "aws:cdk:creationStack",
|
|
73
|
+
"data": [
|
|
74
|
+
"...new NodejsFunction in aws-cdk-lib...",
|
|
75
|
+
"new AppStack (/Users/rachelnama/app/anlia/anlia-core-lib/cdk/lib/app.ts:22:29)",
|
|
76
|
+
"<anonymous> (/Users/rachelnama/app/anlia/anlia-core-lib/cdk/bin/app.ts:15:1)",
|
|
77
|
+
"...node internals, ts-node..."
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"/anlia-core-lib-app-dev/EventLogger/SqsEventSource:anliacorelibappdevEventQueue27C8B5BE/Resource": [
|
|
82
|
+
{
|
|
83
|
+
"type": "aws:cdk:logicalId",
|
|
84
|
+
"data": "EventLoggerSqsEventSourceanliacorelibappdevEventQueue27C8B5BEB34C3C2F"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"type": "aws:cdk:creationStack",
|
|
88
|
+
"data": [
|
|
89
|
+
"...NodejsFunction.addEventSource in aws-cdk-lib...",
|
|
90
|
+
"new AppStack (/Users/rachelnama/app/anlia/anlia-core-lib/cdk/lib/app.ts:30:21)",
|
|
91
|
+
"<anonymous> (/Users/rachelnama/app/anlia/anlia-core-lib/cdk/bin/app.ts:15:1)",
|
|
92
|
+
"...node internals, ts-node..."
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
"/anlia-core-lib-app-dev/EventLogger/ServiceRole/DefaultPolicy/Resource": [
|
|
97
|
+
{
|
|
98
|
+
"type": "aws:cdk:logicalId",
|
|
99
|
+
"data": "EventLoggerServiceRoleDefaultPolicyF9E4E85B"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"type": "aws:cdk:creationStack",
|
|
103
|
+
"data": [
|
|
104
|
+
"...aws-cdk-lib...",
|
|
105
|
+
"(no user code in 10 frames, use --stack-trace-limit to capture more)"
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Resources": {
|
|
3
|
+
"EventLoggerServiceRole7A148BEB": {
|
|
4
|
+
"Type": "AWS::IAM::Role",
|
|
5
|
+
"Properties": {
|
|
6
|
+
"AssumeRolePolicyDocument": {
|
|
7
|
+
"Statement": [
|
|
8
|
+
{
|
|
9
|
+
"Action": "sts:AssumeRole",
|
|
10
|
+
"Effect": "Allow",
|
|
11
|
+
"Principal": {
|
|
12
|
+
"Service": "lambda.amazonaws.com"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"Version": "2012-10-17"
|
|
17
|
+
},
|
|
18
|
+
"ManagedPolicyArns": [
|
|
19
|
+
{
|
|
20
|
+
"Fn::Join": [
|
|
21
|
+
"",
|
|
22
|
+
[
|
|
23
|
+
"arn:",
|
|
24
|
+
{
|
|
25
|
+
"Ref": "AWS::Partition"
|
|
26
|
+
},
|
|
27
|
+
":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
|
|
28
|
+
]
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"Metadata": {
|
|
34
|
+
"aws:cdk:path": "anlia-core-lib-app-dev/EventLogger/ServiceRole/Resource"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"EventLoggerServiceRoleDefaultPolicyF9E4E85B": {
|
|
38
|
+
"Type": "AWS::IAM::Policy",
|
|
39
|
+
"Properties": {
|
|
40
|
+
"PolicyDocument": {
|
|
41
|
+
"Statement": [
|
|
42
|
+
{
|
|
43
|
+
"Action": [
|
|
44
|
+
"sqs:ChangeMessageVisibility",
|
|
45
|
+
"sqs:DeleteMessage",
|
|
46
|
+
"sqs:GetQueueAttributes",
|
|
47
|
+
"sqs:GetQueueUrl",
|
|
48
|
+
"sqs:ReceiveMessage"
|
|
49
|
+
],
|
|
50
|
+
"Effect": "Allow",
|
|
51
|
+
"Resource": {
|
|
52
|
+
"Fn::ImportValue": "anlia-core-lib-dev-event-queue-arn"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"Version": "2012-10-17"
|
|
57
|
+
},
|
|
58
|
+
"PolicyName": "EventLoggerServiceRoleDefaultPolicyF9E4E85B",
|
|
59
|
+
"Roles": [
|
|
60
|
+
{
|
|
61
|
+
"Ref": "EventLoggerServiceRole7A148BEB"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
"Metadata": {
|
|
66
|
+
"aws:cdk:path": "anlia-core-lib-app-dev/EventLogger/ServiceRole/DefaultPolicy/Resource"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"EventLogger455115CB": {
|
|
70
|
+
"Type": "AWS::Lambda::Function",
|
|
71
|
+
"Properties": {
|
|
72
|
+
"Code": {
|
|
73
|
+
"S3Bucket": "cdk-hnb659fds-assets-216661146730-us-east-1",
|
|
74
|
+
"S3Key": "dc7aa0aafa98afcdd2faf6146c00c1c90f0e795c782e819001cf6258fc79c93e.zip"
|
|
75
|
+
},
|
|
76
|
+
"FunctionName": "anlia-core-lib-dev-event-logger",
|
|
77
|
+
"Handler": "index.handler",
|
|
78
|
+
"Role": {
|
|
79
|
+
"Fn::GetAtt": [
|
|
80
|
+
"EventLoggerServiceRole7A148BEB",
|
|
81
|
+
"Arn"
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
"Runtime": "nodejs22.x",
|
|
85
|
+
"Timeout": 300
|
|
86
|
+
},
|
|
87
|
+
"DependsOn": [
|
|
88
|
+
"EventLoggerServiceRoleDefaultPolicyF9E4E85B",
|
|
89
|
+
"EventLoggerServiceRole7A148BEB"
|
|
90
|
+
],
|
|
91
|
+
"Metadata": {
|
|
92
|
+
"aws:cdk:path": "anlia-core-lib-app-dev/EventLogger/Resource",
|
|
93
|
+
"aws:asset:path": "asset.dc7aa0aafa98afcdd2faf6146c00c1c90f0e795c782e819001cf6258fc79c93e",
|
|
94
|
+
"aws:asset:is-bundled": true,
|
|
95
|
+
"aws:asset:property": "Code"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"EventLoggerSqsEventSourceanliacorelibappdevEventQueue27C8B5BEB34C3C2F": {
|
|
99
|
+
"Type": "AWS::Lambda::EventSourceMapping",
|
|
100
|
+
"Properties": {
|
|
101
|
+
"BatchSize": 10,
|
|
102
|
+
"EventSourceArn": {
|
|
103
|
+
"Fn::ImportValue": "anlia-core-lib-dev-event-queue-arn"
|
|
104
|
+
},
|
|
105
|
+
"FunctionName": {
|
|
106
|
+
"Ref": "EventLogger455115CB"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"Metadata": {
|
|
110
|
+
"aws:cdk:path": "anlia-core-lib-app-dev/EventLogger/SqsEventSource:anliacorelibappdevEventQueue27C8B5BE/Resource"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"CDKMetadata": {
|
|
114
|
+
"Type": "AWS::CDK::Metadata",
|
|
115
|
+
"Properties": {
|
|
116
|
+
"Analytics": "v2:deflate64:H4sIAAAAAAAA/2WOQQrCMBBFz9J9OmoL7rXoTlF7gDKm05I2TbSTKBJ6d0kFEYSB9/9fPCaDbL2CZYJPTmXdp1pdIZQOZS/wyVXgO8PZk6ctMgmNw7XGytiaOobjjL030ilrhMIBwsVqEkVjZp6sVvIV6ydNgvMKmckxbCIE57D1sif3o4dQNOZr3T3IuNL6UdIBbzdl2uj7X6dJzMrSYRuriE9Cx4tHtoR4ScdKpaM3Tg0Elw/fV+jeHP8AAAA="
|
|
117
|
+
},
|
|
118
|
+
"Metadata": {
|
|
119
|
+
"aws:cdk:path": "anlia-core-lib-app-dev/CDKMetadata/Default"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"Parameters": {
|
|
124
|
+
"BootstrapVersion": {
|
|
125
|
+
"Type": "AWS::SSM::Parameter::Value<String>",
|
|
126
|
+
"Default": "/cdk-bootstrap/hnb659fds/version",
|
|
127
|
+
"Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"Rules": {
|
|
131
|
+
"CheckBootstrapVersion": {
|
|
132
|
+
"Assertions": [
|
|
133
|
+
{
|
|
134
|
+
"Assert": {
|
|
135
|
+
"Fn::Not": [
|
|
136
|
+
{
|
|
137
|
+
"Fn::Contains": [
|
|
138
|
+
[
|
|
139
|
+
"1",
|
|
140
|
+
"2",
|
|
141
|
+
"3",
|
|
142
|
+
"4",
|
|
143
|
+
"5"
|
|
144
|
+
],
|
|
145
|
+
{
|
|
146
|
+
"Ref": "BootstrapVersion"
|
|
147
|
+
}
|
|
148
|
+
]
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
"AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI."
|
|
153
|
+
}
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "54.0.0",
|
|
3
|
+
"files": {
|
|
4
|
+
"82c2427d06f715c651981d67275c9fa72a60856f5b4cfed27f0549b8acce5e12": {
|
|
5
|
+
"displayName": "anlia-core-lib-dev Template",
|
|
6
|
+
"source": {
|
|
7
|
+
"path": "anlia-core-lib-dev.template.json",
|
|
8
|
+
"packaging": "file"
|
|
9
|
+
},
|
|
10
|
+
"destinations": {
|
|
11
|
+
"216661146730-us-east-1-90c3ff44": {
|
|
12
|
+
"bucketName": "cdk-hnb659fds-assets-216661146730-us-east-1",
|
|
13
|
+
"objectKey": "82c2427d06f715c651981d67275c9fa72a60856f5b4cfed27f0549b8acce5e12.json",
|
|
14
|
+
"region": "us-east-1",
|
|
15
|
+
"assumeRoleArn": "arn:${AWS::Partition}:iam::216661146730:role/cdk-hnb659fds-file-publishing-role-216661146730-us-east-1"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"dockerImages": {}
|
|
21
|
+
}
|