从“ aws ecr get-login”获取结果时出现问题

时间:2019-01-17 09:12:08

标签: amazon-web-services aws-lambda aws-cli aws-ecr

在给出以下命令时出现以下错误。

index.html

错误

index.html

我的管理员已授予我对此“ GetAuthorizationToken”资源的访问权限。

我认为最可能的问题是此命令使用了'arn:aws:iam :: 314xxxx91079:user / git'用户。当我登录到aws控制台时,看到的用户名(IAM)如下。

aws ecr get-login --region eu-central-1

如何使“ get-login”使用此用户名而不是user / git。我对aws cli非常陌生,此命令恰好是构建步骤之一。

我们非常感谢您的帮助。如果问题很愚蠢,你们可以投票关闭它,我将其删除。请不要讨厌评论!

4 个答案:

答案 0 :(得分:12)

对于新版本,只需使用

aws ecr get-login-password \
        --region us-east-1 | docker login \
        --username AWS \
        --password-stdin <account-id>.dkr.ecr.us-east-1.amazonaws.com

答案 1 :(得分:3)

AWS cli命令看起来不错,输出应该类似于下面的

Sample output: 

docker login -u AWS -p password https://aws_account_id.dkr.ecr.eu-central-1.amazonaws.com

请检查您是否正确设置了供cli使用的AWS凭证。

如果未完成,请尝试以下操作以配置凭据

aws configure

AWS Access Key ID [None]: Access Key
AWS Secret Access Key [None]: Secret Key
Default region name [None]: eu-central-1
Default output format [None]: json

注意:这应该是您的默认配置文件,否则也要为ecr get-login命令传递配置文件名称

aws ecr get-login --region eu-central-1 --profile <profile name>

希望这会有所帮助!

答案 2 :(得分:1)

使用较新版本的 AWS CLI,我们可以使用 get-login-password 请求 ECR docker login 的密码并将密码通过管道传输到 Docker login,例如:

aws ecr get-login-password \
    --region us-east-1 \
| docker login \
    --username AWS \
    --password-stdin 123456789101.dkr.ecr.us-east-1.amazonaws.com

文档:https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ecr/get-login-password.html

使用 CLI V2,以下语法将引发错误:

$(aws ecr get-login --no-include-email --region us-east-1)
 aws ecr get-login --no-include-email --region us-east-1
 usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
 To see help text, you can run:
 aws help
 aws <command> help
 aws <command> <subcommand> help
 aws: error: argument operation: Invalid choice, valid choices are:

答案 3 :(得分:-1)

请在将本地docker映像推送到AWS ECR的步骤下面找到 我们可以成功登录:

  1. C:> aws ecr get-login-password --no-verify 我们将获得密码。请在密码列​​下面找到

  2. C:\ docker登录--username AWS --password eyJwYXlsb2Fk ... kRBVEFfS0VZIn0 = https://123456789012.dkr.ecr.us-east-1.amazonaws.com

  3. docker标签user-mysql account_id.dkr.ecr.us-east-1.amazonaws.com/dockerregistry

  4. 将图像推送到ECR上:C:\ docker push account_id.dkr.ecr.us-east-1.amazonaws.com/dockerregistry

用户名:AWS
密码:eyJwYXlsb2Fk ... kRBVEFfS0VZIn0 =
ProxyEndpoint:https://123456789012.dkr.ecr.us-west-2.amazonaws.com
端点:https://123456789012.dkr.ecr.us-west-2.amazonaws.com
ExpiresAt:9/26/2017 6:08:23 AM
命令:docker login --username AWS --password eyJwYXlsb2Fk ... kRBVEFfS0VZIn0 = https://123456789012.dkr.ecr.us-west-2.amazonaws.com