我正在做一个剧本,我正在等待剧本收集网络请求并生成输出。因为我正在向多个接口发出请求,所以我需要拆分它们。我该怎么做呢?
tasks:
- name: Collecting Endpoints
uri:
url: "https://applicationserver.com/api/app_set"
method: GET
return_content: yes
validate_certs : no
body_format: json
register: Result
- name: Temp to variable.
set_fact:
Endpoint: "{{ Result.json | json_query('[].name[]') }}"
下面是我对第一个任务www.example.com的响应https://paste.chapril.org/?142535f7072d47ed#4TahPDaDGPkP1NxxB3gzZP86SkusJ9Kk6jSfqmSy7wK7
根据我从第一个任务中收集的数据,我想从内部请求每个过滤器的数据。
这是我的任何端点的JSON响应。https://paste.chapril.org/?44e8f5462b105285#E2J7LzRwWSCJXR8BetzB1pewnV2ye1Fr1g741VacwBJb
- name: Get Responses All.
uri:
url: "https://applicationserver.com/api/app_set/{{ item }}"
method: GET
return_content: yes
body_format: json
validate_certs : no
register: Resultsofall
loop: "{{ Endpoint }}"
完成此任务后,我将接收所有端点的所有Json数据。
如何从整个结果中过滤数据并进行这样的循环?app_sets
Index 1 (Which is counting by endpoint)
AppSetName (Getting from the first task (json_query('[].name[]')
StatefulAppSetName (Getting from the first task( ('[].labels[].AttachedToStatefulAppSet[]'))
Apps (Getting from the second task json_query('[].json.pods.app')
个Index 2 (Which is counting by endpoint)
AppSetName (Getting from the first task (json_query('[].name[]')
StatefulAppSetName (Getting from the first task( ('[].labels[].AttachedToStatefulAppSet[]'))
Apps (Getting from the second task json_query('[].json.pods.app')
1条答案
按热度按时间6qfn3psc1#
您需要正确地获取json_query,它基于jmespath .假设您对json中的服务名称感兴趣,您的查询应该是:
如果您对服务和pod感兴趣,您可以使用类似于
我建议使用https://jmespath.org/来开发和测试查询。