- Let’s provision a new HTTP server:
- Create a new Github Repo
- Add a workflow on push
# .github/workflows/on-push-main.yml name: demo on: push: branches: - main jobs: deploy: environment: name: main url: ${{ steps.backend.outputs.url }} permissions: id-token: write runs-on: ubuntu-latest steps: - name: Check out repo uses: actions/checkout@v4 - uses: aws-actions/configure-aws-credentials@v4 with: aws-region: us-east-1 role-to-assume: ${{ secrets.ROLE_ARN }} role-session-name: ${{ github.actor }} - uses: alonch/actions-aws-backend-setup@main with: instance: sample - uses: alonch/actions-aws-http-node@main with: name: actions-aws-http-node-sample artifacts: src allow-public-access: true routes: | - entrypoint-file: plus entrypoint-function: handler path: "/plus/{z}" method: post parameters: path: - name: z type: number query: - name: x type: number body: - name: y type: number
- Create function handler
// src/plus.js exports.handler = async function (parameters) { const { path: { z }, query: { x }, body: { y } } = parameters return { status: 200, body: { total: z+x+y } }; };
- Add AWS ROLE_ARN repo secret
- Git push changes to Github
- Navigate to Github Actions Tab, less than a minute later, the api-docs will be generated
But wait there is more, clients sending invalid payload will get 400 status code with the following payload:
$ curl -X 'POST' \ 'https://riga7yssypqgxndyz3xigmzsxy0jkhip.lambda-url.us-east-1.on.aws/plus/2?x=1' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ }' # <-- Invalid body {"in":["request","body-params"],"coercion":"malli","type":"request-coercion","value":{},"humanized":{"y":["missing required key"]}}
Code available on this sample repo and the full documentation here
Top comments (3)
Just a heads up that you can add highlighting to the code blocks if you'd like. Just change:
... to specify the language:
More details in our editor guide!
Thanks for the feedback ❤️
Great write-up, we have a bunch of articles on Github Actions in our Newsletter, check it out - packagemain.tech/p/github-actions-...
Some comments have been hidden by the post's author - find out more