REST API响应头中值的Ansible分析

REST API响应头中值的Ansible分析,ansible,http-headers,Ansible,Http Headers,我一定错过了什么明显的东西。我需要从GETAPI调用的响应头中的一个键中提取值 我正在尝试获取客户端版本的值,但似乎无法提取该数据 八角版本:2.4.2.0 剧本: - name: Get test client version uri: url: "{{ current_client_version_url }}" method: GET header: Content-Type: "application/json&quo

我一定错过了什么明显的东西。我需要从GETAPI调用的响应头中的一个键中提取值

我正在尝试获取客户端版本的值,但似乎无法提取该数据

八角版本:2.4.2.0

剧本:

- name: Get test client version
  uri:
    url: "{{ current_client_version_url }}"
    method: GET
    header:
      Content-Type: "application/json"
  register: resp

- debug: msg={{ resp }}
{
    "msg": {
        "content_length": "180",
        "status": 200,
        "cookies": {},
        "x_ratelimit_reset": "1",
        "json": {
            "defaultContainerAlias": "_default",
            "exchangeContainerAlias": null,
            "hasContainersEnabled": true,
            "hasExchangeEnabled": false,
            "hasTargetedOffers": false,
            "autoDeleteItemReferences": false
        },
        "url": "https://some.url.goes.here.com/v1/subdir/metadata",
        "changed": false,
        "vary": "Accept-Encoding, User-Agent",
        "x_envoy_upstream_service_time": "3",
        "failed": false,
        "connection": "close",
        "content_type": "application/json;charset=utf-8",
        "client_version": "1a2b3c4d5f",
        "date": "Tue, 04 Aug 2020 22:34:34 GMT",
        "redirected": false,
        "x_ratelimit_remaining": "197",
        "msg": "OK (180 bytes)"
    },
    "changed": false,
    "_ansible_verbose_always": true,
    "_ansible_no_log": false
}
输出:

- name: Get test client version
  uri:
    url: "{{ current_client_version_url }}"
    method: GET
    header:
      Content-Type: "application/json"
  register: resp

- debug: msg={{ resp }}
{
    "msg": {
        "content_length": "180",
        "status": 200,
        "cookies": {},
        "x_ratelimit_reset": "1",
        "json": {
            "defaultContainerAlias": "_default",
            "exchangeContainerAlias": null,
            "hasContainersEnabled": true,
            "hasExchangeEnabled": false,
            "hasTargetedOffers": false,
            "autoDeleteItemReferences": false
        },
        "url": "https://some.url.goes.here.com/v1/subdir/metadata",
        "changed": false,
        "vary": "Accept-Encoding, User-Agent",
        "x_envoy_upstream_service_time": "3",
        "failed": false,
        "connection": "close",
        "content_type": "application/json;charset=utf-8",
        "client_version": "1a2b3c4d5f",
        "date": "Tue, 04 Aug 2020 22:34:34 GMT",
        "redirected": false,
        "x_ratelimit_remaining": "197",
        "msg": "OK (180 bytes)"
    },
    "changed": false,
    "_ansible_verbose_always": true,
    "_ansible_no_log": false
}
我认为这将是一个常规的Ansible输出,并尝试:

resp.msg.client_版本

响应消息['client_version']

响应消息[客户端版本]

当我在debug语句中引用resp.msg时,我只得到:

"msg": "OK (180 bytes)"
这对我来说毫无意义


非常感谢您的帮助。

解决方案是相应的客户端版本。我一贴在这里就觉得很有趣了。还有另一个键msg