【Azure Service Bus】创建 ServiceBus 的Terraform脚本报错GetAuthorizationRule: Invalid input
问题描述
在使用Terraform部署Service Bus时候,遇见了如下报错:
Error: Error making Read request on Azure ServiceBus Topic Authorization Rule : servicebus.TopicsClient#GetAuthorizationRule: Invalid input: autorest/validation: validation failed: parameter=authorizationRuleName constraint=MinLength value="" details: value length must be greater than or equal to 1
问题解答
在查看Teffaform的日志后,定位到问题发生的原因是 authorizationrules 这个关键字出现了大小写问题。
出问题的部署使用的小写authorizationrules, 而请求真正使用的参数是authorizationRules.
其实,如果查看Azure的官方文档,它标明了Azure资源是不区分大小写的,也就是说:不论大写/小写,都是支持的。
(Source: https://learn.microsoft.com/zh-cn/azure/azure-resource-manager/management/resource-name-rules)
为了解决Terraform发布Service Bus问题,最后通过升级 azure provider 到最新版本来解决此问题。
为了最佳的体验,需要确保使用最新 Terraform azurerm 组件!
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!