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 代理。

30 天免費試用,無需信用卡 — 之後為無時間限制的免費方案。