【发布时间】:2022-06-23 12:04:33
【问题描述】:
我的 AWS 账户中有一个现有的 API。现在我尝试在引入任何资源策略更改后使用 ansible 重新部署 api。 根据 AWS,我需要使用以下 CLI 命令重新部署 api:
- name: deploy API
command: >
aws apigateway update-stage --region us-east-1 \
--rest-api-id <rest-api-id> \
--stage-name 'stage'\
--patch-operations op='replace',path='/deploymentId',value='<deployment-id>'
在上面,“deploymentId”与之前的部署在每次部署后都会有所不同,这就是为什么尝试将其创建为变量以便可以自动执行重新部署步骤的原因。
我可以使用以下 CLI 获取以前的部署信息:
- name: Get deployment information
command: >
aws apigateway get-deployments \
--rest-api-id 123454ne \
--region us-east-1
register: deployment_info
输出如下所示:
deployment_info.stdout_lines:
- '{'
- ' "items": ['
- ' {'
- ' "id": "abcd",'
- ' "createdDate": 1228509116'
- ' }'
- ' ]'
- '}'
我使用 deployment_info.items.id 作为 deploymentId 并且无法完成这项工作。现在坚持使用 Ansible CLI 命令从输出中获取 id 并在部署命令中将此 id 用作 deploymentId。
如何在部署命令中将此 id 用于 deploymentId?
【问题讨论】:
-
有什么理由不使用专用模块吗? docs.ansible.com/ansible/latest/collections/community/aws/…
-
@β.εηοιτ.βε 我正在更新需要重新部署的 REST API。这就是为什么不使用 ansible 模块的原因。我正在关注这个 aws 文档:docs.aws.amazon.com/apigateway/latest/developerguide/…
标签: json amazon-web-services ansible