diff --git a/README.md b/README.md index acfecc0a..b0624283 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ This project is built on top of the wonderful [lambda-api](https://github.com/je - [Creating a new API](#create-api) - [Deploy to AWS Lambda](#aws-deploy) - [Invoke AWS Lambda](#invoke-lambda) + - [Deploy as Lambda Container Image](#deploy-as-lambda-container-image) **Docs** @@ -38,6 +39,7 @@ This project is built on top of the wonderful [lambda-api](https://github.com/je - [Creating a new API](#creating-a-new-api) - [Deploy to AWS Lambda](#deploy-to-aws-lambda) - [Invoke Lambda](#invoke-lambda) + - [Deploy as Lambda Container Image](#deploy-as-lambda-container-image) - [Routing](#routing) - [Controller Routes](#controller-routes) - [Endpoint Routes](#endpoint-routes) @@ -150,9 +152,7 @@ appConfig.version = "v1" const controllersPath = [path.join(__dirname, "controllers")] const app = new ApiLambdaApp(controllersPath, appConfig) -export async function handler(event, context) { - return await app.run(event, context) -} +export const handler = app.createHandler() ``` - Add a `src/controllers` directory @@ -197,6 +197,8 @@ npm run tsc ***Note**: AWS supplies the `aws-sdk` package at runtime when running your Lambda applications, so there is no need to include this in your deployment package.* +`ts-lambda-api` supports the standard Lambda HTTP event formats for API Gateway and ALB when deployed as either a `.zip` package or a Lambda container image. Container images do not change the proxy event or response contract, they only change how your function code is packaged and started. + - Build your application - Remove dev dependencies from your `node_modules` directory: @@ -235,6 +237,68 @@ wget -qO - https://some.alb.dns.address/api/v1/hello-world/ {"hello":"world"} ``` +### Deploy as Lambda Container Image + + +AWS Lambda container images are a first-class deployment package type. The same `ApiLambdaApp` handler can be used for API Gateway or ALB whether you deploy a `.zip` archive or a container image. + +#### Container image requirements + +- Lambda container images must be Linux based. +- Build each image for exactly one architecture (`linux/amd64` or `linux/arm64`). +- Lambda runs the image on a read-only filesystem. Only `/tmp` is writable at runtime. +- The default Lambda user must be able to read all files needed to start the function. +- If you use an AWS Lambda base image, you do not need to add a `USER` instruction. +- If you use a non-AWS or OS-only base image, you must include the runtime interface client (`aws-lambda-ric` for Node.js). + +#### AWS Node.js base image example + +```dockerfile +FROM public.ecr.aws/lambda/nodejs:22 + +WORKDIR ${LAMBDA_TASK_ROOT} + +COPY package.json yarn.lock ./ +RUN yarn install --production --frozen-lockfile + +COPY dist ./dist + +CMD ["dist/api.handler"] +``` + +Build the image with `buildx` and disable provenance metadata so the image is accepted by Lambda: + +```shell +docker buildx build --platform linux/amd64 --provenance=false -t ts-lambda-api-app:latest . +``` + +AWS supports overriding the Dockerfile `ENTRYPOINT`, `CMD`, and working directory with Lambda `ImageConfig` if you need to change them without rebuilding the image. + +#### Non-AWS base image example + +```dockerfile +FROM node:22-bookworm-slim + +ENV NPM_CONFIG_CACHE=/tmp/.npm + +WORKDIR /function + +COPY package.json yarn.lock ./ +RUN yarn install --production --frozen-lockfile +RUN yarn add aws-lambda-ric + +COPY dist ./dist + +ENTRYPOINT ["/usr/local/bin/npx", "aws-lambda-ric"] +CMD ["dist/api.handler"] +``` + +#### Local workflow notes + +- Docker and the `buildx` plugin are required for the current AWS container image workflow. +- Current AWS Node.js image guidance uses `docker buildx build ... --provenance=false`. +- Modern Docker releases are required for current Lambda base images and local container testing. + ## Routing @@ -332,13 +396,15 @@ The default IOC app `Container` enables the `autobind` option. Controllers decor initialization. However, controllers can be explicitly specified instead of relying on the `@injectable` decoration to dynamically load the controllers from a directory. +When `autobind` is enabled, the loader scans each configured controller root recursively and imports `.js`, `.cjs` and `.mjs` files. In a compiled Lambda deployment you can usually pass just the top-level controllers directory. + Create an IOC `Container` without the `autobind` option. Bind the desired controller classes to the container and pass the instance into the `ApiLambdaApp` constructor. The `controllersPath` parameter is ignored when the custom container's `autobind` option disabled. ```typescript import { Container } from 'inversify'; -import { ApiLambdaApp, ApiRequest, AppConfig } from 'ts-lambda-api'; +import { ApiLambdaApp, AppConfig } from 'ts-lambda-api'; import { AppController } from './controllers/AppController'; const appConfig = new AppConfig(); @@ -353,9 +419,7 @@ appContainer.bind(AppController).toConstantValue(appController); // Pass the customer container into the app - controllersPath is ignored (false signals that autobind is not turned on) const app = new ApiLambdaApp(undefined, appConfig, false, appContainer); -export const lambdaHandler = async (event: ApiRequest, context: any) => { - return await app.run(event, context); -}; +export const lambdaHandler = app.createHandler(); ``` **Note you do not need to decorate controller classes with `@injectable` when autobind is disabled** diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js index bd0516fb..5104e134 100644 --- a/docs/assets/hierarchy.js +++ b/docs/assets/hierarchy.js @@ -1 +1 @@ -window.hierarchyData = "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" \ No newline at end of file +window.hierarchyData = "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" \ No newline at end of file diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js index 1ee08907..f8c2a57c 100644 --- a/docs/assets/navigation.js +++ b/docs/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "eJzFnWtz3LaShv/KlnI+Jpv4Ep+T1NZW6WZbiWRNNLKzqVMpF0RCM1hxQIbESJqcOv99C7zMECAINLrh7CeXNW/30wRJENfGP/91pPizOvrx6L+EVLyWrPjvo6+PKqbWRz8ebcp8W/Dm28/Db5//c602xdHXRw9C5kc/vvz6KFuLIq+5PPrxn3tXx4VgjddLqzB9vf76KCtY0xz9eKSa/BvRfMOfO/mRm7JgdcNzIOaralD3tBc/vH71nYf579///fUedVZm2w2XygsbRIkvqwXcs2wG1smt2/L9G+CFnT9yqc43Qileey9uLCRe4NjVcbOT2Q1vym2d8UMArUNPALMuzNBevPyHpxwOpXB8V9aK3RU8VOpGEHurmMJ3F71xDdeVEqVsomIJOaOHeMPvec1lJuRq5qZFhjnnEBfqhzLnrfdbVq+4iorKsqWXVdyb9BXXf+F7U0wFtcxYwfzcTkJ8d08ur09//vz2+vLs/OxAU7vKyRqrrVL97oe/v/j+JahkOy+XF7fnN8eXUGgvx1MXl8cXH8K0Voan/PLx+vb889n1x5PL8zBsrKYylxcf3sGZnZp6D+3n5pHVQlegcc/OK9JjE2Y6Hx0g1HpqfDDHkwOEuB8aH2v+wYlC2s9MGOl6bqBFGW7ejaq0+PbdgXS7qziYozoxqpJWNWcbP6mVECtpWeb8x6b19G1VlxvRcH9rvKdqu8+d3efBbtrejwrlrZCiWfMc2KbxBWK5wn2l73snh0DutzJrHULjGFyYAbyBPWqVqHghJCfwBxcR/N+9JTD/QLgvNfp5/NwHL+53nz/DrnxPNmyRlzwt9PlLdpfuX3HJe3KKSz7bVgV/9naoemynxPWbFqxpbtd1uV2tIaiRHMe7rZls7st6A6HtxTjWr7WwuoTzqEGL7H3WNdvFVZBjE1xF2N32OKphg8PivgdJqv6FqIKd1eFBFRWyG7roX+K467OscOgbznL9EMahLSscuvMVBzZscNj9Gx5Hts1w8OGdj2NbVrSH7JQVxR3LHnydOPMBGywI3eLe0xlvlJBMXwUcPzJKGsGF4rUu1bf95xUVke0kaYSLrvVGCtDyQY+vdwgPpjegk5fW0GEIvHSNDKK58XfBtKPH4WjIhEKYac6Q6LG3wTLER7J3BK/CJiZ4Osvzdux+KVZdCx7QOjdtUH2/vG0+LZioYciDHoWL6+qSerUrrs74PdsW6r1YrX9litdXrH6AkWeMUYGI5ryuyxp60Xs5EjY0nqC0QY/ETbskfpy7W/JFRioQgxIHVEN5fGaMkf3m346vLq9Y5R0p6DVffvZ6DKLNX2tPS/5HkLbkf/w1lzWAaJd1vDLm5B0d9FaB7JbDnH/zAuneXCPhcj9dIwF2vrjwu15cIB1X4qTMd37nnWYCmLq5kPclxJXWBdxdV7y2eiNuf3sh1CEkSEMccLxgNfMPYA0iryPwwokU6yO2av1WFIrX4cIwpL4rOCnKO68rLcDFe1KU2cOlaPyv716Fg5wWgkt1w//Y8gDIUCJhZVHwLPh8H2RYjFRMyPEKBielVxEhV+23AYbqtHhgrUsm/PiaUt/jeyZqXdKP3F+JH2S42Kcrz1wQ58ozKOJc5lUppAoWzljoKxr3UpjQmi5U7O85y3ntvwW9BglQqoK84yMdBdRUpWz8r8RYiENdyKzcCLm64k3DVn6apcUBL9mfuyWvH0XGL3IulbgXgSfDaYGE63HPcitDD+NIhwPpZWQnLHD3BhEOcV1xqdtEW1HkgcsxpSTcOy5186YEAfdiXw1xvVWrEvgEWlrsTKXwRz8dZoG6ng4CONy7e/5wRLgCIlU+oIqHVunYKxRds6mOFYpw92u+YQH3WoJ0X2YP3H8DOgnF/XGe17zxf8wMJRJmLUOan9dGuf94c+n1/fHmEu14yVmdrdvOkb+YLC0OqAcq2gFCL2qvwkOMEacZxGTEKQZgjP3MACZjPzGAX1kthVwFIb0OB/q8fKUbP7qL2b7LvL25XBkNQPf0q8cUNwf7t65Tt6hLVWZlEeSb8iTMU+OLDOKeTr7LcHaZ8yyM0yokYT+IYtflMyxLj6Qu16zSs6y8FqwQf/JwkU4sKORlJHdJpLaTWO+ZzIswcawl0OxpNg/MNbv2ZVn28K1By3lV84wpnv9HevBL5GXmedtt1gNXuqkNXH8yY4aOwTHeOgueGXKNoOnGjjk8MQsbpEiWHtKHFulI+9fSvA+tjyezdVmfMRWsXA9KJGlx8Y4p/sR27VPXfYVOea078vqFCvID9kmi6kYW1C4ymMEsSQx9t02PO/Jn9ellZCy2+ReI6Veh1rrdVNaQr1SEK2qsi7p87ijmqEsoMNMuXRSTsUh4IM4hSkosV9tCiU+s2HJCVBMnXyK+X7a83i1VLeQK3pxHuEwX+4KpNS1U00O6yJKV5RcuwaViK/5p2DyGCdD0kC6yTy91HWXWWpj4XH6QUVZVMICqQvrW2whOtvf3vP4k+FOQY8oJzHatLaD7aogJvEvxEP5ADEIkR0+zO0bKZ2CGOgVxuqgVQp5Z0hoTwbBuGgQexAl44GfIZUTlR3FpvMi0EOmyPxwGy4LMvRJJempOa942q1kBbpW7jND8G74SpTx/Vlw2opSnpbwXqy2wi+s3R8e0zB+WYvXp9bEu3wtZbVXnFxDPnCk9FnwoKSLRLfa2oVcVXD/kxSPP2zbfFVcsZ4pdyP/lGbRPHecNHzF4sMQQU3janhVpSgjuDR/xvpV5faf9QcKyTPDsNKX0xUpHyPxCvi22utW7k4o9B6OZWODJQq5OS9momgmpwuUwsSCRXWtFvOC5pSJxZf3rmstrRIlP7fBRxPNTkW/LWLJpgSfr8otl2zY0enypJ7vnRXkHrWwOUjQrezCmnGdBrY5AsRd9eECuxR9xLN3ZluGEZIYYySvz3SWXK7U+ZUW2LSDdAZcNlr6Veb84DvikTixw5GHrHewjbappxCYO2VCZSxGeoxh0SAp8MoQ873G65tlDs90EQb2ORjkuVmUt1BqM2xvQuFF9NqcRmd+oepsBKgOHCZLdTYzBBioNcQJe958oavefBOxz+RgFPpePFGq/xTD4cTbVFGLbVR5W3MNH873GlHigK53AC51giyvilzxFrXiKCaIfzT+uV8C7MDJAljxkzVVoyRXwEsuVFKqEDr5ZcuzlDbuVbllwJMkQY3mbTTs2JztHwAb3jBk6hqqUXCpoi8bSY6n9V+6u0CvIcg79YszYoaOILflEZS4VyxS0wEdiAu+wae2yZNB8V/OWxEhi+WSqXqwELu+9mMADPcyUZ7d8ENA5GEOM5VU78LCxIcby6gZ8dXspklVzprjeCQW9c7YBjnvGszIPDyb2MiyjbfrhJpK8xth49uuU+5W811tVbYNFPmeHjUIxUfB8wXkd0fGdMUPGIMKVkdZgvff7fMOIXojlNFktNjolWAmcLHGYoNlV2UDm+g9KJGmy63mG49z4HEs5l+DjNs5l1FEbB9a5BNU9vYzAEHIFeyxMNZbYdTHDrE5H7qYMjk44qyGlOVbTLjFi0tthQmPDu/+p+vyDn/CC5IMSSaprWZ4/Z7yCfCFNNZpY1sAtMGMtgXZbPnDItfVKJOkRUGO2oi/tH7s/wZ04wgNy5o7A0BBn7tBP1rmQAlaeWkjgDHt+QKxBnIAH/A5NTVKwI25okj1Rqeikd6fbt33F6mbNCkj15jJKyG97EW/DNZ/HNmE0S3QsyySRtCNoMe2IedM0sSzq8lFAWqUzdoQoIo7pIp/KFc1Cv4PPbFMVHFjvjcUkHnAo2VRjid3fhv5QOzIBxc+a4mJ5y1W21rv6hwEKWKU7Y4aMQYAzwI+kWJYcj8eEeYY8CfO4XrX3DnCxbrskUcBGsJxGSH7Bn8VdwYdp+yaiEvfZYqMpmXrxpt2vEqYftHRaxAqHGTN0DE+uDIiz6Ke5RIgxRNjitYMSRwJvGSLuFnrH1XFRAOsqQ4znPTWn66184Pkw1mSnHpqnz5gmjyWiQPwe0JGBZ3nGWgINer3062rtb9loPTgca5jhYnjPmnUIqDXkQUntJKJqtOR0fLs5G9YIG2uRpQrbT07aMd4bx1wSqVX7vmz6LfgRH3anEZLfp6bCzRr6rWkRXYNGZU01jQjbcWiqUxBj7vycYYo44GP9aROaWd6AIwNuK3wEfWMd/yJ4HZDjAn49U/UutZ9JitR5pDNDagxrkmd0nuVMNxrHslOO+mCuzKMxNJ1zC/Y0d0ocCbp6krZscrCGvqO2Pg0VVlW6rZAR9Kmo27cL1gpxmGDZ9yWsOXJQ4kn1pq2uQBNuth5LFUqgRnrmLRNFAhvtmTHDxqDevA4T1ZvXSP/7j/X5s6oZpNPgMJmwx4Qq6zIF90toryvAnXTYIK+vaXecAb+WphpJBCYhoeUfgab+oGX9GKxvuNrW8oY32yL8+DtsaPTfBC/yOPjIBMf+me9glexeiONciozLBjhPY4ixPAncM3lQ4kmHngCcadvg6RFQIqtRsETBByV5qOWyXK3CDa5Ohbys1hZYcxpiLK982FaTzPNzvJGYwgNf30iM412xCvaU7IXkh+SK54Ld7ipg/WLJkZcJ6yWSeohDUhPY2ktTjSSWj/DcOYYYyetzAaXLnxPvkRZ5uoi/VKR6F0f8iIrbChtBvWl7CjmsZrD1OOp1ezJeUT7BagVLTmQCP8q2HkmFsSgEqc/TgfRpDkokSR9qtLgAXtJYjObVEWtqLDmRCXsd4McuwD6XQ9UIn5ycWmAvPFU1/6Wr96gwsIz+nK2I4TWHCY4dmf4tSeo3+6TiWVRjnw/+JQjYJYdRDOQWjSjGKyxDrS8U30AfgLEaTwR+F0dSJCtu32OS/Y6Lusx40wASpRyUaNJGNBySZHkkRbMqXqvdGdebGivAYNzUAk0GTbfQplm6FOKge9bqkJTlz0OqrA98VSpQB8tphOQ/3wPfvEGI4/yy5dtuoRZTfBWcl7PkSZhL8WfwrXCY4NjDMZMnO8W71WmHA41DQfhs00czPEmUqAYftOhgaxJN9V9PxLYPTC9RCcw9piliOfnt+uSmbTTGBXKwSxcFaNnDrGGKOPrUD/Gv64x5wpgwN8kwTRFLuzk2ttJwmKaIpV2JLTJMuRimaWLpCxnYRfRbp4hI/++slBw2d+izTRVN2xvHhjMypsXzay2U/tc8itofxtgGT7+WxQ6S/WSsxdN0zBGfuJEcy7zntc7lC2tRWnIsUx/3ELFkdGKA5zbw7eqWHMvcxEzDWHIssypYFgM19Vhq+znXmZqhz5JlQOIC9/WZ6hTEYaAyjjxYkSIAP8hj9V9PxLe+Wy+w1aeGmMwTcgVewzdjho2hKYut6tZet38L0i0DAtc99n7LVuDbDnCCjq9dxAx/20w9jQqt0MZqGhE4tmrJsUxV73RD6bZm4ZwqpppAbHsWkHOJTTWBGNXkMPUEKnT8zBAn4EXt/pi3TBBJOA+WJScwQcmiDkokaSuV2PD9Ppkgz9LjqMtX+6TsgCfYVGOJ589VeyY4cG/GxCARFzp9MGuIjwOzl2rODhsFdpPbvGWiSMC3JeVWt+WriIrcECN5OvOLzvUIawVZciSzTYoAyOy+F2I5ehkKrLEx1mJpZQVt2oy1SFr+0KeiEs8i/M4a6hTEruUbnipwWyEj4Nm2hmaGNsQJeNAXxGFDoAu1010wUfMNOG/6rCEtjq52iwthbIOl1zkfziIGlP5YjSbi9rvNGqLjeIQuexprKbTh3PQYqmmDpK9ZxUeJxcPVim1AXmzYelzGBbBMiBcrydS25p9en9a7SpWQFKBOI+QdOLiKJNOYMYNRaUahlhuh1nEdSIcJhQ3OaWzJ6Q9Zu4mz36Wj7xv0ozZjhyyEYSvpkOcGslzbaYTl6wPQQX3pkRTJqngG3YE61tJp0LUcLhsiPYaKp+lVZtk47fLgD/pQhxykigsdDzGObklUm+0OcENMOYWps1gBPqAjLYW2EBU0z+bEAM3dZvrbB9sVYcnplfg202tygXOCphp3wbdspc8xD6F6GZoBa3TuhUhOVkWnP3DZIOntxCFw6toQI3nlT0tgf3kkRbL0lEkDeyfGWvIL8VHmvC52Qq7apaDtJzsUgMsGd9kHT0shg+vPTHUK4vFdWSvo8jePaYpYTouy4bhYDNMUsSwVw5aLYZoilnYlEy4Ww5QcS+S7kei9aL2cMpnxAlEIDus0ES22BTqesW2aaLDP69QYGc/NZZB6c4n0XRftHrBga2UvRF/DkrM6W7dzQQ20MzJjhoyh4fXxikcdC+WywdGHZaGwVZam+q8nYhdPmV6iF8gHzBPG1NbeuHg6U1ws/7MpYI3pvRDH+dy2INqxwOKAUrvKpIxlFui7H/7+4vuXMJiV9G6KcWW5iwbMHtQzw/MfERSNt08kmaE6Tz6JgU32cU9B7n3bEZC/XfHNHa/tLsGUNNYRcGFQIsQNvw9Tbvg9HnR817S5/D7wJ3PocEKzlASk3N0Ye52mqE5BQCwu3jHFn9iufYj7mk4vnShrPYsy6apOQ4B5SBZiv/41OjDTLkU43bbeQBXokqeFj5e7gfCTBW8xAdQrXw2lf6Y4r9nuZHt/z2tzf7qDYyiTID8J/gRDaiUBuVVlVurTnZT3EkeyNLCFPlhYn2asxwR1EjMgfWJHCOepOa15u1iOFfOr7abh+Ozw4ZyI1RnPxIYVwQ+VLSVBL6TiK8Bn2JZSoJLVu6790K6X91ItLRUbeJkPIhIo9yPsvDCRzvUstz4K3BondpIMLRl7xlkEeKwmo9tFcWFmKyPAivIu/CrsRSlAvm/YSEVAlWXBmQS+cBMxGRwuz7GOgGs/iMMhSz6eIaQARaGENHMoe7kO/f8zfjLIEhPATnHgU2Uq8cjhNDxjtc0lX7Fs58F7rAKhwOaYDqfG6eRSvkAMIaEYyk1VNvytbMckvcCxkACsOVNcZ9MMj3xMtHjsGVPdOTke3F5DwHQdxbZHcsUqH8xUkpHNVZn7XpyxjADrj04N3ztLSUcGK39TSADuJNuIrK1fdE3nb8Q71Hj0ucyrUgzrqIe8YR6624AegGt7zCx8dkdMDNidXWXK9KRSicb535i9hohp18QIuboSeV7wJ1YHoVMLQgjhqoheB50/Z8XWX5idAo9425444nsXegUBoc/rLXbDun4fylTikf16KQDSUhKQbevphPnatXsNFfOBbbivChmpqKgbnpW1r7s8llFhjbl4fYbVONasR6NCLeIkreFRZnMf6qBKgtLz0aFGmUtOg1+yO16cCHXFGt+XxpbSoAu2K0qWw7CmmAb+ZcvrXbfgAAafGtACmMt64oR706xEg7u8DvoTDrt0h0WaEKAXb6jx6IvjD8dD5iWeX4lNaGDcbUAIIOebqlRcZl2GgHDxz1gkCEFFwBUd241sw6ruqZgAXnzideNvQ+w1BEx3VJoP0ikICL1po0s8rY8UnOaHmCLdFoQQ9iNbZsq+KdkQ4oE/c1/L9mdOaNX+zHe+uVT9M8G5LJ/GQ7y+Km6ixWMvheSL0gfrFRREt97Gy+gkBEh7fBag9W8KUwGP81x0x0aYKYQCeNOMFMwlf+TFha86OYgoILmC1ciWkoLUB4eB7uxYSAE+8Tozts84WL0Gj7liVWDis1eQELelkQZt5iQUF9pnSQgJtsAsYn0Z9CC39rS08CI6U0i50JGf0MsyFVPAXY45PRTgRR5kdNitdxBkpCKgzm/fX58tfZhOQUBAxhVTDCWGFwmSFwd+4M8KUGmOZQSYf/z3A2noV1sHel2DhAKRyzWred5NRHtZhjJJ7fRhu9GpxIPVoqHDX+z1xjvkpn8mOJeghTBjGQUGXP5iCglAfS5cJd6257T7eGOdE2c6tTeYuhw695XGxD454svHm4jx4P201mWZha5zok2AtXfRzUOd++cm9+sgVztvLW4KSVfS8DxQyx5ERFC4eTiWkWB6vaafoxVkBOiKRkICUHgnXfXPBOf9rLR/jGOkwqMOY9f68fXPcU20eOwNkyvfM97+TnBvHAnh2n82Jc6YpArCPnkkEIDztBESPDgyN2dCC6KUhe8hHiQUyJ1/0W8noAKWO5kFIVpEAQXmY6kzsf2RC/6nsJNQIN0Gm2HdHyuybRFqDcwbkQMZjp/eKv+0qUtOg4ua++9mJ6FAuoEbL6ST0CFR40pfYkgp5shff0CQU37jAusmQfun9xMrRB5+4ueMKIEMKesD/WhTSAJuaxmG9SIK6FE8BiquVoFHmJnLA9c0FRPAodGAhMOj42TKoUu0pNQLDL+jho6K8+8Ehm4EjinVLnVSENrJqJfXebFzCXiRznwCMeD8oa0yfLhekqZU24TN4Tl6Q0e4PCMzcujlmIgpYNl0+yqDyy5sKQU6JMgFDB5PxSTwo8h4t3nzXnjr9ImWgNVZgQNTJXtNAkxTMe9IlCmkAMtawSafbCkBKvSO4PB3ayQjwOaTAk6JgWSA0VjdPd3p/J/egrWkFKgeljwzTppy4AYRAdSlNNV1dfg22loqVq8CAVIPUir0ilVA5l5JRe6H8oFgS0/FA6kpYRd5sIUwVadC62cFTNbiVGD/XpGJNhUWMps0Y5EqhK6GB/M7eTJ4m74XDm/lqeAfZUzBt2oyGvjVnYjJ4Lm0ynNsb17laHxbeED0SEvB6gFwnYEWkpHAoSahBXTl3URLxYr7XTidki2lQiHlu5cRYDuZAYZLxzI87JatvCs0299J7n2NYP0zwbnY8EaxTaX3duv/BG/QjEWKELod2BERjA0SBHBeldl6ybNS5pP82fNRTK0ShALopk+0CbCwqsglTwFXqn2o4EVvWiQIIZwnxpYSoOVPy/Ao6UhFQRlnrDgg04NVotx3tTbkagwlAanHOE+E+mQdqjElGkIC0D9CSBsT1NZ5m2ougOhEeNBHGZg97wRUQGD2/CCigET4S3EQEUA3Fz7CzQXB9ZBu2gcYNAkwCyZ8r4qhI+C2Iod9RywlHulMf/zYn4dnIGczIL+CkazEn06GI9tnjHc78/A8w5V8GEh6W5RMvXhj1TlO1FiKYk12Zzgxzq0ZQII9MeYEuCbEgP6HtVLtGSWzi8ycVJ8pKRY7z7uX7kosj+Kd/HZ9Yq9tA5APZsliaJfvIIJo7RJE4cl2D4glkOyeEhHi9hiWyEjCy8BmAoEtBQPHEV6cMxMHbIEOMA7FVs3JzpyBdHIPQhTHOC3ECZgcFgL0PHeehBPiO8ACxYt9u6KOkqBEZJ8kAY/GdZAEMJK21WJuLduU+daias9fsZG0Y7x+8cPrV9+9hoH0R37SjZtlaXW5V8fjhloITKx7g3jo7yPssGX6wONyu2m+Hf5u3qN/jMunEsfVaPqnxfHm2+7vpt2Ll5alNVk2snVMjE2sL9nmLmdz9P2vAS+T7+bIh/Pb6PDQVZQzLrof/T4q+zSeg4fKdeiOaX/CGpHpkwam9vufQPZvRWG8yhMvncDny1U/DW7mah/TQ3vrdZ6TWh8u7Ho+bIXP22W5muSBG/wcfvN5OOyD7fLduDxNNT6P/Z65uXtu/Ozzs6iFzEQ17uINPvY/+ez7x3uSsXJwYv7u89Sdtz710P09bNlli5grkKnG5/HC9SS3tWZ3yNDF3IP88vs3tpvu6I55N93vXjdnoh2KZuPHZuzm8LvXTXf1bhfdbz7zn5pSLpjKRjVEN/aw/8E51GC9R869oPsfQh5YJQ629/0IffMtq4Rp+ea1aeSqUQzzuWrFdnSxkuV4x7vhpPsR4iAYjy3zO3WsYjC8zaxZsN1MPmOGE+eHbOrC/o5ZPlxfMtvJsDB0xsnws8fJXZk7rfXfPWZZKZutkTryYDr85jfvb9ep35GlArmc/6S5XPs/bzOID6XZAHA57jQgd4u6zLdZqBAGFcjlTVnw5rgoyqfxDLTL7VjpcX12fnl+e+5y1f3iMeWAG2JrPO7end+6PLw7v/UYra1RiYPd2jHqYJjK2ZstQ7d4cXx7+t5l2f7gMdQGVsb3g/H+Rx/5euksJf13H3fayBlx3c0cy8H8o1yFH+DFR3fUH31B/7HfKeyyPfzqcVGzp5OZmrD/yWc8/zWog5+C2vMdqMMfgTrwntewt1uJjdu+/WFi+Pv/AbzXX+A=" \ No newline at end of file +window.navigationData = "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" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index 12227264..22acf7ca 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "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"; \ No newline at end of file +window.searchData = "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"; \ No newline at end of file diff --git a/docs/classes/ApiApp.html b/docs/classes/ApiApp.html index 2fdba302..898adb04 100644 --- a/docs/classes/ApiApp.html +++ b/docs/classes/ApiApp.html @@ -6,7 +6,7 @@ compatible with either API Gateway or an ALB.
Extending this class will allow creating an app implementation for runtimes, AWS Lambda, Local Web Server etc.
-Container using
autobind flag set to true if autoInjectionEnabled is true. If you pass your own
instance autoInjectionEnabled must reflect the autobind flag passed to the Container.
-Protected ReadonlyapiProtectedappProtectedapp(Optional) InversifyJS IOC Container instance which can
+
Protected ReadonlyapiProtectedapp(Optional) Application config to pass to lambda-api, defaults to new AppConfig.
Protectedapp(Optional) InversifyJS IOC Container instance which can
build controllers and error interceptors, defaults to new Container using
autobind flag set to true if autoInjectionEnabled is true. If you pass your own
instance autoInjectionEnabled must reflect the autobind flag passed to the Container.
Protectedauto(Optional) Is auto injection enabled in the IOC container? Defaults to true.
Protected Optional Readonlycontrollers(Optional) Paths to the directories that contain controller js files that
+
Protectedauto(Optional) Is auto injection enabled in the IOC container? Defaults to true.
Protected Optional Readonlycontrollers(Optional) Paths to the directories that contain controller js files that
declare controllers. Required if the default Container is used, or the
autoInjectionEnabled is set to true. Ignored if the autoInjectionEnabled
is set to false.
ProtectedinitialisedProtected ReadonlylogProtectedloggerConfigure the API instance from the lambda-api package.
ProtectedinitialisedProtected ReadonlylogProtectedloggerConfigure the API instance from the lambda-api package.
Function that takes an API instance as a parameter.
Configure the InversifyJS IOC Container instance.
Configure the InversifyJS IOC Container instance.
Function that takes a Container instance as a parameter.
Initialise all controllers and endpoints declared using decorators.
-AbstractrunRun using the passed event and context, ultimately should call the +
Initialise all controllers and endpoints declared using decorators.
+AbstractrunRun using the passed event and context, ultimately should call the
processEvent method on the apiServer instance.
API Gateway or ALB request.
+API Gateway or ALB request.
Request context.
The response.
-
(Optional) Application config to pass to
-lambda-api, defaults to newAppConfig.