问题类型:错误报告
Ansible 版本:1.9.4
环境:OSX 10.11.1
摘要:使用lookup
来呈现传递到uri
模块的body
参数中的模板不起作用。 它会引发TypeError: unhashable type
错误。 我打开了一个关于这个的StackOverflow 问题,并认为在这里发布它也是有意义的。
重现步骤:
运行此任务:
- name: Post
uri:
url: https://hooks.slack.com/endpoint
method: POST
return_content: no
HEADER_Content-Type: "application/json"
body: "{{ lookup('template', '../templates/my.json.j2', convert_data=False) }}"
在my.json.j2
使用这个:
{
"channel": "chatops",
"username": "Deploy",
"text": "TEST Deploy!",
"icon_emoji": ":ghost:"
}
将 JSON 折叠成模板内的一行具有相同的效果。 通过to_json
传递lookup
响应也不起作用。 然而,采用折叠的 JSON 并_直接_在剧中使用它确实有效。
预期结果:正确的 JSON 发送到端点
实际结果: TypeError: unhashable type
错误; 此外,在某些情况下,端点会返回not valid JSON
错误,这表明数据未正确发送。
你好!
非常感谢您对 Ansible 的关注。 它真诚地对我们意义重大。
这似乎是一个用户问题,我们希望将这些内容发送到邮件列表或 IRC 频道。
如果你能在那里停下来,我们将不胜感激。 这使我们能够保持问题跟踪器的错误、拉取请求、RFE 等。
再次感谢您,我们期待在名单或 IRC 上见到您。 谢谢!
这在 2.0 中已修复:只需将 _body_format: json_ 添加到 uri 模块(并删除 _convert_data=False_)
此外,在将 body_format 设置为 json 时,您不必自己设置 Content-Type 标头。
最有用的评论
这在 2.0 中已修复:只需将 _body_format: json_ 添加到 uri 模块(并删除 _convert_data=False_)
此外,在将 body_format 设置为 json 时,您不必自己设置 Content-Type 标头。