【问题标题】:Run EMR job with output results in another AWS account S3 bucket在另一个 AWS 账户 S3 存储桶中运行 EMR 作业并输出结果
【发布时间】:2023-04-01 07:05:01
【问题描述】:
我正在尝试在 java 中运行 EMR 作业,其中输入文件位于一个帐户的 S3 存储桶中,输出结果写入另一个帐户的 S3 存储桶。我知道您可以将一个帐户的读/写权限授予另一个帐户,但是如何指定输入和输出位于不同的目录中?
例如,您可以将输入路径指定为“s3://{bucket-name}/{input-folder}/”,将输出路径指定为“s3://{bucket-name}/{output-folder” }/”。您将如何在另一个帐户中指定存储桶?
【问题讨论】:
标签:
java
amazon-web-services
amazon-s3
emr
【解决方案1】:
我们可以将凭证与 s3 位置一起传递。下面给出一个例子。
s3://ACCESSKEY:SECRETKEY@my-bucket/
这里ACCESSKEY和SECRETKEY是访问S3的access key和secret key。
my-buckey 是存储桶的名称。
【解决方案2】:
好的,我想通了。
您不能/不需要引用另一个账户中的 S3 存储桶的原因是,S3 存储桶的名称是唯一的。我没有意识到这一点。因此,上传到另一个账户的 s3 存储桶就像确保他们授予您 S3 写入权限并像往常一样将文件上传到您自己的存储桶一样简单。