Я не могу получить список таблиц 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();