when to use ECR in lambda ?

1

I want to host a python code based service in Lambda behind API GW. AFAIK, there are 2 approaches to deploy the code to Lambda.

  1. simply zip the code and upload to S3 and link with the lambda function
  2. create ECR images and deploy it with lambda function.

Are there any guidance on when to use ECR ? and when to use simple code zipping ? What are the pros and cons of each approach ? Some leads on this topic will be super helpful.

2 回答
2

You usually will use the container option in one of the following two cases:

  1. You need a function with a package size larger than 250MB unzipped (containers support 10GB)
  2. You are already using containers in other places and would like to use the same tools you are using for containers

In other cases I would just use the zip file approach.

profile pictureAWS
专家
Uri
已回答 2 年前
profile picture
专家
已审核 1 个月前
  • Can we just simply use Container for all lambda as a default pattern ? Assume a case, the team uses containers for all old services. What will the value/advantage in using zip for new service or refactor the container based app to code-zip ?

  • You could use a container for all functions, but note that you don't just take your old code and run it in a container. When running in Lambda you need to include the Lambda handler, which will be invoked when the function is triggered. You will need to move to stateless, etc.

  • Or your using a version of the runtime AWS doesnt support

2

It also comes down to how you want to manage language runtimes. In AWS Lambda, container image packaged functions are similar to Zip files, but the customer is responsible for more artifacts, including the runtime, in the container image. If you take advantage of container packaging, the shared responsibility model for Lambda shifts, with the customer now being responsible for managing from the base image up. Since container images contain language runtime libraries, using a container image to package Lambda functions prevents Lambda from automatically updating the language runtime.

profile pictureAWS
已回答 2 年前
profile picture
专家
已审核 1 个月前
  • Can we just simply use Container for all lambda as a default pattern ? Assume a case, the team uses containers for all old services. What will the value/advantage in using zip for new service or refactor the container based app to code-zip ?

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则