使用 AWS 库,我可以访问 S3,但如果我尝试使用 Spark 程序(使用 NativePackager 构建)访问 S3,这将不起作用。
我尝试了 s3://、s3n:// 和 s3a://。
让我展示一些我的测试:
测试1:
如果我没有什么特别的。如前所述失败。
测试2:
在https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html之后,我在调用我的代码之前执行了此代码:
curl --location http://169.254.170.2/$$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI > credentials.txt
export AWS_ACCESS_KEY_ID=`cat credentials.txt | perl -MJSON::PP -E 'say decode_json(<>)->{"AccessKeyId"}'`
export AWS_SECRET_ACCESS_KEY=`cat credentials.txt | perl -MJSON::PP -E 'say decode_json(<>)->{"SecretAccessKey"}'`
之前的一些错误
测试3:
如果我用我的个人密钥设置 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。AWS 库和 Spark Work
考虑到测试 3有效,我的代码有效。出于显而易见的原因,我不喜欢在周围维护钥匙。问题是:
如何在我的 Spark 作业上使用 AWS Batch (ECS) 创建的凭证?