无论我选择什么实例名称,每当我在本地实例上执行以下操作时:
aws deploy register --instance-name test --tags "Key=Name,Value=test" --region us-west-2 --debug
抛出以下异常(总是):
2016-04-12 11:02:52,625 - MainThread - awscli.errorhandler - DEBUG - HTTP Response Code: 400
ERROR
A client error (InvalidIamUserArnException) occurred when calling the RegisterOnPremisesInstance operation: Iam User ARN
arn:aws:iam::xxx:user/AWS/CodeDeploy/test is not in a valid format
Register the on-premises instance by following the instructions in "Configure Existing On-Premises Instances by Using AWS CodeDeploy" in the AWS CodeDeploy User Guide.
尽管出现此错误,用户仍然在亚马逊上创建,我可以继续使用以下内容注册该实例:
aws deploy register-on-premises-instance --instance-name test --iam-user-arn arn:aws:iam::xxx:user/test
aws deploy install --override-config --config-file codedeploy.onpremises.yml --region us-west-2 --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi
实例已注册并且用户已创建,但在部署时,我总是得到"没有主机成功"。 codedeploy代理的日志显示没有错误。
我不确定这里发生了什么,因为在任何一端都没有登录,在codedeploy控制台或在前端机器上的codedeploy代理。有什么想法吗?
请注意我使用的是Windows Embedded Standard 2010(不在支持的列表中)和最新版本的aws cli,但我过去已经成功部署了它(使用以前版本的aws cli)。
答案 0 :(得分:0)
想出来,如果你尝试让他们部署注册表'为您创建IAM用户。但是,如果您首先创建用户(通过控制台或aws cli),那么它将起作用。
您可以传递选项' - iam-user-arn arn:aws:iam :: xxx:user / OnPremCodeDeploy'使用&awes部署注册表'之后命令。
我手动创建用户,使用正确的访问键手动创建了本地yml,最后运行了:
aws deploy install --overide-config --config-file conf.onpremises.yml --region us-west-2 --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi
*至少w / codedeployagent OFFICIAL_1.0.1.950_msi和嵌入式窗口
答案 1 :(得分:0)
您是否可以检查使用CodeDeploy注册本地实例的IAM用户是否具有适当的权限?包括以下内容。
"iam:CreateAccessKey",
"iam:CreateUser",
"iam:DeleteAccessKey",
"iam:DeleteUser",
"iam:DeleteUserPolicy",
"iam:ListAccessKeys",
"iam:ListUserPolicies",
"iam:PutUserPolicy",
"iam:GetUser"