假设我们有一个(容器化的)后端,仅用于备用。也许每两天左右,(静态)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 Never
ACI不会重新启动容器,而是保持它的状态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资源授予“功能”或“逻辑应用”权限才能启动它。
一种方法是:
az container start
在函数内运行或等效的REST调用以启动ACI容器本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句