Mac系统下使用AWS CLI启动Web服务器遇region格式报错如何解决?
问题原因
169.254.169.254是AWS EC2实例专属的元数据服务地址,仅能在运行中的EC2实例内部访问。你在本地Mac设备上执行该curl请求会返回404错误,返回的HTML内容被错误赋值给了AZ变量,后续导出的AWS_DEFAULT_REGION实际是无效的HTML字符串,直接触发region格式不匹配报错。- 你编写的获取AMI的SSM命令中
--query参数取值错误,填写了无关的路径内容,无法正确提取AMI ID。 - 补充:你使用的元数据路径
availability- zone中间多了多余空格,即使在EC2实例内执行该请求也会返回404,后续在EC2内操作时需要修正路径。
解决步骤
- 本地Mac无需通过元数据获取区域,直接手动配置AWS默认区域即可,执行以下命令(将
us-east-1替换为你实际使用的区域):
export AWS_DEFAULT_REGION=us-east-1
如果你已经通过aws configure配置过AWS凭证和默认区域,也可以直接跳过该步骤,AWS CLI会自动读取本地已保存的配置。
2. 修正获取最新Amazon Linux 2 AMI的命令,将--query参数改为正确的取值路径:
AMI=$(aws ssm get-parameters --names /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 --query 'Parameters[0].Value' --output text) echo $AMI
- 命令执行完成后如果能正常输出一串ami-开头的ID,说明配置正确,可以继续后续的EC2操作。
内容的提问来源于stack exchange,提问作者Wilnia Toman
相关产品推荐
相关产品推荐

