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

求助:如何用Ansible在AWS DynamoDB中创建并更新hostID条目?

问题分析与解决方案

你用错模块了——community.aws.dynamodb_table 是用来管理DynamoDB表结构(比如创建表、修改主键、调整吞吐量等)的,根本不是用来操作表中数据(增删改查item)的工具。要实现创建/更新DynamoDB item的需求,应该用 community.aws.dynamodb_item 模块。

正确的Ansible任务示例

1. 创建或覆盖item(hostID存在时直接覆盖,不存在则新增)

- name: 新增/更新DynamoDB表中的hostID条目
  community.aws.dynamodb_item:
    region: "{{ aws_ssm_region }}"
    table_name: "{{ dynamodb_table_name }}"
    key:
      hostID: "{{ manage_instance_id }}"  # 指定表的hash主键
    item:
      hostID: "{{ manage_instance_id }}"
      # 可按需添加其他属性,比如:
      # last_modified: "{{ ansible_date_time.iso8601 }}"
    state: present  # present表示存在则更新,不存在则创建

2. 仅更新已存在item的部分属性(避免覆盖整个条目)

如果只想修改已存在条目的特定属性,不想覆盖整个item,可使用operation: update配合表达式实现:

- name: 更新DynamoDB表中已存在的hostID条目
  community.aws.dynamodb_item:
    region: "{{ aws_ssm_region }}"
    table_name: "{{ dynamodb_table_name }}"
    key:
      hostID: "{{ manage_instance_id }}"
    operation: update
    update_expression: "SET last_modified = :time"
    expression_attribute_values:
      ":time": "{{ ansible_date_time.iso8601 }}"

额外注意

  • 确保已安装community.aws集合:执行ansible-galaxy collection install community.aws
  • 运行任务的主机需具备访问目标DynamoDB表的IAM权限(可通过IAM角色、AWS配置文件或环境变量配置)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 12:23:11