我在安装了 AWS CLI 的 Windows 服务器上运行 Jenkins 服务器。尝试通过 Jenkins 作业运行脚本时出现以下错误:
“您必须指定一个区域。您还可以通过运行“aws configure”来配置您的区域。”
AWS cli 已配置(手动运行脚本 - 一切正常)
脚本:aws ec2 run-instances --image-id ami-12345 --count 1 --instance-type m4.large --key-name my-key --security-groups defaultSG
(如果我添加 --region,我会得到:“无法找到凭证”)
谢谢 !
答案1
这个问题已经很老了,所以我想答案与 OP 不再相关,但它可能会对其他人有所帮助。
为了使用 AWS-CLI,您需要首先在 AWS IAM 服务中创建一对“aws_access_key_id”和“aws_secret_access_key”,方法是在那里找到用户,选择它,然后选择“安全凭证”和“创建访问密钥”。
请将它们都记下来,因为您将无法再次显示“aws_secret_access_key”。
然后,在您打算使用 AWS CLI 的机器上,假设您已经安装了它......
找到正在运行 Jenkins 进程的用户,使用 sudo 登录并运行:
aws configure
然后,在第一个问题中提供生成的“aws_access_key_id”,在第二个问题中提供生成的“aws_secret_access_key”,跳过下一个问题或输入“json”,然后在最后一个问题中插入大多数服务器所在的区域代码,例如“us-east-1”。
答案2
尝试添加--region <your-region-name>
选项。
例如
aws ec2 run-instances --region your-region-name --image-id ami-12345 --count 1 --instance-type m4.large --key-name my-key --security-groups defaultSG
答案3
查找您已配置的用户awscli
以及正在运行的用户jenkins
。如果两个用户不同,请更改。在 Windows 中,转到服务,选择 jenkins 并更改用户。在 Linux 中,检查正在运行 jenkins 的 pid,并搜索谁拥有该 pid /etc/passwd
,然后检查您在哪个用户上配置了 awscli,或者在运行 jenkins 的用户上配置 awscli。我遇到了同样的问题,我解决了这个问题,希望它能有所帮助。