按AWS文档创建ap-northeast-1区域ElasticBeanstalk自定义平台遇区域不匹配错误
解决Elastic Beanstalk自定义平台创建的区域不匹配问题
这问题我之前帮同事排查过,核心就是Packer构建AMI时使用的区域和你指定的EB服务区域(ap-northeast-1)不一致——EB自定义平台要求构建出来的AMI必须和目标服务区域完全一致,否则就会报你遇到的这个错误。
给你几个具体的解决步骤:
首先检查你的Packer模板(一般是
template.json),确保里面指定的基础AMI是ap-northeast-1区域的可用镜像。你可以用AWS CLI命令快速查询该区域的官方Ubuntu镜像:aws ec2 describe-images --region ap-northeast-1 --owners 099720109477 --filters "Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*" --query "sort_by(Images, &CreationDate)[-1].ImageId"(099720109477是Canonical的官方AWS账号ID,对应Ubuntu的官方镜像)
然后在Packer模板的
builders部分明确指定region为ap-northeast-1,确保Packer在该区域内创建并保存AMI。示例配置如下:"builders": [ { "type": "amazon-ebs", "region": "ap-northeast-1", "source_ami": "替换成你刚才查询到的ap-northeast-1区域的Ubuntu AMI ID", "instance_type": "t2.micro", "ssh_username": "ubuntu", "ami_name": "NodePlatform_Ubuntu-{{timestamp}}" } ]接下来检查EB CLI的配置,确保当前使用的区域是ap-northeast-1:
# 查看当前EB CLI的区域配置 eb config list # 如果区域不对,重新初始化设置 eb init --region ap-northeast-1最后清理之前创建的不一致资源,重新执行构建:
# 删除之前的自定义平台版本 ebp delete NodePlatform_Ubuntu/1.0.0 # 重新创建自定义平台 ebp create NodePlatform_Ubuntu/1.0.0
另外再提两个排查要点:
- 确认你的AWS CLI配置文件(
~/.aws/config)里的region字段已经设为ap-northeast-1 - 可以查看Packer的构建日志,确认它是在ap-northeast-1区域启动的EC2实例来制作AMI的
内容的提问来源于stack exchange,提问作者kanji
相关产品推荐
相关产品推荐

