Michael Rooney
02/28/2022, 7:39 AMUncaught Exception {"errorType":"Error","errorMessage":"The worker thread exited","stack":["Error: The worker thread exited"," at Worker.onWorkerExit (/Users/Michael/workspace/theater-profiles/.sst/artifacts/mrooney-theatrum-profiles--core-stack-CreateProfileLambda/src/lambda/create-profile/handler.js:1785:36)"," at Worker.emit (node:events:394:28)"," at Worker.emit (node:domain:475:12)"," at Worker.[kOnExit] (node:internal/worker:281:10)"," at Worker.<computed>.onexit (node:internal/worker:201:20)"]}
/Users/Michael/workspace/theater-profiles/.sst/artifacts/mrooney-theatrum-profiles--core-stack-CreateProfileLambda/src/lambda/create-profile/handler.js:1871
throw new Error("the worker has exited");
^
Error: the worker has exited
at ThreadStream.flushSync (/Users/Michael/workspace/theater-profiles/.sst/artifacts/mrooney-theatrum-profiles--core-stack-CreateProfileLambda/src/lambda/create-profile/handler.js:1871:17)
at process.onExit2 (/Users/Michael/workspace/theater-profiles/.sst/artifacts/mrooney-theatrum-profiles--core-stack-CreateProfileLambda/src/lambda/create-profile/handler.js:2084:16)
at process.emit (node:events:406:35)
at process.emit (node:domain:475:12)
at process.exit (node:internal/process/per_thread:184:15)
at process.<anonymous> (file:///Users/Michael/workspace/theater-profiles/node_modules/@serverless-stack/aws-lambda-ric/lib/index.js:31:17)
at process.emit (node:events:394:28)
at process.emit (node:domain:475:12)
at process._fatalException (node:internal/process/execution:170:25)
Michael Rooney
02/28/2022, 7:40 AM2022-02-27T23:36:05.338-08:00 START RequestId: f2edb37d-916b-47c5-90da-67fba5fed4f5 Version: $LATEST
2022-02-27T23:36:05.347-08:00 2022-02-28T07:36:05.340Z f2edb37d-916b-47c5-90da-67fba5fed4f5 INFO connectAndSendMessage()
2022-02-27T23:36:05.432-08:00 2022-02-28T07:36:05.432Z f2edb37d-916b-47c5-90da-67fba5fed4f5 INFO ws.onopen
2022-02-27T23:36:05.432-08:00 2022-02-28T07:36:05.432Z f2edb37d-916b-47c5-90da-67fba5fed4f5 INFO sendMessage() - send request
2022-02-27T23:36:05.433-08:00 2022-02-28T07:36:05.433Z f2edb37d-916b-47c5-90da-67fba5fed4f5 INFO sendMessage() - sending request via WebSocket
2022-02-27T23:36:05.434-08:00 2022-02-28T07:36:05.434Z f2edb37d-916b-47c5-90da-67fba5fed4f5 INFO sendMessage() - start keep alive timer
2022-02-27T23:36:15.343-08:00 END RequestId: f2edb37d-916b-47c5-90da-67fba5fed4f5
manitej
02/28/2022, 7:43 AMMichael Rooney
02/28/2022, 7:50 AMmanitej
02/28/2022, 7:56 AMmanitej
02/28/2022, 7:56 AMFrank
Michael Rooney
02/28/2022, 8:39 PMFrank
Michael Rooney
02/28/2022, 8:51 PMimport middy from "@middy/core";
import { Handler as LambdaHandler } from "aws-lambda";
import httpEventNormalizer from "@middy/http-event-normalizer";
import httpHeaderNormalizer from "@middy/http-header-normalizer";
import httpSecurityHeaders from "@middy/http-security-headers";
import jsonBodyParser from "@middy/http-json-body-parser";
import inputOutputLogger from "@middy/input-output-logger";
import httpErrorHandler from "@middy/http-error-handler";
import { log } from "../utils/logger";
import cors from "@middy/http-cors";
import validator from "@middy/validator";
export function with_middleware({ validators, logOptions }: TMiddlewareOptions = {}): (
baseHandler: LambdaHandler
) => middy.MiddyfiedHandler {
return (baseHandler) => {
const lambda = middy(baseHandler);
lambda
.before(async (request) => {
// Prevents jsonBodyParser from complaining on GET requests
if (!request.event?.body) {
request.event.body = "{}";
}
})
.use(loggerMiddleware(logOptions)) // my own middleware that sets up a pino logger
.use(inputOutputLogger({
logger: (request) => {
const child = log.child(request.context)
<http://child.info|child.info>(request.event ?? request.response)
},
awsContext: true
}))
.use(httpSecurityHeaders()) // Applies best practice security headers to responses.
.use(httpHeaderNormalizer({ canonical: true })) // Normalizes HTTP header names to their canonical format
// Normalizes HTTP events by adding an empty object for queryStringParameters, multiValueQueryStringParameters or pathParameters if they are missing.
.use(httpEventNormalizer({ payloadFormatVersion: 2 }))
// Automatically parses HTTP requests with JSON body and converts the body into an object.
// Also handles gracefully broken JSON if used in combination of httpErrorHandler.
.use(jsonBodyParser())
.use(httpErrorHandler())
.use(cors())
if (validators?.inputSchema) {
lambda.use(
validator({
inputSchema: validators.inputSchema,
ajvOptions: {
strict: false,
useDefaults: false,
},
})
);
}
if (validators?.outputSchema) {
lambda.use(
validator({
outputSchema: validators.outputSchema,
ajvOptions: {
strict: false,
useDefaults: false,
},
})
);
}
// lambda
// .use(identityProvider())
// .use(authenticate())
// .use(authorize())
// .use(cleanup());
return lambda;
};
}
Michael Rooney
02/28/2022, 8:52 PMFrank
Frank
// lambda
// .use(identityProvider())
// .use(authenticate())
// .use(authorize())
// .use(cleanup());
Michael Rooney
03/01/2022, 12:25 AMFrank
TMiddlewareOptions
and loggerMiddleware
are not found.Frank
Michael Rooney
03/02/2022, 6:24 AMMichael Rooney
03/02/2022, 6:27 AMMichael Rooney
03/02/2022, 7:15 AMFrank