You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Packer无法找到私有AMI问题求助

解决Packer无法找到私有基础AMI的问题

核心排查与修复步骤

1. 为数据源指定目标区域

你的amazon-ami数据源未设置region参数,Packer会默认使用本地AWS配置的区域(大概率不是你创建AMI的eu-west-2)。修改数据源配置,添加区域匹配项:

data "amazon-ami" "cocktails" {
  region = "eu-west-2" # 与source块的region保持一致
  filters = {
    virtualization-type = "hvm"
    name                = "test-ami-24112022"
    root-device-type    = "ebs"
  }
  owners      = ["my-account-id"]
  most_recent = true
}

2. 确认AMI名称完全匹配

检查手动创建的AMI名称是否和test-ami-24112022完全一致——大小写、空格、后缀等任何细微差异都会导致过滤器匹配失败。

3. 验证AWS账号ID准确性

确保owners字段中的my-account-id是你的12位AWS账号数字ID,没有输入错误。可以通过AWS控制台右上角的账号信息查看准确ID。

4. 检查AMI权限与凭证有效性

  • 确认该AMI是私有且归属于你的账号,未被误共享到其他账号或设为公开。
  • 用Packer使用的AWS凭证执行CLI命令测试权限:
aws ec2 describe-images --region eu-west-2 --owners 你的账号ID --filters "Name=name,Values=test-ami-24112022" "Name=virtualization-type,Values=hvm" "Name=root-device-type,Values=ebs"

如果命令返回空结果,说明凭证无权限或AMI不存在;能返回AMI信息则说明Packer配置需调整。

5. 直接指定AMI ID(备选方案)

若以上步骤无效,可跳过数据源查询,直接在source块中填入手动创建的AMI ID:

source "amazon-ebs" "cocktails" {
  instance_type = "t2.micro"
  region        = "eu-west-2"
  ssh_username  = "ec2-user"
  ami_name      = "test-${uuidv4()}"
  source_ami    = "ami-xxxxxxxxx" # 替换为你的私有AMI ID
}

内容的提问来源于stack exchange,提问作者srk786

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:50:45