ConfigError: Missing region in config

TL;DR — AWS SDK 不知道要与哪个区域对话。在客户端上显式设置它(new DynamoDBClient({ region: 'us-east-1' })),或通过 AWS_REGION 环境变量,或在 ~/.aws/config 中设置。

含义

ConfigError: Missing region in config

每个 DynamoDB 端点都是分区域的,因此 SDK 必须在发送请求之前解析出一个区域。这个确切的措辞来自 AWS SDK for JavaScript v2(现已终止支持),它默认不选择区域——当它的配置来源没有一个提供区域时,它会在任何网络调用之前抛出这个错误。其他 SDK 和 AWS CLI 在没有配置区域时会以它们自己的等价形式失败。

为什么会发生

  • 没有向客户端传入区域,且环境中没有 AWS_REGION(JavaScript SDK 读取 AWS_REGION;AWS CLI 还认可 AWS_DEFAULT_REGION--region)。
  • ~/.aws/config 中有一个区域,但 SDK 从不读取它——JavaScript SDK v2 只有在设置了 AWS_SDK_LOAD_CONFIG 环境变量时才加载共享配置文件;没有它,一行完全正常的 region = 会被忽略。
  • 环境变量名中有拼写错误AWS_REGIONSREGION)。

How to fix it (any one of these)

  1. 在客户端设置(最显式):
    import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
    const client = new DynamoDBClient({region: 'us-east-1'});
  2. 环境变量:
    export AWS_REGION=us-east-1
  3. AWS配置文件~/.aws/config):
    [default]
    region = us-east-1
    在 JavaScript SDK v2 上,还设置 AWS_SDK_LOAD_CONFIG=1,以便 SDK 实际读取此文件(CLI 和大多数其他 SDK 默认情况下读取它)。
  4. DynamoDB 本地? 它仍然需要 a 区域字符串(任何值 - 它仅用于命名本地数据库文件)加上 endpoint
    const client = new DynamoDBClient({region: 'local', endpoint: 'http://localhost:8000'});

将 DynoTable 指向 Local

DynoTable 在每个 AWS profile 上存储区域 — Settings → Profiles → 添加 Profile,然后在保存之前从下拉列表中选择区域。侧边栏底部的轮廓芯片显示活动区域;按⌘P切换。当区域为空白或共享配置文件被需要 AWS_SDK_LOAD_CONFIG 的 SDK 忽略时,测试连接会快速失败。对于本地,使用 下载本地 (或将配置文件端点指向 http://localhost:8000)并设置任何区域字符串 — DynoTable 使端点和区域保持在同一配置文件上,这样它们就不会漂移。连接后,使用 ⌘K 打开一个表,并确认请求发送到你期望的区域。在将相同的设置粘贴到应用程序代码中之前,视觉效果 query builder 对于证明配置文件区域非常有用。调试 SDK v2 与 v3 区域分辨率差异时,请将 DynoTable 使用的配置文件设置与应用程序的环境变量并排进行比较。暂存 (⌘S) 允许你在批处理作业运行之前根据配置的配置文件测试写入。

来源

相关错误

参考资料

最后核实于 2026-07-13,依据上方链接的 AWS 官方文档。

无需控制台即可使用 DynamoDB

一款快速的 DynamoDB 桌面客户端,可运行 DynamoDB 无法执行的真正 SQL——JOINs、GROUP BY、聚合——并支持可视化编辑和运行在你自己的 Bedrock 密钥上的 AI agent。

30 天免费试用,无需信用卡 — 之后为无时间限制的免费版。