Получение ошибки при запросе неизвестного параметра при импорте изображения яйцеклетки в 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
Некоторые статьи, говорящие об использовании:
Аминатор от Netflix, но он работает, беря существующий AMI и настраивая его до тех пор, пока не потребуется повторная загрузка, но нам нужно загрузить наш сервер как полный ящик, это простой ящик Debian по умолчанию, уже запущенный в нашей производственной среде и заполненный нашими системами, которые мы Здесь многие из этих систем просто невозможно переустановить на другом компьютере по разным причинам, и, если бы это было возможно, мы не стали бы беспокоиться о настраиваемом AMI, мы бы просто установили экземпляр AWS по умолчанию с простейшим AMI Debian и снова установили его.
Упаковщик у Hashicorp много строителей, AMI Builder (инстанс-магазин) попросите инструмент под названием Инструменты AMI что вам нужно загрузить с Amazon, и я только что услышал об этом, и это стало еще более запутанным, потому что документация AWS не сообщает об этом, рассказывая, как развернуть локальную машину как EC2, Packer также, как Aminator, нуждается в базовом AMI AWS для работать выше и не экспортировать локальный образ Debian по умолчанию, он запрашивает source_ami что это исходный AMI, используемый в качестве основы для вновь созданной машины.