Macで動作しているDockerコンテナの内部からDynamoDBに接続しようとすると、最近(長いタイムアウト後に)EndpointConnectionErrorが発生し始めました。以前は同じコードと設定がうまくいきました。botocore.exceptions.EndpointConnectionError from Mac Dockerコンテナ
ここではいくつかのサンプルコードです:
>>> from boto3 import resource
>>> r = resource('dynamodb')
>>> table = r.Table('Users')
>>> table.put_item(Item={'id':'987987'})
私の〜/ .aws/configに:私は(マックOS)からコンテナを再構築し、再起動して使用してい
[default]
output = json
region = us-east-1
コード:
は#!/bin/sh
docker-machine ssh default "docker ps | awk 'NR > 1 {print \$1}' | xargs --no-run-if-empty docker kill"
docker build -t <image_name> .
docker-machine ssh default "docker run -p 80:80 -v /var/datenight_secret:/var/www/.aws <image_name>" &
スタックトレース:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.4/dist-packages/boto3/resources/factory.py", line 518, in do_action
response = action(self, *args, **kwargs)
File "/usr/local/lib/python3.4/dist-packages/boto3/resources/action.py", line 83, in __call__
response = getattr(parent.meta.client, operation_name)(**params)
File "/usr/local/lib/python3.4/dist-packages/botocore/client.py", line 258, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/local/lib/python3.4/dist-packages/botocore/client.py", line 537, in _make_api_call
operation_model, request_dict)
File "/usr/local/lib/python3.4/dist-packages/botocore/endpoint.py", line 117, in make_request
return self._send_request(request_dict, operation_model)
File "/usr/local/lib/python3.4/dist-packages/botocore/endpoint.py", line 146, in _send_request
success_response, exception):
File "/usr/local/lib/python3.4/dist-packages/botocore/endpoint.py", line 219, in _needs_retry
caught_exception=caught_exception)
File "/usr/local/lib/python3.4/dist-packages/botocore/hooks.py", line 227, in emit
return self._emit(event_name, kwargs)
File "/usr/local/lib/python3.4/dist-packages/botocore/hooks.py", line 210, in _emit
response = handler(**kwargs)
File "/usr/local/lib/python3.4/dist-packages/botocore/retryhandler.py", line 183, in __call__
if self._checker(attempts, response, caught_exception):
File "/usr/local/lib/python3.4/dist-packages/botocore/retryhandler.py", line 251, in __call__
caught_exception)
File "/usr/local/lib/python3.4/dist-packages/botocore/retryhandler.py", line 274, in _should_retry
return self._checker(attempt_number, response, caught_exception)
File "/usr/local/lib/python3.4/dist-packages/botocore/retryhandler.py", line 314, in __call__
caught_exception)
File "/usr/local/lib/python3.4/dist-packages/botocore/retryhandler.py", line 223, in __call__
attempt_number, caught_exception)
File "/usr/local/lib/python3.4/dist-packages/botocore/retryhandler.py", line 356, in _check_caught_exception
raise caught_exception
botocore.exceptions.EndpointConnectionError: Could not connect to the endpoint URL: "https://dynamodb.us-east-1.amazonaws.com/"
私はus-east-2またはeu-west-1を試しても、同じ動作(長時間ハングした後、同じスタックトレース)が発生します。 us-east-1 EC2ホストまたはMac OSでは、同じ設定ファイルと認証情報ファイルが正常に動作します。
this questionに基づいて、私はHTTP_PROXYとHTTPS_PROXYが両方とも空白であることを保証しました。
PythonバージョンはPython 3.4.3です。
コンテナからインターネットにアクセスできますか? 'ping www.google.com' – helloV