amazon-web-servicesaws-samaws-lambda-edge

Why Lambda@Edge has to be in us-east-1 region?


I am trying to create a CloudFormation stack in us-east-2 (Ohio) region. However, getting the following error

com.amazonaws.services.cloudfront.model.InvalidLambdaFunctionAssociationException:
The function must be in region 'us-east-1'

I have gone through the below sources and understand that this is a requirement that must be fulfilled by the lambda. My question is why? Why such restriction have been placed? I have looked in the documentations but they only mention the usage of us-east-1 but provide no reasoning!

https://github.com/awslabs/serverless-application-model/issues/635

https://medium.com/@mnylen/lambda-edge-gotchas-and-tips-93083f8b4152


Solution

  • It seems to be an arbitrary decision. Lambda@Edge functions are distributed globally, but they originate from one place. The reason is most likely that there needs to be a single source of truth, and they picked us-east-1. This was also the first region and is special in a few ways (it handles billing, etc). It may have some benefits on their backend that we are not aware of.