据我所知,boto3将尝试从实例元数据服务加载凭据。 如果我在EC2实例中运行此代码,我希望没有问题。但是当我的代码停靠时,boto3将如何找到元数据服务?
答案 0 :(得分:0)
Amazon ECS 代理会填充 foverlaps()
环境变量,该变量可用于获取凭证。这些特殊变量仅用于使用 PID 1 进行处理。Dockerfile df1 <-
structure(list(Chromosome = c(1L, 1L, 2L, 3L), Min = c(500L,
400L, 300L, 2000L), Max = c(1000L, 1900L, 400L, 2100L), Group = 1:4,
ID = 1:4), row.names = c(NA, -4L), class = c("data.table",
"data.frame"))
df2 <-
structure(list(Gene = c("Gene1", "Gene1", "Gene2", "Gene3", "Gene4",
"Gene5", "Gene6"), Chromosome = c(1L, 1L, 1L, 2L, 2L, 2L, 3L),
Position = c(600L, 650L, 1700L, 350L, 355L, 450L, 2050L)), row.names = c(NA,
-7L), class = c("data.table", "data.frame"))
中指定的脚本获取 PID 1。
网络模式有很多,其他网络模式的细节可能会有所不同。可在以下位置找到更多信息:How can I configure IAM task roles in Amazon ECS to avoid "Access Denied" errors?
对于 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
网络模式如果您使用 PID 1 运行 ENTRYPOINT
,您会看到类似以下内容:
awsvpc
调试某些东西也很棘手,因为在通过 SSH 进入容器后,您使用的 PID 不是 1,这意味着如果您手动运行需要获取凭据的服务可能无法这样做。
ECS 任务元数据端点 documentation
答案 1 :(得分:-2)
在您机器的〜/ .aws中找到.aws文件夹,并将其移至Docker容器的/ root文件夹。
.aws包含具有AWS KEY和AWS PW的文件。
您可以轻松地将其从本地计算机复制到当前正在运行的容器中
docker cp ~/.aws <containder_id>:/root