
Ask HN: Serve static content from serverless AWS lambda function - xameeramir
We have an express+React typescript app that is executed from a serverless endpoint which is intended to ultimately move to AWS lambda.<p>The React bundle is served as static content along with its css, js etc files.<p>React app is hosted inside a single serverless project. The same is exposed from serverless.yml config as a function named static-router:<p>static-router:
    handler: src&#x2F;server.handler
    events:
      - http:  ANY &#x2F; 
      - http:  ANY &#x2F;{proxy+} 
So, on my local, it works absolutely fine! All the static content along with the index.html are getting served to the browser using serverless-offline<p>Static content served<p>However when I push the same to AWS using serverless deploy - all the static content is not getting served. Refer to this link: https:&#x2F;&#x2F;xjfxfyosml.execute-api.ap-south-1.amazonaws.com&#x2F;dev&#x2F;<p>How do I allow serving static content from the Lambda function which were working perfectly on my local?<p>What is missing here?
======
gtsteve
This question is probably best asked on StackOverflow.

I can't tell you why this problem is happening but you should consider
uploading your static assets to S3, or you'll be paying for compute time when
S3 can do it for cheaper or potentially free, and without burning your
execution allowance.

------
eahefnawy
Maybe Serverless Components could help? The backend component should be pretty
easy for this use case:

[https://github.com/serverless-
components/backend](https://github.com/serverless-components/backend)

~~~
xameeramir
@eahefnawy This is not for static pages. This is for web frameworks like
express/hapi etc

------
dyeje
Sorry, not familiar with this architecture. But isn't the common pattern here
to just host the react app on a CDN? Then the serverless backend could just
focus on fulfilling API requests instead of assets.

------
ac360
[https://github.com/serverless-
components/nextjs](https://github.com/serverless-components/nextjs)

------
solutionfocus
host your content on S3 as a website and front it with CloudFront. Use Lambda
just for 'api' in your case.

