Неудачные попытки записи в DynamoDB Local - PullRequest
0 голосов
/ 16 марта 2020

Я недавно обнаружил DynamoDB Local и начал встраивать его в свой проект для локальной разработки. Я решил go маршрут изображения docker (в отличие от загружаемого файла .jar.

При этом я получил образ и запустил его, создал таблицу и могу успешно взаимодействовать с ней. контейнер docker через aws cli. aws dynamodb list-tables --endpoint-url http://localhost:8042 успешно возвращает таблицу, которую я создал ранее.

Однако, когда я запускаю свою функцию лямбды и устанавливаю свою конфигурацию aws следующим образом.

const axios = require('axios')
const cheerio = require('cheerio')
const randstring = require('randomstring')
const aws = require('aws-sdk')
const dynamodb = new aws.DynamoDB.DocumentClient()

exports.lambdaHandler = async (event, context) => {

    let isLocal = process.env.AWS_SAM_LOCAL

    if (isLocal) {
        aws.config.update({
            endpoint: new aws.Endpoint("http://localhost:8042")
        })
    }

(который, как я подтвердил, устанавливается) фактически записывает данные в таблицу (с тем же именем локального экземпляра DynamodB) в живом веб-сервисе AWS, а не в локальный контейнер и таблицу.

Стоит также отметить, что я не могу подключиться к локальному экземпляру DynamoDB с помощью инструмента AWS No SQL Workbench, хотя он также настроен для указания на http://localhost:8042 ...

Я что-то упустил? Любая помощь будет принята с благодарностью. Я могу предоставить любую дополнительную информацию, если я еще этого не сделал: D

Спасибо.

1 Ответ

0 голосов
/ 16 марта 2020

Изменения конфигурации SDK, такие как регион или конечная точка, не применяются задним числом к ​​существующим клиентам (обычный клиент DynamoDB или клиент документов).

Итак, сначала измените конфигурацию, а затем создайте свой клиентский объект. Или просто передайте параметры конфигурации в конструктор клиента.

...