按照官方文档将 ova 映像导入 aws 时出现错误,要求输入未知参数

按照官方文档将 ova 映像导入 aws 时出现错误,要求输入未知参数

按照官方文档将 ova 映像导入 aws 时出现错误,要求输入未知参数。
我需要将我当前的基本 Debian 盒完全部署到 AWS,并在我的生产中已经运行所有配置和软件。
文档位于:vmimport-图像

当在命令行上寻求帮助时,其可能的参数列表几乎相同:

aws ec2 import-image help

      [--architecture <value>]
      [--client-data <value>]
      [--client-token <value>]
      [--description <value>]
      [--disk-containers <value>]
      [--dry-run | --no-dry-run]
      [--encrypted | --no-encrypted]
      [--hypervisor <value>]
      [--kms-key-id <value>]
      [--license-type <value>]
      [--platform <value>]
      [--role-name <value>]
      [--cli-input-json <value>]
      [--generate-cli-skeleton <value>]

我在终端上输入的命令本身:

# It is the 'first one' referred below    
cfgAmi=$(cat <<'EOF'
    [
        {
            "Description": "mySystem",
            "Format": "ova", 
            "UserBucket": {
                "S3Bucket": "mySystemBucket", 
                "S3Key": "mySystem.ova"
            }
        }
    ]
    EOF
    )

当使用标志 dry-run 来测试时,它会告诉(请求会成功,但 DryRun 标志已设置):

echo $cfgAmi | aws ec2 import-image \
--dry-run \
--description "mySystem" \
--architecture x86_64 \
--hypervisor xen \
--platform Linux \
--role-name root \
--disk-containers 

但是当运行命令真正采取行动时:

echo $cfgAmi | aws ec2 import-image \
--description "mySystem" \
--architecture x86_64 \
--hypervisor xen \
--platform Linux \
--role-name root \
--disk-containers 

错误信息:

An error occurred (InvalidParameter) when 
calling the ImportImage operation: 
Missing required parameter (disk-images)

disk-images要求的甚至不是一个可能的参数。上面的
密钥UserBucket不在基于终端的帮助中,而是在我上面提到的 html 文档中。

当我按照我发现的一篇非官方文章将上述配置更新为以下内容时,错误仍然相同:

# run again the 'first one' to 
# populate $cfgAmi variable then:
cfgAmi=$(cat <<EOF
{
    "Description": "mySystem",
    "DiskContainers": $cfgAmi
}
EOF
)

或者

# run again the 'first one' to 
# populate $cfgAmi variable then:
cfgAmi=$(cat <<EOF
{
    "description": "mySystem",
    "disk-containers": $cfgAmi
}
EOF
)

对于以上任何一项,如果在这一点上我将执行命令更改为:

aws ec2 import-image --cli-input-json $cfgAmi

我收到错误:

Unknown options: \
"mySystem",, \
"disk-containers":, \
[, {, "Description":, \
"mySystem",, "Format":, \
"ova",, "UserBucket":, \
{, "S3Bucket":, "mySystemBucket",, \
"S3Key":, "mySystem.ova", \
}, }, ], }, "description":

使用时:

aws ec2 import-image --cli-input-json "{ 
    \"description\": \"mySystem\", 
    \"disk-containers\": [ { 
        \"Description\": \"mySystem\", 
        \"Format\": \"ova\", 
        \"UserBucket\": { 
            \"S3Bucket\": \"mySystemBucket\", 
            \"S3Key\": \"mySystem.ova\" 
        } 
    } ] 
}"

得到错误:

Unknown parameter in input: 
"disk-containers", must be one of: 
Architecture, ClientData, ClientToken, 
Description, DiskContainers, DryRun, 
Encrypted, Hypervisor, KmsKeyId, 
LicenseType, Platform, RoleName

Unknown parameter in input: 
"description", must be one of: 
Architecture, ClientData, ClientToken, 
Description, DiskContainers, DryRun, 
Encrypted, Hypervisor, KmsKeyId, 
LicenseType, Platform, RoleName

但使用时:

cfgAmi=$(cat <<'EOF'
          "[
            {
              'Description': 'mySystem',
              'Format': 'ova',
              'UserBucket': {
                'S3Bucket': 'mySystemBucket',
                'S3Key': 'mySystem.ova'
              }
            }
          ]"
EOF
)


echo $cfgAmi | aws ec2 import-image \
--Architecture x86_64 \
--Description "mySystem" \
--Hypervisor xen \
--LicenseType Auto \
--platform Linux \
--RoleName root \
--DiskContainers

返回错误:

Unknown options: \
--Architecture, \
--Description, \
mySystem, \
--Hypervisor, \
xen, \
--LicenseType, \
Auto, \
--RoleName, \
root, \
--DiskContainers, \
x86_64

并且在执行时:

aws ec2 import-image \
--Architecture x86_64 \
--Description "mySystem" \
--Hypervisor xen \
--LicenseType Auto \
--platform Linux \
--RoleName root \
--DiskContainers "[ { 
    'Description': 'mySystem', 
    'Format': 'ova', 
    'UserBucket': { 
        'S3Bucket': 'mySystemBucket', 
        'S3Key': 'mySystem.ova' 
    } 
} ]"

存在错误:

Unknown options: \
--Architecture, \
--Description, \
mySystem, \
--Hypervisor, \
xen, \
--LicenseType, \
Auto, \
--RoleName, \
root, \
--DiskContainers, \
[ { 'Description': 'mySystem', 
    'Format': 'ova', 'UserBucket': { 
        'S3Bucket': 'mySystemBucket', 
        'S3Key': 'mySystem.ova' 
    } } ], x86_64

当我上传与 vmdk 相同的机器并尝试使用另一种格式执行相同的过程时,如下所示:

aws ec2 import-image \
    --Architecture x86_64 \
    --Description "mysystem" \
    --Hypervisor xen \
    --LicenseType Auto \
    --platform Linux \
    --RoleName root \
    --DiskContainers "[ { 
        'Description': 'mysystem', 
        'Format': 'vmdk', 
        'UserBucket': { 
            'S3Bucket': 'mySystemBucket', 
            'S3Key': 'mysystem.vmdk' 
        } 
    } ]"

收到错误:

Unknown options: \
    --Architecture, \
    --Description, \
    mysystem, \
    --Hypervisor, \
    xen, \
    --LicenseType, \
    Auto, \
    --RoleName, \
    root, \
    --DiskContainers, [ { 
        'Description': 'mysystem', 
        'Format': 'vmdk', 
        'UserBucket': { 
            'S3Bucket': 'mySystemBucket', \
            'S3Key': 'mysystem.vmdk' 
        } 
        } ], \
    x86_64

一些文章告诉使用:

  • 胺化剂来自 Netflix,但它的工作原理是采用现有的 AMI 并对其进行调整,直到满足需要然后再次上传,但我们需要将我们的服务器作为一个完整的盒子上传,它是一个简单的默认 Debian 盒子,已经在我们的生产上运行并且充满了我们这里的系统,许多这些系统由于各种原因无法在另一个盒子上重新安装,如果可能的话,我们不会为自定义 AMI 烦恼,我们只会用最简单的 Debian AMI 启动一个默认的 AWS 实例并再次在那里安装所有内容。

  • 打包机来自 Hashicorp 的众多建设者,AMI 构建器(实例存储)请求一个名为的工具AMI 工具你需要从亚马逊下载,我刚刚听说了,现在一切都变得更加混乱,因为 AWS 文档在讲述如何将本地机器部署为 EC2 时没有提到它,Packer 也和 Aminator 一样,需要一个基本的 AWS AMI 才能在上面工作,并且不导出本地默认的 Debian 映像,它要求源_ami它是用作新创建机器的基础的初始 AMI。

相关内容