Ansible: 无法通过 uri 模块在 Ansible 和 POST 中呈现 JSON

创建于 2015-11-26  ·  3评论  ·  资料来源: ansible/ansible

问题类型:错误报告
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错误,这表明数据未正确发送。

最有用的评论

这在 2.0 中已修复:只需将 _body_format: json_ 添加到 uri 模块(并删除 _convert_data=False_)
此外,在将 body_format 设置为 json 时,您不必自己设置 Content-Type 标头。

所有3条评论

列表信息

你好!

非常感谢您对 Ansible 的关注。 它真诚地对我们意义重大。

这似乎是一个用户问题,我们希望将这些内容发送到邮件列表或 IRC 频道。

  • IRC:irc.freenode.net 上的 #ansible
  • 邮件列表: https: //groups.google.com/forum/#!forum/ansible -project

如果你能在那里停下来,我们将不胜感激。 这使我们能够保持问题跟踪器的错误、拉取请求、RFE 等。

再次感谢您,我们期待在名单或 IRC 上见到您。 谢谢!

这在 2.0 中已修复:只需将 _body_format: json_ 添加到 uri 模块(并删除 _convert_data=False_)
此外,在将 body_format 设置为 json 时,您不必自己设置 Content-Type 标头。

此页面是否有帮助?
0 / 5 - 0 等级