【问题标题】:reading data from s3 by jupyter notebook in ubuntu ec2 deep learning instance通过 ubuntu ec2 深度学习实例中的 jupyter notebook 从 s3 读取数据
【发布时间】:2018-10-25 01:32:46
【问题描述】:

我在一个 s3 存储桶、my_bucket 和一个深度学习 ubuntu ec2 实例中有多个 txt 和 csv 数据集。我在这个实例上使用 Jupyter 笔记本。我需要从 s3 读取数据到 Jupyter。

我在 AWS 文档和他们的论坛以及其他博客中到处搜索(几乎)。这是我能做的最好的。但是,在获得密钥(两者)重新启动实例(以及 aws)后,我仍然收到 aws_key 错误。

我想知道是否有人跑到这里,或者你有更好的主意从那里获取数据。只要不使用http(这需要公开数据),我就可以打开。谢谢。

import pandas as pd
from smart_open import smart_open
import os

aws_key = os.environ['aws_key']
aws_secret = os.environ['aws_secret']

bucket_name = 'my_bucket'
object_key = 'data.csv'

path = 's3://{}:{}@{}/{}'.format(aws_key, aws_secret, bucket_name, object_key)

df = pd.read_csv(smart_open(path))

【问题讨论】:

    标签: python amazon-web-services amazon-s3 amazon-ec2 jupyter-notebook


    【解决方案1】:

    如果您导出aws_key 和第一个aws_secret,您的代码示例将起作用。像这样的东西会起作用(假设 bash 是你的 shell):

    export aws_key=<your key>
    export aws_secret=<your aws secret>
    python yourscript.py
    

    最佳做法是导出密钥和机密等内容,这样您就不会在源代码中存储机密/机密内容。如果您将这些值硬编码到您的脚本中并意外地将它们提交到公共存储库,那么有人很容易接管您的 aws 帐户。

    【讨论】:

      【解决方案2】:

      我在这里回答我自己的问题,也想听听社区关于不同解决方案的意见:通过

      直接从 Ubuntu 深度学习实例访问 S3 数据
      cd ~/.aws
      aws configure
      

      然后更新实例的 aws 密钥和密钥,以确保。使用以下命令检查 awscli 版本:

      aws --version
      

      阅读更多配置

      https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html
      

      在上面的代码中,“aws_key”和“aws_secret”没有被列为Ubuntu实例的环境变量,因此不能使用内置函数os.environ

      aws_key = 'aws_key'
      aws_secret = 'aws_secret'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-24
        • 1970-01-01
        • 2020-04-14
        相关资源
        最近更新 更多