![](/img/trans.png)
[英]How to avoid using AWS S3 environment variables when running an R script on Fargate
[英]Passing AWS S3 environment variables to docker with an R script
我有一个要写入S3 bucker的数据框。 我正在使用aws.s3完成此任务。 我的脚本如下所示。
library(aws.s3)
# set up AWS credentials
Sys.setenv("AWS_ACCESS_KEY_ID" = "ASUPERSECRETSTRING",
"AWS_SECRET_ACCESS_KEY" = "ASUPERSECRETSTRING",
"AWS_DEFAULT_REGION" = "us-east-somwhere")
s3write_using(my_data, FUN = write.csv,
bucket = "www.My_bucket",
object = unique_name)
我上面的脚本没有任何问题,但是我不喜欢对我的AWS凭证进行硬编码。 我该怎么做才能避免这种情况?
将您的ENV传递给docker run命令
sudo docker run -dit -e AWS_ACCESS_KEY_ID='your_key' -e AWS_SECRET_ACCESS_KEY='your_secret' -e AWS_DEFAULT_REGION='bucket_region' busybox sh
然后修改一下您的脚本。
test_env=Sys.getenv(c("R_HOME"))
AWS_ACCESS_KEY_ID=Sys.getenv("AWS_ACCESS_KEY_ID");
AWS_SECRET_ACCESS_KEY=Sys.getenv("AWS_SECRET_ACCESS_KEY")
AWS_SECRET_ACCESS_KEY=Sys.getenv("AWS_DEFAULT_REGION")
message("test env is:",test_env)
上面的代码将获得env以及一个测试env。 如果仍然需要调用Sys.setenv,则可以在获得env之后像这样传递。
Sys.setenv("AWS_ACCESS_KEY_ID" = AWS_ACCESS_KEY_ID,
"AWS_SECRET_ACCESS_KEY" = AWS_SECRET_ACCESS_KEY,
"AWS_DEFAULT_REGION" = AWS_SECRET_ACCESS_KEY)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.