我正在尝试通过我的 aws 服务器获取日志事件。我像往常一样登录服务器,然后输入以下命令:
sudo aws logs get-log-events --log-group-name <myLogs> --log-stream-name <stream-name>
我收到错误...
You must specify a region. You can also configure your region by running "aws configure".
因此,我输入aws configure
后看到以下内容:
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
因此,我转到我的 IAM 页面,然后Users
单击指示。创建密钥后,我从以下来源获取四条信息:
Access Key ID
从 IAM 页面。
Secret Access Key
在 IAM 页面上创建密钥后。
IAM 页面显示N/A
字段region name
和output format
,因此我不确定从哪里获取region name
和default format
。因此我输入了以下内容:
region name
= us-west-2
output format
=json
再次尝试,我输入
sudo aws logs get-log-events --log-group-name <myLogs> --log-stream-name <sream-name --region us-west-2
..但我再次收到相同的错误消息: You must specify a region. You can also configure your region by running aws configure
。
我如何找到正确的region name
和output format
?更一般地说,如何让我的aws
凭证或配置不再出现错误?
答案1
AWS Access Key ID [None]: enter key id
AWS Secret Access Key [None]: enter access key
Default region name [None]: enter region code for instance connected with
Default output format [None]: leave empty or not
输入必须Default region name
与你尝试连接的实例的区域相匹配。你可以留空 -output format
它只会询问你希望输出的格式,但它会输出你输入的命令的默认格式。
在这里,我尝试查找有关位于 us-west-2 的实例的一些信息,但是我在 aws configure 中输入了 us-east-1 作为默认区域,因此出现错误。
[root@ip-444-21-27-145 lost+found]# aws configure
AWS Access Key ID [****************IDBA]:
AWS Secret Access Key [****************BHLx]:
Default region name [us-west-2]: us-east-1
Default output format [None]:
[root@ip-444-21-27-145 lost+found]# aws ec2 describe-instances --instance-id i-0a6a6b7e24er203f0 --query 'Reservations[].Instances[].{Name:ImageId,InstanceId:InstanceId,VolumeInfo:BlockDeviceMappings}'
An error occurred (InvalidInstanceID.NotFound) when calling the DescribeInstances operation: The instance ID 'i-0a6a6b7e24er203f0' does not exist
现在,我在 aws configure 中输入我的实例区域,命令返回我想要的内容。
[root@ip-444-21-27-145 lost+found]# aws configure
AWS Access Key ID [****************IDBA]:
AWS Secret Access Key [****************BHLx]:
Default region name [us-east-1]: us-west-2
Default output format [None]:
[root@444-21-27-145 lost+found]# aws ec2 describe-instances --instance-id i-0a6a6b7e24er203f0 --query 'Reservations[].Instances[].{Name:ImageId,InstanceId:InstanceId,VolumeInfo:BlockDeviceMappings}'
[
{
"InstanceId": "i-0a6a6b7e24er203f0",
"VolumeInfo": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"Status": "attached",
"DeleteOnTermination": true,
"VolumeId": "vol-0aa40d5ef1df76968",
"AttachTime": "2017-11-09T02:00:31.000Z"
}
},
{
"DeviceName": "/dev/sdf",
"Ebs": {
"Status": "attached",
"DeleteOnTermination": false,
"VolumeId": "vol-0a82823250ba51323",
"AttachTime": "2017-11-09T02:09:29.000Z"
}
},
{
"DeviceName": "/dev/sdg",
"Ebs": {
"Status": "attached",
"DeleteOnTermination": false,
"VolumeId": "vol-0be466f7daa5593e2",
"AttachTime": "2017-11-09T02:35:46.000Z"
}
}
],
"Name": "ami-32d8124a"
}
]
希望有所帮助。
答案2
根据AWS CLI 文档:
--region (string)
The region to use. Overrides config/env settings.
因此,只需--region us-east-1
在命令中添加 a 或其他内容,就可以了。