Я не могу получить список таблиц DynamoDB из локального стека, запущенного с помощью Docker

Я установил localstack и awscli в контейнере докера. Я запускаю разные команды aws для вывода списка потоков и блоков, но когда я попытался отобразить таблицы DynamoDB (как показано ниже), это не удалось:

aws --region us-east-1 --endpoint-url=http://localhost:4569 dynamodb list-tables

Вот ошибка, которую я получаю:

2018-07-12T09:26:35:ERROR:localstack.services.generic_proxy: Error forwarding request: HTTPConnectionPool(host='127.0.0.1', port=4564): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f68941a43d0>: Failed to establish a new connection: [Errno 111] Connection refused',)) Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/localstack/services/generic_proxy.py", line 201, in forward
    headers=forward_headers)
  File "/usr/local/lib/python2.7/site-packages/requests/api.py", line 112, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 508,in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 618,in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/requests/adapters.py", line 508,in send
    raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=4564): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f68941a43d0>: Failed to establish a new connection: [Errno 111] Connection refused',))

Я не нашел в Интернете ни одного ответа, который бы решил мою проблему.

Если у кого-то есть подсказка или идея, я буду благодарен.

заранее спасибо

0 ответов

Если вы хотите просмотреть свою базу данных Dynamo в локальном стеке, вы можете установить Commandeer, который дает вам пользовательский интерфейс как для локального, так и для AWS. https://getcommandeer.com/

Если вы используете Java, вы можете использовать jar библиотека для моделирования некоторых компонентов Amazon:

Сначала вам нужно добавить следующий компонент в свой pom.xml чтобы иметь возможность инициализировать локальный стек непосредственно во время теста:

<dependency>
    <groupId>cloud.localstack</groupId>
    <artifactId>localstack-utils</artifactId>
    <version>0.2.0</version>
    <scope>test</scope>
</dependency>

Затем вам нужно указать следующую библиотеку, если вам нужно использовать динамо-машину, потому что последняя предоставлена ​​изaws не совместимы с последней версией localstack:

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-core</artifactId>
    <version>1.11.721</version>
    <scope>test</scope>
</dependency>

Теперь вы можете использовать следующие аннотации, чтобы создать экземпляр стека с помощью докера, изображения будут извлечены автоматически, если они отсутствуют в системе. Таким образом, нет необходимости запускать какой-либо образ docker / docker-compose.

@LocalstackDockerProperties(services = {"dynamodb"})
@ExtendWith(LocalstackDockerExtension.class)
@Slf4j
public class TestPipelineComplete {

public static final String AWS_ACCESS_KEY_ID = "foo";
public static final String AWS_SECRET_ACCESS_KEY = "bar";
    static {
        System.setProperty("AWS_ACCESS_KEY_ID", AWS_ACCESS_KEY_ID);
        System.setProperty("AWS_SECRET_ACCESS_KEY", AWS_SECRET_ACCESS_KEY);
    }
}

Теперь, если вам нужно инициализировать DynamoDB client вы можете использовать следующую строку:

final AmazonDynamoDB clientDynamoDB = cloud.localstack.TestUtils.getClientDynamoDB();
Другие вопросы по тегам