ConfigError: Missing region in config

En bref — Le SDK AWS ne sait pas à quelle région parler. Définis-la explicitement sur le client (new DynamoDBClient({ region: 'us-east-1' })), ou via la variable d'environnement AWS_REGION, ou dans ~/.aws/config.

Ce que ça signifie

ConfigError: Missing region in config

Chaque endpoint DynamoDB est régional, donc le SDK doit résoudre une région avant de pouvoir envoyer une requête. Cette formulation exacte vient du SDK AWS pour JavaScript v2 (désormais en fin de support), qui ne sélectionne pas de région par défaut — lorsqu'aucune de ses sources de configuration n'en fournit une, il lève cette erreur avant tout appel réseau. Les autres SDK et l'AWS CLI échouent avec leur propre équivalent lorsqu'aucune région n'est configurée.

Pourquoi ça arrive

  • Aucune région passée au client et pas de AWS_REGION dans l'environnement (le SDK JavaScript lit AWS_REGION ; l'AWS CLI honore aussi AWS_DEFAULT_REGION et --region).
  • Une région dans ~/.aws/config que le SDK ne lit jamais — le SDK JavaScript v2 ne charge le fichier de configuration partagé que si la variable d'environnement AWS_SDK_LOAD_CONFIG est définie ; sans elle, une ligne region = parfaitement valide est ignorée.
  • Une faute de frappe dans le nom de la variable d'environnement (AWS_REGIONS, REGION).

Comment le corriger (l'une de ces options)

  1. Définis-la sur le client (le plus explicite) :
    import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
    const client = new DynamoDBClient({region: 'us-east-1'});
  2. Variable d'environnement :
    export AWS_REGION=us-east-1
  3. Fichier de configuration AWS (~/.aws/config) :
    [default]
    region = us-east-1
    Sur le SDK JavaScript v2, définis aussi AWS_SDK_LOAD_CONFIG=1 pour que le SDK lise réellement ce fichier (l'AWS CLI et la plupart des autres SDK le lisent par défaut).
  4. DynamoDB Local ? Il a quand même besoin d'une chaîne de région (n'importe quelle valeur — elle ne sert qu'à nommer le fichier de base de données local) plus un endpoint :
    const client = new DynamoDBClient({region: 'local', endpoint: 'http://localhost:8000'});

Pointe DynoTable vers Local

DynoTable stocke la région sur chaque profil AWS — Settings → Profiles → Add Profile, puis choisis la région dans la liste déroulante avant d'enregistrer. La pastille de profil en bas de la barre latérale affiche la région active ; appuie sur ⌘P pour en changer. Test Connection échoue tout de suite quand la région est vide ou que le fichier de config partagé est ignoré par un SDK qui a besoin d'AWS_SDK_LOAD_CONFIG.

Pour Local, sers-toi de Download Local (ou pointe l'endpoint du profil sur http://localhost:8000) et mets n'importe quelle chaîne de région — DynoTable garde endpoint et région sur le même profil, ils ne peuvent donc pas diverger. Une fois connecté, ouvre une table avec ⌘K et confirme que la requête part vers la région attendue. Le query builder visuel est pratique pour prouver la région du profil avant de coller les mêmes réglages dans du code applicatif.

Quand tu débogues les différences de résolution de région entre SDK v2 et v3, compare côte à côte les réglages de profil qu'utilise DynoTable et les variables d'environnement de ton application. Le staging (⌘S) te laisse tester une écriture sur le profil configuré avant que ton job par lots ne tourne.

Sources

Erreurs liées

Références

Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.

Travaille avec DynamoDB sans la Console

Un client de bureau rapide pour DynamoDB qui exécute le vrai SQL que DynamoDB ne peut pas — JOINs, GROUP BY, agrégations — avec édition visuelle et un agent IA sur tes propres clés Bedrock.

Essai gratuit de 30 jours, sans carte bancaire — ensuite la formule Gratuit, sans limite de durée.