quidproquo-deploy-awscdk 0.0.85 → 0.0.86
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/lib/constructs/basic/Function.js +5 -0
- package/lib/constructs/feature/webserver/index.d.ts +1 -0
- package/lib/constructs/feature/webserver/index.js +1 -0
- package/lib/constructs/feature/webserver/serviceFunction/QpqWebserverServiceFunctionConstruct.d.ts +11 -0
- package/lib/constructs/feature/webserver/serviceFunction/QpqWebserverServiceFunctionConstruct.js +50 -0
- package/lib/constructs/feature/webserver/serviceFunction/index.d.ts +1 -0
- package/lib/constructs/feature/webserver/serviceFunction/index.js +17 -0
- package/lib/lambdas/lambdaAPIGatewayEvent.js +1 -1
- package/lib/lambdas/lambdaEventBridgeEvent.js +1 -1
- package/lib/lambdas/lambdaEventOriginRequest.js +1 -1
- package/lib/lambdas/lambdaSQSEvent.js +1 -1
- package/lib/lambdas/lambdaServiceFunctionExecute.d.ts +6 -0
- package/lib/lambdas/lambdaServiceFunctionExecute.js +52 -0
- package/lib/stacks/ApiQpqServiceStack.js +7 -0
- package/package.json +1 -1
- package/src/constructs/basic/Function.ts +8 -0
- package/src/constructs/feature/webserver/index.ts +1 -0
- package/src/constructs/feature/webserver/serviceFunction/QpqWebserverServiceFunctionConstruct.ts +49 -0
- package/src/constructs/feature/webserver/serviceFunction/index.ts +1 -0
- package/src/lambdas/lambdaAPIGatewayEvent.ts +2 -0
- package/src/lambdas/lambdaEventBridgeEvent.ts +2 -0
- package/src/lambdas/lambdaEventOriginRequest.ts +2 -0
- package/src/lambdas/lambdaSQSEvent.ts +2 -0
- package/src/lambdas/lambdaServiceFunctionExecute.ts +98 -0
- package/src/stacks/ApiQpqServiceStack.ts +17 -0
|
@@ -64,6 +64,11 @@ class Function extends QpqConstructBlock_1.QpqConstructBlock {
|
|
|
64
64
|
actions: ['sns:Publish'],
|
|
65
65
|
resources: ['*'],
|
|
66
66
|
}));
|
|
67
|
+
// Let lambdas publish sns messages.
|
|
68
|
+
this.lambdaFunction.addToRolePolicy(new aws_cdk_lib_1.aws_iam.PolicyStatement({
|
|
69
|
+
actions: ['lambda:InvokeFunction'],
|
|
70
|
+
resources: ['arn:aws:lambda:*:*:function:*sfunc*'],
|
|
71
|
+
}));
|
|
67
72
|
}
|
|
68
73
|
}
|
|
69
74
|
exports.Function = Function;
|
|
@@ -18,4 +18,5 @@ __exportStar(require("./api"), exports);
|
|
|
18
18
|
__exportStar(require("./apiKey"), exports);
|
|
19
19
|
__exportStar(require("./domain"), exports);
|
|
20
20
|
__exportStar(require("./redirect"), exports);
|
|
21
|
+
__exportStar(require("./serviceFunction"), exports);
|
|
21
22
|
__exportStar(require("./webEntry"), exports);
|
package/lib/constructs/feature/webserver/serviceFunction/QpqWebserverServiceFunctionConstruct.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { aws_lambda } from 'aws-cdk-lib';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
import { ServiceFunctionQPQWebServerConfigSetting } from 'quidproquo-webserver';
|
|
4
|
+
import { QpqConstructBlock, QpqConstructBlockProps } from '../../../base/QpqConstructBlock';
|
|
5
|
+
export interface QpqWebserverServiceFunctionConstructProps extends QpqConstructBlockProps {
|
|
6
|
+
serviceFunctionConfig: ServiceFunctionQPQWebServerConfigSetting;
|
|
7
|
+
apiLayerVersions?: aws_lambda.ILayerVersion[];
|
|
8
|
+
}
|
|
9
|
+
export declare class QpqWebserverServiceFunctionConstruct extends QpqConstructBlock {
|
|
10
|
+
constructor(scope: Construct, id: string, props: QpqWebserverServiceFunctionConstructProps);
|
|
11
|
+
}
|
package/lib/constructs/feature/webserver/serviceFunction/QpqWebserverServiceFunctionConstruct.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
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 (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.QpqWebserverServiceFunctionConstruct = void 0;
|
|
27
|
+
const quidproquo_webserver_1 = require("quidproquo-webserver");
|
|
28
|
+
const QpqConstructBlock_1 = require("../../../base/QpqConstructBlock");
|
|
29
|
+
const Function_1 = require("../../../basic/Function");
|
|
30
|
+
const qpqDeployAwsCdkUtils = __importStar(require("../../../../utils"));
|
|
31
|
+
class QpqWebserverServiceFunctionConstruct extends QpqConstructBlock_1.QpqConstructBlock {
|
|
32
|
+
constructor(scope, id, props) {
|
|
33
|
+
super(scope, id, props);
|
|
34
|
+
// Build Function
|
|
35
|
+
const func = new Function_1.Function(this, 'api-function', {
|
|
36
|
+
buildPath: quidproquo_webserver_1.qpqWebServerUtils.getServiceFunctionFullPath(props.qpqConfig, props.serviceFunctionConfig),
|
|
37
|
+
functionName: this.resourceName(`${props.serviceFunctionConfig.functionName}-sfunc`),
|
|
38
|
+
functionType: 'lambdaServiceFunctionExecute',
|
|
39
|
+
executorName: 'executeServiceFunctionExecuteEvent',
|
|
40
|
+
qpqConfig: props.qpqConfig,
|
|
41
|
+
apiLayerVersions: props.apiLayerVersions,
|
|
42
|
+
awsAccountId: props.awsAccountId,
|
|
43
|
+
});
|
|
44
|
+
const grantables = qpqDeployAwsCdkUtils.getQqpGrantableResources(this, 'grantable', this.qpqConfig, props.awsAccountId);
|
|
45
|
+
grantables.forEach((g) => {
|
|
46
|
+
g.grantAll(func.lambdaFunction);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.QpqWebserverServiceFunctionConstruct = QpqWebserverServiceFunctionConstruct;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './QpqWebserverServiceFunctionConstruct';
|
|
@@ -0,0 +1,17 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./QpqWebserverServiceFunctionConstruct"), exports);
|
|
@@ -45,7 +45,7 @@ const getAPIGatewayEventExecutor = (dynamicModuleLoader, getCustomActionProcesso
|
|
|
45
45
|
const cdkConfig = yield (0, lambdaConfig_1.getLambdaConfigs)();
|
|
46
46
|
// Build a processor for the session and stuff
|
|
47
47
|
// Remove the non route ones ~ let the story execute action add them
|
|
48
|
-
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getAPIGatewayEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
48
|
+
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getAPIGatewayEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
49
49
|
const logger = (result) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
50
|
// addResult(
|
|
51
51
|
// envConfig.appName,
|
|
@@ -30,7 +30,7 @@ const getEventBridgeEventExecutor = (dynamicModuleLoader, getCustomActionProcess
|
|
|
30
30
|
const lambdaRuntimeConfig = JSON.parse(process.env.lambdaRuntimeConfig || '{}');
|
|
31
31
|
// Build a processor for the session and stuff
|
|
32
32
|
// Remove the non event ones
|
|
33
|
-
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getEventBridgeEventActionProcessor)(lambdaRuntimeConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
33
|
+
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getEventBridgeEventActionProcessor)(lambdaRuntimeConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
34
34
|
const logger = (result) => __awaiter(void 0, void 0, void 0, function* () { });
|
|
35
35
|
// Run the callback
|
|
36
36
|
const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
|
|
@@ -30,7 +30,7 @@ const getOriginRequestEventExecutor = (dynamicModuleLoader, getCustomActionProce
|
|
|
30
30
|
const cdkConfig = yield (0, lambdaConfig_1.getLambdaConfigs)();
|
|
31
31
|
// Build a processor for the session and stuff
|
|
32
32
|
// Remove the non route ones ~ let the story execute action add them
|
|
33
|
-
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getCloudFrontOriginRequestEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
33
|
+
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getCloudFrontOriginRequestEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
34
34
|
const logger = (result) => __awaiter(void 0, void 0, void 0, function* () { });
|
|
35
35
|
// Run the callback
|
|
36
36
|
const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
|
|
@@ -28,7 +28,7 @@ const getStoryActionRuntime = (dynamicModuleLoader, getCustomActionProcessors =
|
|
|
28
28
|
const cdkConfig = yield (0, lambdaConfig_1.getLambdaConfigs)();
|
|
29
29
|
// Build a processor for the session and stuff
|
|
30
30
|
// Remove the non route ones ~ let the story execute action add them
|
|
31
|
-
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getSQSEventRecordActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
31
|
+
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getSQSEventRecordActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
32
32
|
const logger = (result) => __awaiter(void 0, void 0, void 0, function* () { });
|
|
33
33
|
// Run the callback
|
|
34
34
|
const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ExecuteServiceFunctionEvent } from 'quidproquo-webserver';
|
|
2
|
+
import { DynamicModuleLoader } from 'quidproquo-actionprocessor-awslambda';
|
|
3
|
+
import { Context } from 'aws-lambda';
|
|
4
|
+
import { ActionProcessorListResolver } from './actionProcessorListResolver';
|
|
5
|
+
export declare const getServiceFunctionExecuteEventExecutor: (dynamicModuleLoader: DynamicModuleLoader, getCustomActionProcessors?: ActionProcessorListResolver) => (event: ExecuteServiceFunctionEvent<any>, context: Context) => Promise<import("quidproquo-core").StoryResult<any, any>>;
|
|
6
|
+
export declare const executeServiceFunctionExecuteEvent: (event: ExecuteServiceFunctionEvent<any>, context: Context) => Promise<import("quidproquo-core").StoryResult<any, any>>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.executeServiceFunctionExecuteEvent = exports.getServiceFunctionExecuteEventExecutor = void 0;
|
|
16
|
+
const quidproquo_actionprocessor_node_1 = require("quidproquo-actionprocessor-node");
|
|
17
|
+
const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocessor-awslambda");
|
|
18
|
+
const quidproquo_actionprocessor_node_2 = require("quidproquo-actionprocessor-node");
|
|
19
|
+
const quidproquo_core_1 = require("quidproquo-core");
|
|
20
|
+
const lambdaConfig_1 = require("./lambdaConfig");
|
|
21
|
+
// @ts-ignore - Special webpack loader
|
|
22
|
+
const qpq_dynamic_loader_1 = __importDefault(require("qpq-dynamic-loader!"));
|
|
23
|
+
// @ts-ignore - Special webpack loader
|
|
24
|
+
const qpq_custom_action_processors_loader_1 = __importDefault(require("qpq-custom-action-processors-loader!"));
|
|
25
|
+
// TODO: Make this a util or something based on server time or something..
|
|
26
|
+
const getDateNow = () => new Date().toISOString();
|
|
27
|
+
const getServiceFunctionExecuteEventExecutor = (dynamicModuleLoader, getCustomActionProcessors = () => ({})) => {
|
|
28
|
+
return (event, context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
29
|
+
const cdkConfig = yield (0, lambdaConfig_1.getLambdaConfigs)();
|
|
30
|
+
// Build a processor for the session and stuff
|
|
31
|
+
// Remove the non route ones ~ let the story execute action add them
|
|
32
|
+
const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, quidproquo_actionprocessor_node_1.coreActionProcessor), quidproquo_actionprocessor_node_1.webserverActionProcessor), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionExecuteEventActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetSecretActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParameterActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getConfigGetParametersActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getSystemActionProcessor)(dynamicModuleLoader)), (0, quidproquo_actionprocessor_awslambda_1.getFileActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_node_2.getConfigActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getQueueActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getEventBusActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getUserDirectoryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getWebEntryActionProcessor)(cdkConfig.qpqConfig)), (0, quidproquo_actionprocessor_awslambda_1.getServiceFunctionActionProcessor)(cdkConfig.qpqConfig)), getCustomActionProcessors(cdkConfig.qpqConfig)), (0, qpq_custom_action_processors_loader_1.default)());
|
|
33
|
+
const logger = (result) => __awaiter(void 0, void 0, void 0, function* () {
|
|
34
|
+
// addResult(
|
|
35
|
+
// envConfig.appName,
|
|
36
|
+
// getDateNow(),
|
|
37
|
+
// doWeCarePath,
|
|
38
|
+
// "route-infrastructure",
|
|
39
|
+
// "infrastructure",
|
|
40
|
+
// "askRoute",
|
|
41
|
+
// result
|
|
42
|
+
// );
|
|
43
|
+
});
|
|
44
|
+
const resolveStory = (0, quidproquo_core_1.createRuntime)({}, storyActionProcessor, getDateNow, logger, quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.randomGuid);
|
|
45
|
+
const result = yield resolveStory(quidproquo_core_1.askProcessEvent, [event, context]);
|
|
46
|
+
// just return the story result
|
|
47
|
+
return result;
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
exports.getServiceFunctionExecuteEventExecutor = getServiceFunctionExecuteEventExecutor;
|
|
51
|
+
// Default executor
|
|
52
|
+
exports.executeServiceFunctionExecuteEvent = (0, exports.getServiceFunctionExecuteEventExecutor)(qpq_dynamic_loader_1.default);
|
|
@@ -43,6 +43,13 @@ class ApiQpqServiceStack extends QpqServiceStack_1.QpqServiceStack {
|
|
|
43
43
|
qpqConfig: props.qpqConfig,
|
|
44
44
|
subdomainRedirectConfig: setting,
|
|
45
45
|
}));
|
|
46
|
+
// Service Functions
|
|
47
|
+
const serviceFunctions = quidproquo_webserver_1.qpqWebServerUtils.getAllServiceFunctions(props.qpqConfig).map((setting) => new constructs_1.QpqWebserverServiceFunctionConstruct(this, quidproquo_core_1.qpqCoreUtils.getUniqueKeyForSetting(setting), {
|
|
48
|
+
awsAccountId: props.awsAccountId,
|
|
49
|
+
qpqConfig: props.qpqConfig,
|
|
50
|
+
serviceFunctionConfig: setting,
|
|
51
|
+
apiLayerVersions: layers.layers,
|
|
52
|
+
}));
|
|
46
53
|
}
|
|
47
54
|
}
|
|
48
55
|
exports.ApiQpqServiceStack = ApiQpqServiceStack;
|
package/package.json
CHANGED
|
@@ -73,5 +73,13 @@ export class Function extends QpqConstructBlock {
|
|
|
73
73
|
resources: ['*'],
|
|
74
74
|
}),
|
|
75
75
|
);
|
|
76
|
+
|
|
77
|
+
// Let lambdas publish sns messages.
|
|
78
|
+
this.lambdaFunction.addToRolePolicy(
|
|
79
|
+
new aws_iam.PolicyStatement({
|
|
80
|
+
actions: ['lambda:InvokeFunction'],
|
|
81
|
+
resources: ['arn:aws:lambda:*:*:function:*sfunc*'],
|
|
82
|
+
}),
|
|
83
|
+
);
|
|
76
84
|
}
|
|
77
85
|
}
|
package/src/constructs/feature/webserver/serviceFunction/QpqWebserverServiceFunctionConstruct.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { aws_apigateway, aws_lambda } from 'aws-cdk-lib';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
|
|
4
|
+
import { ServiceFunctionQPQWebServerConfigSetting, qpqWebServerUtils } from 'quidproquo-webserver';
|
|
5
|
+
|
|
6
|
+
import { QpqConstructBlock, QpqConstructBlockProps } from '../../../base/QpqConstructBlock';
|
|
7
|
+
|
|
8
|
+
import { Function } from '../../../basic/Function';
|
|
9
|
+
|
|
10
|
+
import * as qpqDeployAwsCdkUtils from '../../../../utils';
|
|
11
|
+
|
|
12
|
+
export interface QpqWebserverServiceFunctionConstructProps extends QpqConstructBlockProps {
|
|
13
|
+
serviceFunctionConfig: ServiceFunctionQPQWebServerConfigSetting;
|
|
14
|
+
apiLayerVersions?: aws_lambda.ILayerVersion[];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export class QpqWebserverServiceFunctionConstruct extends QpqConstructBlock {
|
|
18
|
+
constructor(scope: Construct, id: string, props: QpqWebserverServiceFunctionConstructProps) {
|
|
19
|
+
super(scope, id, props);
|
|
20
|
+
|
|
21
|
+
// Build Function
|
|
22
|
+
const func = new Function(this, 'api-function', {
|
|
23
|
+
buildPath: qpqWebServerUtils.getServiceFunctionFullPath(
|
|
24
|
+
props.qpqConfig,
|
|
25
|
+
props.serviceFunctionConfig,
|
|
26
|
+
),
|
|
27
|
+
functionName: this.resourceName(`${props.serviceFunctionConfig.functionName}-sfunc`),
|
|
28
|
+
functionType: 'lambdaServiceFunctionExecute',
|
|
29
|
+
executorName: 'executeServiceFunctionExecuteEvent',
|
|
30
|
+
|
|
31
|
+
qpqConfig: props.qpqConfig,
|
|
32
|
+
|
|
33
|
+
apiLayerVersions: props.apiLayerVersions,
|
|
34
|
+
|
|
35
|
+
awsAccountId: props.awsAccountId,
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const grantables = qpqDeployAwsCdkUtils.getQqpGrantableResources(
|
|
39
|
+
this,
|
|
40
|
+
'grantable',
|
|
41
|
+
this.qpqConfig,
|
|
42
|
+
props.awsAccountId,
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
grantables.forEach((g) => {
|
|
46
|
+
g.grantAll(func.lambdaFunction);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './QpqWebserverServiceFunctionConstruct';
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
getConfigGetParametersActionProcessor,
|
|
12
12
|
getUserDirectoryActionProcessor,
|
|
13
13
|
getWebEntryActionProcessor,
|
|
14
|
+
getServiceFunctionActionProcessor,
|
|
14
15
|
awsLambdaUtils,
|
|
15
16
|
DynamicModuleLoader,
|
|
16
17
|
} from 'quidproquo-actionprocessor-awslambda';
|
|
@@ -75,6 +76,7 @@ export const getAPIGatewayEventExecutor = (
|
|
|
75
76
|
...getEventBusActionProcessor(cdkConfig.qpqConfig),
|
|
76
77
|
...getUserDirectoryActionProcessor(cdkConfig.qpqConfig),
|
|
77
78
|
...getWebEntryActionProcessor(cdkConfig.qpqConfig),
|
|
79
|
+
...getServiceFunctionActionProcessor(cdkConfig.qpqConfig),
|
|
78
80
|
|
|
79
81
|
...getCustomActionProcessors(cdkConfig.qpqConfig),
|
|
80
82
|
...qpqCustomActionProcessors(),
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
getConfigGetSecretActionProcessor,
|
|
12
12
|
getConfigGetParameterActionProcessor,
|
|
13
13
|
getConfigGetParametersActionProcessor,
|
|
14
|
+
getServiceFunctionActionProcessor,
|
|
14
15
|
awsLambdaUtils,
|
|
15
16
|
DynamicModuleLoader,
|
|
16
17
|
LambdaRuntimeConfig,
|
|
@@ -61,6 +62,7 @@ export const getEventBridgeEventExecutor = (
|
|
|
61
62
|
...getQueueActionProcessor(cdkConfig.qpqConfig),
|
|
62
63
|
...getEventBusActionProcessor(cdkConfig.qpqConfig),
|
|
63
64
|
...getWebEntryActionProcessor(cdkConfig.qpqConfig),
|
|
65
|
+
...getServiceFunctionActionProcessor(cdkConfig.qpqConfig),
|
|
64
66
|
...getUserDirectoryActionProcessor(cdkConfig.qpqConfig),
|
|
65
67
|
|
|
66
68
|
...getCustomActionProcessors(cdkConfig.qpqConfig),
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
getConfigGetParameterActionProcessor,
|
|
10
10
|
getConfigGetParametersActionProcessor,
|
|
11
11
|
getWebEntryActionProcessor,
|
|
12
|
+
getServiceFunctionActionProcessor,
|
|
12
13
|
awsLambdaUtils,
|
|
13
14
|
DynamicModuleLoader,
|
|
14
15
|
} from 'quidproquo-actionprocessor-awslambda';
|
|
@@ -55,6 +56,7 @@ export const getOriginRequestEventExecutor = (
|
|
|
55
56
|
...getFileActionProcessor(cdkConfig.qpqConfig),
|
|
56
57
|
...getConfigActionProcessor(cdkConfig.qpqConfig),
|
|
57
58
|
...getWebEntryActionProcessor(cdkConfig.qpqConfig),
|
|
59
|
+
...getServiceFunctionActionProcessor(cdkConfig.qpqConfig),
|
|
58
60
|
|
|
59
61
|
// We probably don't want this?
|
|
60
62
|
...getUserDirectoryActionProcessor(cdkConfig.qpqConfig),
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
getConfigGetParametersActionProcessor,
|
|
14
14
|
getUserDirectoryActionProcessor,
|
|
15
15
|
getWebEntryActionProcessor,
|
|
16
|
+
getServiceFunctionActionProcessor,
|
|
16
17
|
awsLambdaUtils,
|
|
17
18
|
DynamicModuleLoader,
|
|
18
19
|
} from 'quidproquo-actionprocessor-awslambda';
|
|
@@ -63,6 +64,7 @@ export const getStoryActionRuntime = async (
|
|
|
63
64
|
...getEventBusActionProcessor(cdkConfig.qpqConfig),
|
|
64
65
|
...getUserDirectoryActionProcessor(cdkConfig.qpqConfig),
|
|
65
66
|
...getWebEntryActionProcessor(cdkConfig.qpqConfig),
|
|
67
|
+
...getServiceFunctionActionProcessor(cdkConfig.qpqConfig),
|
|
66
68
|
|
|
67
69
|
...getCustomActionProcessors(cdkConfig.qpqConfig),
|
|
68
70
|
...qpqCustomActionProcessors(),
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { coreActionProcessor, webserverActionProcessor } from 'quidproquo-actionprocessor-node';
|
|
2
|
+
import { ExecuteServiceFunctionEvent } from 'quidproquo-webserver';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
getServiceFunctionExecuteEventActionProcessor,
|
|
6
|
+
getSystemActionProcessor,
|
|
7
|
+
getFileActionProcessor,
|
|
8
|
+
getQueueActionProcessor,
|
|
9
|
+
getEventBusActionProcessor,
|
|
10
|
+
getConfigGetSecretActionProcessor,
|
|
11
|
+
getConfigGetParameterActionProcessor,
|
|
12
|
+
getConfigGetParametersActionProcessor,
|
|
13
|
+
getUserDirectoryActionProcessor,
|
|
14
|
+
getWebEntryActionProcessor,
|
|
15
|
+
getServiceFunctionActionProcessor,
|
|
16
|
+
awsLambdaUtils,
|
|
17
|
+
DynamicModuleLoader,
|
|
18
|
+
} from 'quidproquo-actionprocessor-awslambda';
|
|
19
|
+
|
|
20
|
+
import { getConfigActionProcessor } from 'quidproquo-actionprocessor-node';
|
|
21
|
+
|
|
22
|
+
import { createRuntime, askProcessEvent } from 'quidproquo-core';
|
|
23
|
+
|
|
24
|
+
import { Context } from 'aws-lambda';
|
|
25
|
+
|
|
26
|
+
import { getLambdaConfigs } from './lambdaConfig';
|
|
27
|
+
import { ActionProcessorListResolver } from './actionProcessorListResolver';
|
|
28
|
+
|
|
29
|
+
// @ts-ignore - Special webpack loader
|
|
30
|
+
import qpqDynamicModuleLoader from 'qpq-dynamic-loader!';
|
|
31
|
+
|
|
32
|
+
// @ts-ignore - Special webpack loader
|
|
33
|
+
import qpqCustomActionProcessors from 'qpq-custom-action-processors-loader!';
|
|
34
|
+
|
|
35
|
+
// TODO: Make this a util or something based on server time or something..
|
|
36
|
+
const getDateNow = () => new Date().toISOString();
|
|
37
|
+
|
|
38
|
+
export const getServiceFunctionExecuteEventExecutor = (
|
|
39
|
+
dynamicModuleLoader: DynamicModuleLoader,
|
|
40
|
+
getCustomActionProcessors: ActionProcessorListResolver = () => ({}),
|
|
41
|
+
) => {
|
|
42
|
+
return async (event: ExecuteServiceFunctionEvent<any>, context: Context) => {
|
|
43
|
+
const cdkConfig = await getLambdaConfigs();
|
|
44
|
+
|
|
45
|
+
// Build a processor for the session and stuff
|
|
46
|
+
// Remove the non route ones ~ let the story execute action add them
|
|
47
|
+
const storyActionProcessor = {
|
|
48
|
+
...coreActionProcessor,
|
|
49
|
+
...webserverActionProcessor,
|
|
50
|
+
|
|
51
|
+
...getServiceFunctionExecuteEventActionProcessor(cdkConfig.qpqConfig),
|
|
52
|
+
|
|
53
|
+
...getConfigGetSecretActionProcessor(cdkConfig.qpqConfig),
|
|
54
|
+
...getConfigGetParameterActionProcessor(cdkConfig.qpqConfig),
|
|
55
|
+
...getConfigGetParametersActionProcessor(cdkConfig.qpqConfig),
|
|
56
|
+
...getSystemActionProcessor(dynamicModuleLoader),
|
|
57
|
+
...getFileActionProcessor(cdkConfig.qpqConfig),
|
|
58
|
+
...getConfigActionProcessor(cdkConfig.qpqConfig),
|
|
59
|
+
...getQueueActionProcessor(cdkConfig.qpqConfig),
|
|
60
|
+
...getEventBusActionProcessor(cdkConfig.qpqConfig),
|
|
61
|
+
...getUserDirectoryActionProcessor(cdkConfig.qpqConfig),
|
|
62
|
+
...getWebEntryActionProcessor(cdkConfig.qpqConfig),
|
|
63
|
+
...getServiceFunctionActionProcessor(cdkConfig.qpqConfig),
|
|
64
|
+
|
|
65
|
+
...getCustomActionProcessors(cdkConfig.qpqConfig),
|
|
66
|
+
...qpqCustomActionProcessors(),
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const logger = async (result: any) => {
|
|
70
|
+
// addResult(
|
|
71
|
+
// envConfig.appName,
|
|
72
|
+
// getDateNow(),
|
|
73
|
+
// doWeCarePath,
|
|
74
|
+
// "route-infrastructure",
|
|
75
|
+
// "infrastructure",
|
|
76
|
+
// "askRoute",
|
|
77
|
+
// result
|
|
78
|
+
// );
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const resolveStory = createRuntime(
|
|
82
|
+
{},
|
|
83
|
+
storyActionProcessor,
|
|
84
|
+
getDateNow,
|
|
85
|
+
logger,
|
|
86
|
+
awsLambdaUtils.randomGuid,
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
const result = await resolveStory(askProcessEvent, [event, context]);
|
|
90
|
+
|
|
91
|
+
// just return the story result
|
|
92
|
+
return result;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
// Default executor
|
|
97
|
+
export const executeServiceFunctionExecuteEvent =
|
|
98
|
+
getServiceFunctionExecuteEventExecutor(qpqDynamicModuleLoader);
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
QpqWebserverApiConstruct,
|
|
13
13
|
QpqApiCoreQueueConstruct,
|
|
14
14
|
QpqWebserverSubdomainRedirectConstruct,
|
|
15
|
+
QpqWebserverServiceFunctionConstruct,
|
|
15
16
|
} from '../constructs';
|
|
16
17
|
|
|
17
18
|
export interface ApiQpqServiceStackProps extends QpqServiceStackProps {
|
|
@@ -84,5 +85,21 @@ export class ApiQpqServiceStack extends QpqServiceStack {
|
|
|
84
85
|
},
|
|
85
86
|
),
|
|
86
87
|
);
|
|
88
|
+
|
|
89
|
+
// Service Functions
|
|
90
|
+
const serviceFunctions = qpqWebServerUtils.getAllServiceFunctions(props.qpqConfig).map(
|
|
91
|
+
(setting) =>
|
|
92
|
+
new QpqWebserverServiceFunctionConstruct(
|
|
93
|
+
this,
|
|
94
|
+
qpqCoreUtils.getUniqueKeyForSetting(setting),
|
|
95
|
+
{
|
|
96
|
+
awsAccountId: props.awsAccountId,
|
|
97
|
+
qpqConfig: props.qpqConfig,
|
|
98
|
+
|
|
99
|
+
serviceFunctionConfig: setting,
|
|
100
|
+
apiLayerVersions: layers.layers,
|
|
101
|
+
},
|
|
102
|
+
),
|
|
103
|
+
);
|
|
87
104
|
}
|
|
88
105
|
}
|