使带有Terraform的Azure Logic应用程序有哪些限制?

时间:2018-09-18 21:07:27

标签: terraform azure-logic-apps terraform-provider-azure

据我所知,可以使用Terraform构建Logic Apps。但是,文档仍然不是很好,并且此功能似乎是新功能。

在TF和Azure Logic应用方面有哪些限制?有吗

我想构建两个应用程序,一个应用程序每月触发,另一个应用程序由https请求触发。我希望它们然后运行两个python脚本,并且我希望后面的一个脚本将结果从该脚本返回给名为https的客户端。

这可以在Terraform中自动化吗?目前,关于此的示例和文档很少。任何评论或提示都是有帮助的,并张开双臂欢迎您!

3 个答案:

答案 0 :(得分:1)

为清楚起见,您不使用Terraform创建LogicApp。 LogicApp是在门户网站或Visual Studio中设计的。

Terraform是一种部署/管理工具。您几乎可以肯定地使用Terraform部署LogicApp和其他资源,但是它们已经创建。

答案 1 :(得分:1)

您可以通过Terrform(TF)创建一个空白的Logic App实例。但是,如果要添加触发器和操作,从1.20.0的提供程序版本开始,我根本不建议使用TF。

  1. TF在parameters附近缺少文档。如您所知,有两个parameters属性-在properties属性下和definitions属性下。 This document声明parameters,但并未明确说明是哪一个。我猜这是指definitions属性下的那个,但是它实际上不起作用–在没有足够解释的情况下抛出Invalid Template错误。

    更新:我只是通过使用terraform import导入Logic App实例进行反向工程。 parameters实际上指向properties属性下的那个。但是,它仍然不起作用,因为Logic App的参数值可以是任何值-对象,字符串,整数等,而TF的参数仅需要字符串。另外,无法在parameters属性下创建definitions

  2. TF仅支持两个触发器-HTTP触发器和计时器触发器。所有其他触发器应使用azurerm_logic_app_trigger_custom资源,但它需要正文部分手动编写JSON对象或从文件导入,而不能通过变量或局部变量对其进行参数化。

  3. TF仅支持一项操作-HTTP操作。所有其他操作都应使用azurerm_logic_app_action_custom资源,但是,与上述相同的问题一样,它没有那么有用。

最后,TF缺乏支持parameterstriggersactions。因此,除非您仅创建一个空白的Logic App实例,否则TF将不是Logic Apps的选项。如果您仍想使用TF创建空白的Logic App实例,则建议使用Azure PowerShell或Azure CLI this approach

答案 2 :(得分:0)

terraform 的重点不是通过传入 -var environment=qa 来创建逻辑应用程序的 qa 实例,从而跨各种环境建立资源吗?产品?是吗?马克笔?我希望使用 terraform import 来创建 terraform 文件,然后创建它的多个版本。我可以做到,但不能使用任何参数,这会破坏我的“操作”之一。

我使用了 terraform 导入和逻辑应用代码视图的组合。我的大部分动作几乎都是为每个动作复制 json 块的组合,并根据从 terraform 导入生成的动作的“主体”的第一个条目进行修改。

然后根据 runAfter 手动设置依赖项,它告诉我某个操作依赖于什么。

但是,它在参数上失败,抱怨我的定义中只有这些声明的参数是 ''。'