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

通过AWS DataPipeline创建的EC2无法执行DynamoDB建表命令求助

问题排查与解决建议

1. JSON配置文件语法错误

你的definitions.json里instance对象的subnetId字段存在语法错误:

"subnetId":"subnet-YYYYY],

末尾缺失双引号,正确写法应为:

"subnetId":"subnet-YYYYY",

JSON语法错误会导致管道无法正确解析配置,直接阻碍后续Shell命令的触发执行。

2. 角色配置错误

Default对象中的resourceRole配置有误,你设置成了DataPipelineDefaultRole,正确的资源角色应该是DataPipelineDefaultResourceRole:

{
    "id": "Default",
    // ... 其他配置
    "role": "DataPipelineDefaultRole",
    "resourceRole": "DataPipelineDefaultResourceRole" // 修正此处
}

错误的角色配置会导致EC2实例无法获取执行DynamoDB操作的权限,即便实例创建成功,也无法正常运行AWS CLI命令。

3. 网络连通性问题

你将associatePublicAddress设为false,如果EC2实例部署在私有子网:

  • 需确保VPC内配置了NAT网关,允许实例访问公网以连接DynamoDB服务;
  • 或者配置DynamoDB VPC端点,让实例无需公网即可直接访问DynamoDB。
    没有网络连通性的话,AWS CLI无法调用DynamoDB API,建表命令自然无法执行。

4. IAM权限验证

确认DataPipelineDefaultResourceRole包含dynamodb:CreateTable权限,虽然官方默认角色自带该权限,但如果角色被自定义修改过,可能会丢失权限,可通过IAM控制台检查角色的权限策略。

5. 官网维护期间的日志查看方案

虽然无法通过DataPipeline控制台查看日志,但可以直接登录创建的EC2实例获取信息:

  • 查看DataPipeline代理日志,默认路径为/var/log/aws/datapipeline/;
  • 定位Shell命令的执行日志,通常在任务对应的工作目录下,可通过代理日志找到具体路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 13:35:30