You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible aws_secrets lookup bypath仅返回10个元素如何解决

问题原因

返回结果最多10条是AWS Secrets Manager的ListSecretsAPI默认分页阈值为10,低版本amazon.aws集合的aws_secret lookup插件未实现自动分页逻辑导致的。


解决方案

方案1:升级amazon.aws集合(推荐)

将amazon.aws集合升级到1.5.0及以上版本,该版本开始aws_secret lookup的bypath模式已支持自动拉取全量结果,无需额外分页配置。升级后原有配置可直接返回全量密钥,也可显式添加max_items参数指定最大拉取数量:

vars:
  #which environment: dev, test,uat, prd
  my_env: dev
  aws_secret_path: mypath/{{my_env}}

tasks:
  - name: "get all secrets from AWS Secrets Manager"
    set_fact:
      secret_value: "{{ lookup('amazon.aws.aws_secret', aws_secret_path, on_missing='skip', bypath=true, region='eu-west-1', max_items=100 )}}"

注意:原配置中lookup参数里的aws_secret_path不需要额外嵌套{{}},Jinja在变量值位置可直接识别变量


方案2:使用aws_secret_info模块适配低版本集合

如果无法升级依赖集合,可改用amazon.aws.aws_secret_info模块先拉取指定路径下的全量密钥元数据,再循环拉取每个密钥的明文值:

vars:
  my_env: dev
  aws_secret_path: mypath/{{my_env}}

tasks:
  - name: 获取指定路径下所有密钥元数据
    amazon.aws.aws_secret_info:
      path: "{{ aws_secret_path }}"
      region: eu-west-1
    register: all_secrets_meta

  - name: 拉取所有密钥的明文值
    set_fact:
      secret_value: "{{ secret_value | default({}) | combine({item.name: lookup('amazon.aws.aws_secret', item.name, region='eu-west-1', on_missing='skip')}) }}"
    loop: "{{ all_secrets_meta.secrets }}"

内容的提问来源于stack exchange,提问作者Greg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:54:01