Terraform如何拆分cloudamqp_instance资源输出的URL并作为入参传递
Terraform拆分CloudAMQP URL提取RabbitMQ Provider配置字段方法
使用Terraform内置的urlparse函数即可完成字段拆分,无需引入额外工具或资源,示例配置如下:
# 解析CloudAMQP实例返回的URL locals { parsed_rabbitmq_url = urlparse(cloudamqp_instance.rabbitmq.url) } provider "rabbitmq" { # 替换amqps协议为https,拼接实例host作为管理端点 endpoint = "https://${local.parsed_rabbitmq_url.host}" # 拆分userinfo字段获取用户名和密码 username = split(":", local.parsed_rabbitmq_url.userinfo)[0] password = split(":", local.parsed_rabbitmq_url.userinfo)[1] }
字段说明
urlparse是Terraform内置的URL解析函数,支持标准URL结构的自动拆分,解析后的对象包含scheme、host、userinfo、path等多个标准URL分段字段- CloudAMQP返回的URL中
userinfo字段固定为用户名:密码格式,且密码不会包含未转义的冒号,使用split按冒号拆分可安全获取对应凭证 - 若需配置vhost参数,可通过以下代码提取:
vhost = trimprefix(local.parsed_rabbitmq_url.path, "/")
内容的提问来源于stack exchange,提问作者gamechanger17
相关产品推荐
相关产品推荐

