首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elastic Beanstalk Docker容器访问S3存储桶获取数据

Elastic Beanstalk Docker容器访问S3存储桶获取数据
EN

Stack Overflow用户
提问于 2021-05-01 01:38:54
回答 1查看 109关注 0票数 0

我有一个非常简单的flask项目,只有一个端点,我可以使用Elastic Beanstalk将其部署到AWS中

唯一公开的端点转到S3检索csv文件并以原始格式发布数据,此配置运行良好,因此我知道elastic beanstalk的角色和权限可以正确工作以访问S3存储桶。

代码语言:javascript
复制
from flask import Flask
from flask_restful import Resource, Api
import io
import boto3
import pandas as pd

application = Flask(__name__)
api = Api(application)

s3 = boto3.resource('s3')
bucket = 'my_bucket'
key = 'my_file.csv'

class Home(Resource):
  def get(self):
    
    try:
      s3 = boto3.resource('s3')
      obj = s3.Object(bucket, key).get()['Body']
      data = pd.read_csv(io.BytesIO(obj.read()))
      print("S3 Object loaded.")
    except:
      print("S3 Object could not be opened.")
      
    print(data)
    csv = data.to_csv(index=False)
    return csv

#End points definition and application raise up
api.add_resource(Home, '/')

if __name__ == '__main__':
    application.run(host='0.0.0.0')

现在我尝试将其移动到一个容器中,所以我创建了一个Dockerfile来封装最小的应用程序:

代码语言:javascript
复制
# syntax=docker/dockerfile:1

FROM python:3.8-slim-buster

WORKDIR /app

COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt

COPY . .

CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]

因为我没有额外的卷或任何额外的东西,所以我的Dockerrun.aws.json几乎是空的

代码语言:javascript
复制
{
  "AWSEBDockerrunVersion": "1"
}

我错过了从容器内部获取对S3存储桶的访问权限的东西吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-01 10:49:35

在调试时,我发现我没有在dockerfile中公开端口,因此无法正确部署容器。我还添加了python作为入口点,脚本名称作为cmd。

最后,经过一些调查,还意识到容器继承了主机拥有的所有角色权限,因此不需要执行任何额外的任务

我的docker文件最终如下所示:

代码语言:javascript
复制
# syntax=docker/dockerfile:1

FROM python:3.8-slim-buster

WORKDIR /app

COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt

EXPOSE 5000

COPY . .

ENTRYPOINT [ "python" ]

CMD [ "app.py" ]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67338217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档