Назад | Перейти на главную страницу

Получение ошибки с запросом неизвестного параметра при импорте изображения яйцеклетки в aws согласно официальной документации

Получение ошибки при запросе неизвестного параметра при импорте изображения яйцеклетки в 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
    )

При использовании флага сухого прогона для тестирования он сообщает (запрос был бы успешным, но установлен флаг 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

Некоторые статьи, говорящие об использовании: