首页 > 其他分享 >解决Logic Apps terraform部署时大小写问题

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

时间:2023-09-19 15:04:08浏览次数:44  
标签:resource name apps logic Apps terraform template Logic arm

今天来分享一个实际工作中遇到的一个问题,首先来描述下场景和问题,我们之前在使用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部署时大小写问题_Azure


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

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

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

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

解决Logic Apps terraform部署时大小写问题_JSON_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部署时大小写问题_Azure_04


标签:resource,name,apps,logic,Apps,terraform,template,Logic,arm
From: https://blog.51cto.com/mxyit/7525151

相关文章

  • 20个最佳实践提升Terraform工作流程|Part 1
    Terraform是管理基础设施及代码(IaC)最常用的工具之一,它能使我们安全且可预测地对基础设施应用更改。刚开始上手Terraform可能会感觉有些不容易,但很快就能对该工具有基本的了解,随之可以开始运行命令、创建和重构Terraform代码。在此过程中,许多新用户面临着如何正确构建代码、使......
  • AppSpider Pro 7.4.055 for Windows - Web 应用程序安全测试
    AppSpiderPro7.4.055forWindows-Web应用程序安全测试Rapid7DynamicApplicationSecurityTesting(DAST)请访问原文链接:https://sysin.org/blog/appspider/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgappspider没有任何应用程序未经测试,没有未知风险......
  • 三星大拿讲appstore和电商
    哈哈,最近一直忙于工作,没怎么上来写blog。继上次请华为两位老师来讲互联网云服务后,上周三的午间培训我们团队又请来一位重量级人物--来自三星(中国)的闫老师讲AppStore和电商的相关知识。在此首先感谢闫老师!其次,通过闫老师的精彩讲解,我对互联网/移动互联网行业又有了新的认识,真是大......
  • Linux安装weblogic
    一、WebLogic下载直接进入Oracle的WebLogicServer下载页面:https://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html进入Downloads界面之后,选择下载文件为GenericInstaller,然后点击DownloadFIle:注意:(1)别忘记点击上面的“同意”条款。(2)点击下拉......
  • terraform简单的开始-安装和一些配置
    terraform的安装:官方下载:浏览器打开terraform官方主页https://www.terraform.io/点击DownloadTerraform跳转到程序下载页面:找到自己对应的操作系统,按照操作系统选择安装terraform的方式:linux为例:我有一台rockylinux工作主机也是直接参照官方文档安装的:terraform--v......
  • Terraform 状态不同步处理
    背景在使用Terraform创建TencentCloudTKE的时候,手贱把nodepool删掉了。导致执行destroy,plan都会报错。│Error:[TencentCloudSDKError]Code=InternalError.UnexpectedInternal,Message=relatednodepoolqueryerr(getnodepoolfailed:[E501001DBRecordNotFou......
  • ipa上传AppStore
    将ipa提交到AppStore需要Mac电脑操作,现在大部分的程序员都是使用混合开发平台windows系统的电脑,自己装虚拟机过程又繁琐。使用此工具只需要网页上点两下帮你完成这些鸡毛蒜皮事,让你有更多的时间花在改bug上1.打开苹果开发者账户中心获取App专用密码,地址 https://appleid.apple......
  • Terraform 实现循环for和条件判断if (10)
    实现循环(for)Terraform中本身并不支持循环的语句,但是可以通过其他形式来实现循环的效果。每一个资源块除了他所支持的特定参数外,Terraform也具有一种被称为mtacmt元参数的参数。所谓元参数就是这种参数能够引用到任意的资源块中,从而达到更改资源原有行为的目的。provisioner......
  • Terraform 团队协作以及状态文件 (9)
    Terraform状态文件在默认情况下,Terraform将状态文件terraform.tfstate存储在本地。如果一个人使用Terraform的话是可以的,如果是团队维护的话,就不太合适了。因为团队中的每一个成员都有可能执行Terraform,所以每个人都有可能产生自己的状态文件。如何能够同步状态文件,并且让它......
  • Terraform 模块重用资源 (8)
    模块重用资源介绍Terraform模块可以简化代码,减少代码重复的内容。使用Terraform模块可以重用基础设施资源。在Terraform本身看来模块只不过是一个或多个资源的容器。通过Terraform的模块机制,对想要重用的资源进行封装,即可在别处像函数一样方便的调用。模块代码结构通过调用......