Skip to content

Instantly share code, notes, and snippets.

@madhub
Created April 12, 2023 18:05
Show Gist options
  • Save madhub/d1eed62b25644a580209964f6147c92e to your computer and use it in GitHub Desktop.
Save madhub/d1eed62b25644a580209964f6147c92e to your computer and use it in GitHub Desktop.
[ApiController]
    //[Route("[controller]")]
    public class LambdaController : ControllerBase
    {


        [HttpPost]
        [Route("2020-01-01/extension/register")]
        public  ActionResult Register([FromBody] object json)
        {
            string val = "{\"events\": [ \"INVOKE\", \"SHUTDOWN\"]}";
            Console.WriteLine($"Register : {json}");
            string result = "Lambda-Extension-Identifier: a1b2c3d4-5678-90ab-cdef-EXAMPLE11111\r\n{\r\n    \"functionName\": \"lambda_function\",\r\n    \"functionVersion\": \"$LATEST\",\r\n    \"handler\": \"lambda_handler\",\r\n    \"accountId\": \"123456789012\"\r\n}";
            return Content(result, "application/json"); ;
        }
        [HttpPut]
        [Route("2022-07-01/telemetry")]
        public ActionResult Subscribe([FromBody] object json)
        {
            Console.WriteLine($"telemetry:Subscribe : {json}");
            return Ok();
        }

        [HttpGet]
        [Route("2020-01-01/extension/event/next")]
        public ActionResult events()
        {
            Response.Headers.Add("Lambda-Extension-Event-Identifier", Guid.NewGuid().ToString());
            var result = "{\r\n    \"eventType\": \"INVOKE\",\r\n    \"deadlineMs\": 676051,\r\n    \"requestId\": \"3da1f2dc-3222-475e-9205-e2e6c6318895\",\r\n    \"invokedFunctionArn\": \"arn:aws:lambda:us-east-1:123456789012:function:ExtensionTest\",\r\n    \"tracing\": {\r\n        \"type\": \"X-Amzn-Trace-Id\",\r\n        \"value\": \"Root=1-5f35ae12-0c0fec141ab77a00bc047aa2;Parent=2be948a625588e32;Sampled=1\"\r\n    }\r\n } "
            //Console.WriteLine($"Subscribe : {json}");
            return Ok();
        }
        [HttpPost]
        [Route("2020-01-01/extension/init/error")]
        public ActionResult InitError([FromBody] object json)
        {
            return Accepted();
        }

        [HttpPost]
        [Route("2020-01-01/extension/exit/error")]
        public ActionResult ExitError([FromBody] object json)
        {
            return Accepted();
        }

    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment