将 VM 导入 AWS 时出错:S3 密钥不存在

将 VM 导入 AWS 时出错:S3 密钥不存在

我需要将 Gen2 Hyper-V 机器导入 AWS,并且我正在遵循此处的文档:https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html

一切正常,直到我使用此命令上传图像:

aws ec2 import-image --description "XYZVM" --license-type AWS --disk-containers file://containers.json

containers.json 文件如下:

[
  {
    "Description": "First disk",
    "Format": "vhdx",
    "UserBucket": {
        "S3Bucket": "xyzvmimport",
        "S3Key": "xyWin10.vhdx"
        }
  },          
  {
    "Description": "Second disk",
    "Format": "vhdx",
    "UserBucket": {
        "S3Bucket": "xyzvmimport",
        "S3Key": "xyWin11.vhdx"
    }
  }
]

vhdx 文件和 container.json 位于同一文件夹中。我以管理员身份从文件夹内运行命令,但出现此错误:

An error occurred (InvalidParameter) when calling the ImportImage operation: S3 key does not exist: xyWin10.vhdx

我还确保“每个人”都对文件具有完全访问权限,以确保这不是权限问题。

这是怎么回事?为什么这个工具不起作用?

答案1

正如 Alex Moore 在对原始问题的评论中所建议的那样。

当您说“vhdx 文件和 container.json 位于同一文件夹中”时,您的意思是在本地计算机上的文件夹中?因为 vhdx 文件需要上传到 S3 存储桶

我还假设 ova 来自我的工作站。一旦我将 ova 上传到存储桶并运行 import-image 命令,它就会起作用。

答案2

配置脚本的方法有两种containers.json,第一种方法是:

  1. 使用 s3 bucket 指定图像。json 片段如下:
[
  {
    "Description": "My Server OVA",
    "Format": "ova",
    "UserBucket": {
        "S3Bucket": "my-import-bucket",
        "S3Key": "vms/my-server-vm.ova"
    }
  }
]
  1. 使用 Amazon S3 中的 URL 指定图像。示例如下:
[
  {
    "Description": "My Server OVA",
    "Format": "ova",
    "Url": "s3://my-import-bucket/vms/my-server-vm.ova"
  }
]

第一个选项失败后,我尝试了第二个,成功了。解决方案的参考资料可以在这里找到这里。

相关内容