发布于 2026-01-06 4 阅读
0

现在可以在 AWS Amplify 上运行容器了

现在可以在 AWS Amplify 上运行容器了

AWS re:Invent大会第二周,AWS Amplify 团队发布了一项令人惊喜的重大公告:现在你可以将 Docker 容器作为 AWS Amplify API 运行了!!!

迁移到无服务器架构的主要难点在于需要重新学习和重写传统的有服务器代码。而有了全新的 Amplify Serverless Containers,现在可以将代码部署到有状态的 Docker 容器中,并且工作流程与 Amplify CLI 的其他部分完全相同。

# example of the new CLI workflow, see docs for details
# Amplify CLI version 4.39+

$ amplify init # if you're setting up new Amplify project

$ amplify configure project
 > Do you want to enable container-based deployments? Yes

$ amplify add api

Please select from one of the below mentioned services: REST
? Which service would you like to use 
  API Gateway + Lambda 
❯ API Gateway + AWS Fargate (Container-based) 
Enter fullscreen mode Exit fullscreen mode

这首次实现了将Rails、Django、Laravel或任何其他传统有服务器 API与无服务器架构无缝集成运行。只要它能装进 Docker 容器,就能运行!这从而充分释放了它们各自生态系统的全部潜能。

强调无缝集成:这意味着前端和移动开发人员无需花费 9 个月的时间学习云计算(必须了解 VPC、子网、NACL、IAM 策略、SSL 生成、持续部署、成本优化等细节),即可在 AWS 上启动并运行容器化 API。

对我而言,这意义重大,原因有很多,而且这些原因相互关联:

  • 长时间运行代码:AWS Lambda 函数的运行时间限制为 15 分钟。如果我需要运行更长时间的任务,例如视频转换或批量处理,就必须跳出现有的工作流程,使用一套完全不同的工具。现在,我只需使用行业标准即可运行 Rails + SidekiqFlask + Celerydocker-compose.yml。由于 Amplify 的 Serverless Containers 功能使用 AWS Fargate,未来我们或许可以根据需要垂直扩展系统资源,突破 AWS Lambda 的传统资源限制
  • 访问整个生态系统:为有服务器架构编写的库​​和框架在迁移到无服务器/Jamstack架构时通常会失效,需要重新学习和寻找工具。现在,您可以自由地混合搭配使用它们——任何在Docker容器中运行的东西都可以使用(而且所有东西都可以在Docker容器中运行!)
  • 增量迁移:这也意味着将现有应用程序和代码库迁移到无服务器/Jamstack架构不再是一项艰巨的任务。只要您能将UI层与API层分离,现在就可以将UI托管在Amplify控制台上,并将API作为REST或GraphQL服务通过API Gateway + AWS Fargate部署。
  • 轻松访问其他Amplify 类别:由于此功能直接集成到 Amplify API 类别工作流程中,这意味着容器内的代码可以享受到 Amplify API 的所有优势,例如使用 Amazon Cognito 轻松进行身份验证,以及轻松访问 Amplify 管理的资源,例如存储函数GraphQL等。由于网络配置已为您处理,您甚至可以与其他容器通信——CLI 中的默认docker-compose.yml示例展示了如何使 Express (JS) 应用与 Flask (Python) 应用互操作!

是的,我觉得这太棒了——现在你几乎可以在 AWS Amplify 上运行任何东西——这意味着你可以减少维护基础设施的时间,把更多的时间花在编写有价值的功能上。别光听我说,看看Ant Stanley(Serverless Days 的组织者,也是云计算专家)怎么说:

PS:对于那些将其与 AWS CDK 进行比较的人,请注意,此功能实际上是使用 CDK 实现的——它解决的问题比 CDK 更高层次。

文章来源:https://dev.to/swyx/you-can-run-containers-on-aws-amplify-now-23ka