从以下链接,似乎可以从 API 网关调用 Fargate 任务: https://aws.amazon.com/blogs/compute/introducing-amazon-api-gateway-private-endpoints/
但是,任务是否必须全天候运行才能实现此功能?是否可以仅在端点被击中时运行任务?我有一些关键但很少使用的服务,我想让它们尽可能便宜。
我相信 Gateway + Lambda 可以实现类似的事情: https://serverless.com/blog/flask-python-rest-api-serverless-lambda-dynamodb/
但是,我喜欢使用 Docker 和 Fargate 带来的灵活性和易用性。
答案1
简短的回答:不,这是不可能的。
当没有 Fargate 任务运行时,API GW 无处发送请求并返回错误。
当没有任务运行时,可能有一种方法可以从 API GW 触发 lambda 并启动一个,但是......
Fargate 容器需要时间才能启动 - 至少需要几十秒,有时甚至超过一分钟。如果用户的初始请求需要一分钟才能返回,那将是糟糕的用户体验。
另请查看这个:AWS Fargate 服务:规模降至零?
使用 Lambda,这是做你想做的事情的正确方法。
希望有帮助:)