解决Logic Apps terraform部署时大小写问题
  b313kn37lUqo 2023年11月02日 40 0

今天来分享一个实际工作中遇到的一个问题,首先来描述下场景和问题,我们之前在使用terrafrom来部署一些logic apps, 具体部署的方法之后准备单独写博客来分享下,其实也是挺值得谈谈的

这次先来简单分析下遇到的问题,logic apps里其实包含了很多子组件,包括trigger,action等等,都用terraform部署的话是很麻烦的,所以这里采用的方法是在图形化界面编辑好logic apps之后,导出arm template,然后直接用logic apps部署arm template,这样相对来说就很简单了,用来部署的一部分代码片段大概是这样,其实就是个template deployment,直接读取arm template的JSON文件

data "template_file" "logicapps" {

  template = file(local.logic_apps_file_path)

}

resource "azurerm_resource_group_template_deployment" "logicapps_lnx" {
  name                = local.logic_apps_deployment_name_lnx
  resource_group_name = azurerm_api_connection.arm.resource_group_name
  deployment_mode     = "Incremental"
  template_content    = data.template_file.logicapps.template
  parameters_content = jsonencode({
    LApp_workflows_name    = { value = local.LApp_workflows_name_lnx }
    connections_arm_externalid = { value = azurerm_api_connection.arm.id }
  })

}


然后在JSON文件里会预先定义好参数,由terrafrom将参数传进去

解决Logic Apps terraform部署时大小写问题_无代码


那么遇到的问题是什么呢?第一次部署的时候是很顺利的,但是之后的部署里发现每一次都会提示logic apps这个resource要被replace

解决Logic Apps terraform部署时大小写问题_JSON_02

开始的时候猜测是不是terraform里的parameter的值是LApp-Win-KongSN,传到ARM Template里变成了lApp-Win-KongSN,导致出现了这个问题,但是仔细对比之后发现两者是完全一样的,实际部署出来的资源也是LApp-Win-KongSN

仔细观察之后,可以看到实际上有问题的是parameter的名字,但是实际上在terraform文件里和arm template文件里,这两个parameter也是完全一样的,猜测可能是不是jsonencode这个function本身的一些问题

解决Logic Apps terraform部署时大小写问题_logicapps_03

为了快速解决这个问题,其实最简单的办法就是直接都改成小写

resource "azurerm_resource_group_template_deployment" "logicapps_lnx" {
  name                = local.logic_apps_deployment_name_lnx
  resource_group_name = azurerm_api_connection.arm.resource_group_name
  deployment_mode     = "Incremental"
  template_content    = data.template_file.logicapps.template
  parameters_content = jsonencode({
    logicapp_workflows_name    = { value = local.logicapp_workflows_name_lnx }
    connections_arm_externalid = { value = azurerm_api_connection.arm.id }
  })

}

这样就不会再有这个问题了,可以看到正常应该是提示no changes才对

解决Logic Apps terraform部署时大小写问题_logicapps_04


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论