experimental AWS Lambda Function support #70
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Explicit AWS Lambda Function plugins in their own
aws/
subdirectory. Manual wrapping of AWS handler functions is required (much like the Azure Functions plugin), see the README. The following have been added:AWSLambdaTriggerPlugin
a generic wrapper which should work with all types of function triggers, but at the cost of information and linking back to calling endpoint.AWSLambdaGatewayAPIHTTP
specific wrapper for GatewayAPI HTTP type triggers, stores HTTP info and status code and allows linking back to calling endpoint.AWSLambdaGatewayAPIREST
same as above except for the GatewayAPI REST type trigger.agent.flush()
mechanism for synchronizing on segment data send. This is needed for AWS Lambdas because AWS freezes processes in between invocations.ContextManager.removeTailFinishedContexts()
to remove any finished spans from a context to break a parent-child chain which is invalid because sequential independent invocations of a handler are executed in inherited async contexts of previous runs instead of being executed hierarchically like most servers do (for AWS Lambda functions).I will send up the component IDs to the main
skywalking
repo once tests are passed.