部署ARM模板后,有没有办法触发“ http触发器” azure函数?

时间:2019-09-06 00:33:28

标签: azure azure-functions

我有部署kubernetes集群和httptrigger函数应用程序的ARM。在httptrigger func内部,我有kubernetes的客户端,如果我手动触发此func,它会执行一些操作,它的工作正常。但是我需要在完成ARM部署后自动运行此触发器。

2 个答案:

答案 0 :(得分:1)

可以通过ARM本身,Azure DevOps管道或用于执行模板的任何协调器来发送触发Azure功能的HTTP请求。 Terraform可以直接执行脚本;除非您真的想使用ARM,否则可能是一个选择。

如果要使用ARM,则至少有三个选择:

  1. 使Azure函数返回“空” ARM模板,并通过请求嵌套部署模板来触发它。 https://blog.cloudtrooper.net/2017/04/04/run-azure-functions-from-your-quickstart-arm-templates/
  2. 使用Azure Container Instances在Azure的独立容器中启动容器映像的实例,并在其中执行任意命令。 https://samcogan.com/run-scripts-in-arm-deployments-with-aci/
  3. 使用deployment scripts resource(Microsoft.Resources / deploymentScripts)。它基本上是对使用Azure容器实例的方法的内置支持。目前处于预览阶段,API版本为2019-10-01-preview。 https://dev.to/omiossec/arm-template-what-s-new-for-2020-4kli#deployementsscripts-resource-provider

在任何情况下,您都需要通过属性设置dependsOn引用,以便在正确的时间发送请求。

答案 1 :(得分:0)

假设您正在使用Powershell部署ARM模板,则可以在部署ARM模板后立即使用Powershell触发天蓝色的http触发函数:

Invoke-WebRequest -Uri <function_uri> -Method POST

希望这会有所帮助!