在Web请求上启动对FQDN的容器实例

最高

假设我们有一个(容器化的)后端,仅用于备用。也许每两天左右,(静态)Web前端调用该后端的API端点。

后端恰好是无状态的。没有数据存储或任何东西。

我们希望将托管费用降到最低,并且理想情况下希望按秒计费。每个月只需要运行几分钟,而我们只想为此使用付费。基本上,我们需要功能即服务(FaaS),但对于整个后端,而不仅仅是一个功能。

Azure容器实例似乎非常适合这种情况。需要时,它可以将后端旋转到容器中。然后,后端可以在一段时间不使用后再次关闭自身。

因此,让我们创建一个容器实例...

az container create \
    --resource-group myResourceGroup \
    --name mycontainer \
    --image mycontainerimage \
    --restart-policy Never
    --dns-name-label mybackend123 
    --ports 80

太好了,我们的后端按其FQDN运行http://mybackend123.eastus.azurecontainer.io

如上所述,一段时间不使用后,它将自行关闭。多亏了--restart-policy NeverACI不会重新启动容器,而是保持它的状态Stopped

我的问题是:如果对FQDN的网络请求到达,是否有任何方法可以自动再次启动容器?

当然,我们可以通过运行自己唤醒它。

az container start --resource-group myResourceGroup --name mycontainer

...或使用等效的API调用。但后来,做服务需要运行所有的时间!理想情况下,我希望容器在请求进入时启动。

布兰登·奥林

Azure容器实例没有可启动它们的wehbook或HTTP触发器。但是,您可以使用可以az container start为您有效运行的Azure Function或Logic App,然后使用HTTP调用THAT。使用这些方法中的任一种,您都必须设置一些IAM权限才能向ACI资源授予“功能”或“逻辑应用”权限才能启动它。

一种方法是:

  1. 使用HTTP触发器和托管身份创建Azure函数
  2. 授予托管身份提供者对ACI容器组的访问权限
  3. az container start在函数内运行或等效的REST调用以启动ACI容器
  4. 调用Azure函数(使用函数令牌)以启动容器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何为Azure容器实例设置FQDN

在启动时为GCE实例配置FQDN

在预留实例上启动实例

Web容器中的Servlet实例

Docker-启动后如何自动在REST容器上发布请求?

xUnit Mock 从 IoC 容器请求新实例

在Docker容器上启动Apache

Google Cloud Run上的500:由于实例无法成功启动,因此请求失败

在ECS容器实例上设置名称

无法在多个实例上设置Vespa容器

MySQL容器无法在Kubernetes上启动

无法在 Ubuntu 容器上启动 Mariadb

Nginx 容器无法在 Cloud Run 上启动

容器启动后在Docker上运行mongorestore

联网Docker容器上的HttpClient请求

Testcontainers - 不要实例时自动启动容器

Azure容器实例在启动时更改环境变量

如何使用Powershell重新启动容器实例

路由到服务初始请求的后端容器的相同实例

从 Aurelia 依赖注入容器显式请求新实例

在 uWSGI 实例中从烧瓶请求创建 docker 容器

Linux上的Azure Web App:“错误:容器未响应端口8080上的HTTP ping”-使用时:“启动”:“ pm2启动server.js”

Node.js 应用程序无法在带有自定义容器的 Azure Web App 上启动

启动器上的Wine实例

在每个用户请求上创建新实例

该Web容器尚未启动@Glassfish 4.0.01 web

GAE Go“请求失败,因为实例无法成功启动”

在预定的时间段内启动 Azure 容器实例中的容器

在VS 2017(15.7.0)上,通过调试Web项目启动浏览器的新实例,并在现有实例中打开新标签页