Передача переменных среды AWS S3 в докер с помощью сценария R - PullRequest
0 голосов
/ 08 октября 2018

У меня есть фрейм данных, который я хотел бы записать в 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.Что я могу сделать, чтобы предотвратить это?

1 Ответ

0 голосов
/ 08 октября 2018

Передайте ENV команде запуска Docker

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...