首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Boto3要求在坞站中使用AWS区域,而不在本地环境中

Boto3要求在坞站中使用AWS区域,而不在本地环境中
EN

Stack Overflow用户
提问于 2021-07-16 22:18:40
回答 2查看 107关注 0票数 0

我有一个使用Python的lambda的脚本设置,最终将连接到一个DynamoDB表。我使用亚马逊网络服务为DynamoDB提供的docker镜像在本地设置了一切(使用pipenv的虚拟环境),一切都运行得很顺利。然后,我尝试对接Python。当我在本地虚拟环境中运行我的表创建脚本时,它运行起来没有任何问题。当我在我的docker容器中运行相同的脚本时,我得到一个错误。我不确定有什么不同。现在,我使用这行代码来连接:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dynamodb = boto3.resource('dynamodb', endpoint_url="http://dynamodb:8000")

dynamodb是docker中服务的名称,所以这应该是可行的。当我用localhost:8000替换dynamodb:8000时,它在我本地的venv上工作得很好。当我在docker中运行它时,我得到

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
botocore.exceptions.NoRegionError: You must specify a region.

最大的问题是,为什么它要在docker中寻找一个区域,而不是本地。这是我的docker-compose:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
version: '3'
services:
    dynamodb:
        command: "-jar DynamoDBLocal.jar -sharedDb -optimizeDbBeforeStartup -dbPath ./data"
        image: "amazon/dynamodb-local:latest"
        container_name: dynamodb
        ports:
            - "8000:8000"
        volumes:
            - "./database_data:/home/dynamodblocal/data"
        working_dir: /home/dynamodblocal
    lambda:
        build: .
        container_name: user-rekognition-lambda
        volumes:
            - ./:/usr/src/app
EN

回答 2

Stack Overflow用户

发布于 2021-07-17 03:54:59

在亚马逊网络服务的博客local AWS Glue中,他们使用volume选项在只读模式下与docker容器共享~/.aws/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-v ~/.aws:/root/.aws:ro

对于您来说,这是在docker中重用主机工作站凭据的最简单方法。

票数 0
EN

Stack Overflow用户

发布于 2021-07-18 07:17:55

boto3有一个错误,即使您显式地给它一个endpoint_url,它仍然想知道一个region_name。为什么?我不知道,据我所知,它似乎没有使用这个名字。

在大多数人的设置中,$HOME/.aws/config包含一些默认的区域选择,因此boto3从该配置中选择region_name,然后忽略它……

由于您的docker映像可能没有该文件,简单的解决方案就是(例如)显式地将region_name='us-east-1'添加到boto3.resource()调用中。同样,您选择的特定区域名称并不重要- boto3将连接到您提供的网址,而不是连接到该区域。

因此,完整的命令变成:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dynamodb = boto3.resource('dynamodb',
    endpoint_url="http://dynamodb:8000",
    region_name="us-east-1")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68415785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文