Importa um arquivo de imagem local para o Elastic Compute Service (ECS) como uma imagem personalizada que aparece na região especificada. Você pode então usar a imagem importada para criar instâncias ECS (RunInstances) ou substituir o disco do sistema de uma instância (ReplaceSystemDisk).
Descrição da operação
Descrição da operação
Ao chamar esta operação, observe os seguintes itens:
-
Você deve fazer upload do arquivo de imagem para o Object Storage Service (OSS) com antecedência. Para obter mais informações, consulte Upload de arquivos.
-
Para evitar que instâncias ECS criadas a partir da imagem personalizada importada falhem ao iniciar devido a problemas de sistema operacional em alguns servidores, máquinas virtuais ou hosts em nuvem, verifique se você precisa instalar o driver virtio no servidor de origem antes de importar a imagem. Para obter mais informações, consulte Instalar o driver virtio.
-
Ao importar uma imagem pela primeira vez, você deve autorizar o ECS a acessar seu bucket do OSS usando o Resource Access Management (RAM). Caso contrário, o erro
NoSetRoletoECSServiceAccountouInvalidOperation.CloudBoxImageImportRoleRequiredserá retornado. Os dois cenários a seguir se aplicam:-
Importar um arquivo de imagem sem usar o CloudBox: Você pode concluir a autorização do RAM no console do RAM com um único clique. Para obter mais informações, consulte Autorização de acesso a recursos em nuvem. Você também pode concluir manualmente a autorização do RAM. As seguintes políticas e permissões são necessárias para algumas operações. Para obter mais informações, consulte Controle de acesso à conta.
-
Crie uma função chamada
AliyunECSImageImportDefaultRole. Você deve usar exatamente este nome. Caso contrário, a importação da imagem falhará. Use a seguinte política para a função:{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" ] } } ], "Version": "1" } -
Anexe a política do sistema
AliyunECSImageImportRolePolicyà função. Você também pode criar uma política personalizada que inclua as seguintes permissões:{ "Version": "1", "Statement": [ { "Action": [ "oss:GetObject", "oss:GetBucketLocation", "oss:GetBucketInfo" ], "Resource": "*", "Effect": "Allow" } ] }
-
-
Importar um arquivo de imagem usando o CloudBox: Você pode concluir a autorização do RAM no console do RAM com um único clique. Para obter mais informações, consulte Autorização de acesso a recursos em nuvem. Você também pode concluir manualmente a autorização do RAM. As seguintes políticas e permissões são necessárias para algumas operações. Para obter mais informações, consulte Controle de acesso à conta.
-
Crie uma função chamada
AliyunECSCloudBoxImageImportDefaultRole. Você deve usar exatamente este nome. Caso contrário, a importação da imagem falhará. Use a seguinte política para a função:{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" ] } } ], "Version": "1" } -
Anexe a política do sistema
AliyunECSCloudBoxImageImportRolePolicyà função. Você também pode criar uma política personalizada que inclua as seguintes permissões:{ "Version": "1", "Statement": [ { "Action": [ "oss-cloudbox:GetObject", "oss-cloudbox:GetBucketLocation", "oss-cloudbox:GetBucketInfo" ], "Resource": "*", "Effect": "Allow" } ] }
-
-
-
Você não pode excluir uma imagem que está sendo importada. Você só pode chamar CancelTask para cancelar a tarefa de importação de imagem.
-
A região para a qual você importa a imagem deve ser a mesma região do bucket do OSS para o qual o arquivo de imagem foi enviado.
-
Valores válidos de N no parâmetro
DiskDeviceMapping.N: 1 a 17. Quando N é 1, o disco é um disco do sistema. Quando N é de 2 a 17, o disco é um disco de dados. Quando N é maior que 17, o sistema ignora automaticamente o valor. -
Quando o parâmetro
Architectureestá definido comoarm64, ou o parâmetroPlatformestá definido comoCentOS Stream,Anolis,AlmaLinux,UOS,KylinouRocky Linux, observe os seguintes itens:-
Para garantir que a imagem importada suporte a configuração de senha ou a modificação de par de chaves, a imagem deve atender aos seguintes requisitos:
-
O kernel do sistema operacional deve suportar o recurso
CONFIG_FW_CFG_SYSFS. Os kernels da comunidade Linux posteriores à versão 4.6 suportam esse recurso por padrão. Os kernels do CentOS posteriores à versão 3.10.0-826.el7 suportam esse recurso por padrão. Você pode executar o comandogrep -nr CONFIG_FW_CFG_SYSFS /boot/config-$(uname -r)no servidor que corresponde à imagem. Se a saída contiverCONFIG_FW_CFG_SYSFS=y, o kernel na imagem suporta o recursoCONFIG_FW_CFG_SYSFS. -
A versão mais recente do cloud-init do Alibaba Cloud está instalada no sistema operacional. O Cloud-init 19.1 deve ser a versão 19.1.3 ou posterior. O Cloud-init 0.7.6a em alguns sistemas operacionais mais antigos deve ser a versão 0.7.6a15 ou posterior. Para obter mais informações, consulte Instalar o cloud-init.
-
O sistema operacional deve suportar o algoritmo de criptografia SHA-512.
-
-
Para garantir que a imagem importada suporte o redimensionamento de disco e o redimensionamento do sistema de arquivos, a imagem deve atender aos seguintes requisitos:
-
A versão do kernel do sistema operacional deve ser posterior à 3.6.
-
O comando growpart é suportado. Para suportar este comando, instale o pacote
cloud-utils-growpart. O método de instalação varia de acordo com o sistema operacional. Para obter mais informações, consulte Redimensionar partições e sistemas de arquivos (Linux). -
O comando resize2fs é suportado. Para suportar este comando, instale o pacote
e2fsprogs. Este pacote é instalado por padrão no sistema operacional. Se não estiver instalado, instale-o manualmente. -
A versão mais recente do cloud-init do Alibaba Cloud está instalada no sistema operacional. O Cloud-init 19.1 deve ser a versão 19.1.3 ou posterior. O Cloud-init 0.7.6a em alguns sistemas operacionais mais antigos deve ser a versão 0.7.6a15 ou posterior. Para obter mais informações, consulte Instalar o cloud-init.
-
-
-
Se a arquitetura do sistema da imagem personalizada que você deseja importar for arm64, defina o relógio RTC para usar o padrão de hora UTC. Para obter mais informações, consulte Descrição de hora e fuso horário do Linux.
-
Configure os parâmetros de detecção de imagem ao importar uma imagem. Isso ajuda o sistema a otimizar sua imagem. Para obter mais informações, consulte Visão geral da detecção de imagem.
Experimente agora
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
ecs:ImportImage |
update |
*Image
|
Nenhuma | Nenhuma |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| RegionId |
string |
Sim |
O ID da região da imagem personalizada de origem. Você pode chamar DescribeRegions para consultar a lista de regiões mais recente. |
cn-hangzhou |
| ImageName |
string |
Não |
O nome da imagem. O nome deve ter de 2 a 128 caracteres. Deve começar com uma letra ou um caractere chinês e não pode começar com |
ImageTestName |
| Description |
string |
Não |
A descrição da imagem. A descrição deve ter de 2 a 256 caracteres e não pode começar com |
TestDescription |
| Architecture |
string |
Não |
A arquitetura do sistema. Valores válidos:
Valor padrão: x86_64. |
x86_64 |
| OSType |
string |
Não |
O tipo de sistema operacional. Valores válidos:
Valor padrão: linux. |
linux |
| Platform |
string |
Não |
A versão do sistema operacional. Valores válidos:
Valor padrão: Others Linux. |
Aliyun |
| BootMode |
string |
Não |
O modo de inicialização da imagem. Valores válidos:
Valor padrão: BIOS. Se Importante
Para evitar que as instâncias falhem ao iniciar devido a um modo de inicialização não suportado, certifique-se de entender o modo de inicialização suportado pela imagem de destino antes de definir este parâmetro. Para obter mais informações sobre os modos de inicialização de imagem, consulte Modos de inicialização de imagem. . |
BIOS |
| RoleName |
string |
Não |
O nome da função do RAM usada para importar a imagem. |
AliyunECSImageImportDefaultRole |
| LicenseType |
string |
Não |
O tipo de licença. Este parâmetro especifica o modo de autorização quando as instâncias são criadas chamando RunInstances com a imagem. Este valor entra em vigor apenas para imagens do Windows Server. Valores válidos:
Valor padrão: Aliyun. |
BYOL |
| ResourceGroupId |
string |
Não |
O ID do grupo de recursos corporativos ao qual a imagem importada pertence. |
rg-bp67acfmxazb4p**** |
| DiskDeviceMapping |
array<object> |
Não |
A lista de informações da imagem personalizada a ser criada. |
|
|
object |
Não |
A lista de informações da imagem personalizada a ser criada. |
||
| DiskImSize |
integer |
Não |
O tamanho da imagem personalizada. Unidade: GiB. O tamanho inclui o disco do sistema e os discos de dados. Certifique-se de que o espaço do disco do sistema seja maior ou igual ao tamanho do arquivo de imagem importado. Valores válidos:
Depois de fazer upload do arquivo de imagem de origem para o OSS, você pode visualizar o tamanho do arquivo de imagem no bucket do OSS. Nota
Este parâmetro será descontinuado. Para melhor compatibilidade, use |
80 |
| Device |
string |
Não |
O nome do dispositivo de DiskDeviceMapping.N.Device na imagem personalizada. Nota
Este parâmetro será descontinuado. Para melhor compatibilidade, não use este parâmetro. |
null |
| OSSBucket |
string |
Não |
O bucket do OSS onde o arquivo de imagem está armazenado. Nota
Antes de importar uma imagem para este bucket do OSS pela primeira vez, adicione a política de autorização do RAM conforme descrito na seção Descrição da operação deste tópico. Caso contrário, o erro |
ecsimageos |
| Format |
string |
Não |
O formato da imagem. Valores válidos:
Valor padrão: null, o que indica que o Alibaba Cloud detecta automaticamente o formato da imagem. O formato detectado prevalece. |
QCOW2 |
| OSSObject |
string |
Não |
O nome do arquivo (chave) do arquivo de imagem armazenado no bucket do OSS após a imagem ser enviada para o OSS. |
CentOS_5.4_32.raw |
| DiskImageSize |
integer |
Não |
O tamanho da imagem personalizada após a imagem ser importada. O tamanho inclui o disco do sistema e os discos de dados. Certifique-se de que o espaço do disco do sistema seja maior ou igual ao tamanho do arquivo de imagem importado. Valores válidos:
Depois de fazer upload do arquivo de imagem de origem para o OSS, você pode visualizar o tamanho do arquivo de imagem no bucket do OSS. |
80 |
| Tag |
array<object> |
Não |
As tags da imagem. |
|
|
object |
Não |
As tags da imagem. |
||
| Key |
string |
Não |
A chave da tag da imagem. Valores válidos de N: 1 a 20. A chave da tag não pode ser uma string vazia. A chave da tag pode ter até 128 caracteres e não pode começar com |
TestKey |
| Value |
string |
Não |
O valor da tag da imagem. Valores válidos de N: 1 a 20. O valor da tag pode ser uma string vazia. O valor da tag pode ter até 128 caracteres e não pode começar com |
TestValue |
| DetectionStrategy |
string |
Não |
A estratégia de detecção de imagem. Se este parâmetro não for especificado, a detecção não será acionada. Apenas o modo de detecção Standard é suportado. Nota
A maioria das versões do Linux e Windows é suportada. Para obter mais informações sobre os itens de detecção de imagem e as limitações do sistema operacional, consulte Visão geral da detecção de imagem e Limitações do sistema operacional para detecção de imagem. |
Standard |
| StorageLocationArn |
string |
Não |
O Alibaba Cloud Resource Name (ARN) do CloudBox, que é usado para identificar exclusivamente o local de armazenamento em nuvem. Nota
Você precisa especificar este parâmetro apenas ao importar um arquivo de imagem do OSS no CloudBox. Se você não usar o OSS no CloudBox, não defina este parâmetro. Para obter mais informações, consulte O que é o OSS no CloudBox. O ARN deve seguir este formato: |
arn:acs:cloudbox:cn-hangzhou:123456:cloudbox/cb-xx***123 |
| DryRun |
boolean |
Não |
Especifica se deve ser realizado apenas um dry run. Valores válidos:
Valor padrão: false. |
false |
| Features |
object |
Não |
As propriedades relacionadas aos recursos da imagem. |
|
| NvmeSupport |
string |
Não |
Especifica se a imagem suporta NVMe. Valores válidos:
|
supported |
| ImdsSupport |
string |
Não |
O modo de acesso aos metadados da imagem. Valores válidos:
Valor padrão: v1. |
v2 |
| ClientToken |
string |
Não |
O token do cliente que é usado para garantir a idempotência da solicitação. Você pode usar o cliente para gerar o token, mas certifique-se de que o token seja exclusivo entre diferentes solicitações. O valor de ClientToken pode conter apenas caracteres ASCII e não pode exceder 64 caracteres. Para obter mais informações, consulte Como garantir a idempotência. |
123e4567-e89b-12d3-a456-426655440000 |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
|||
| RequestId |
string |
O ID da solicitação. |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
| ImageId |
string |
O ID da imagem. |
m-bp67acfmxazb4p**** |
| TaskId |
string |
O ID da tarefa de importação de imagem. |
t-bp67acfmxazb4p**** |
| RegionId |
string |
O ID da região. |
cn-hangzhou |
Exemplos
Resposta de sucesso
JSON formato
{
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
"ImageId": "m-bp67acfmxazb4p****",
"TaskId": "t-bp67acfmxazb4p****",
"RegionId": "cn-hangzhou"
}
Códigos de erro
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|---|---|---|---|
| 400 | UnsupportedSuffix.OSSObject | The specified OSS object suffix is not supported. | |
| 400 | MissingParameter | An input parameter "RegionId" that is mandatory for processing the request is not supplied. | |
| 400 | InvalidImageName.Malformed | The specified Image name is wrongly formed. | The specified image name is invalid. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with acs: or aliyun. It can contain letters, digits, periods (.), colons (:), underscores (_), and hyphens (-). It cannot contain http:// or https://. |
| 400 | InvalidOSSObject.Malformed | The specified OSS object is wrongly formed. | The specified OSS object is invalid. |
| 400 | InvalidOSSBucket.Malformed | The specified OSS bucket is wrongly formed. | |
| 400 | InvalidOSSObject.Size | The specified OSS object size is zero. | The specified OSSObject is empty |
| 400 | InvalidDescription.Malformed | The specified Image description is wrongly formed. | The image description is invalid. |
| 400 | InvalidArchitecture.Malformed | The specified Architecture is wrongly formed. | The specified Architecture parameter is invalid. |
| 400 | InvalidPlatform.Malformed | The specified Platform is wrongly formed. | |
| 400 | InvalidOSType.Malformed | The specified OSType is wrongly formed. | The specified OS type is invalid. |
| 400 | InvalidImageName.Duplicated | The destination image is exist. | |
| 400 | InvalidImageSize | %s | The specified image size is invalid. |
| 400 | InvalidDataDiskSize | The specified DiskDeviceMapping.N.DiskImSize should be in the specified range. | The specified DiskDeviceMapping.N.DiskImSize parameter is invalid. |
| 400 | InvalidImageFormat.Malformed | The specified Image Format is wrongly formed. | The specified image format is invalid. |
| 400 | InvalidRegionId.NotFound | The specified RegionId does not exist. | |
| 400 | InvalidRegion.NotSupport | The specified region does not support image import or export. | The specified region does not support the operation. |
| 400 | InvalidOSSBucket.NotFound | The specified OSS bucket does not exist in this region. | The specified bucket does not exist. |
| 400 | InvalidOSSObject.NotFound | The specified OSS object does not exist in this region. | |
| 400 | InvalidOSSObject.NeedRestore | The specified OSS object is a archive object, need restore first. | |
| 400 | InvalidOSSBucket.NotMatched | The specified OSS bucket is incorrect, %s. | The specified DiskDeviceMapping.N.OSSBucket parameter is invalid. For more information, see the return value of the %s placeholder in the error message. |
| 400 | InvalidLicenseType.NotSupported | The specified LicenseType is not supported. | |
| 400 | InvalidLicenseType.BYOLOnly | Only BYOL LicenseType is supported for the current platform provided. | |
| 400 | InvalidOSSBucket.FlowLimit | %s | |
| 400 | InvalidImageFormat.RegionNotSupported | The specified image format is not supported in current region. | |
| 400 | InvalidBootMode.Malformed | The specified parameter "BootMode" is malformed. | |
| 400 | InvalidParameter.DetectionStrategy | The specified parameter DetectionStrategy is invalid. | |
| 400 | InvalidBootMode.NotSupport | The specified parameter BootMode is not supported for current image architecture. | The current image architecture does not support setting this boot mode. |
| 400 | DRYRUN.SUCCESS | This request is a dryrun request with successful result. | The request is checked and determined as valid. |
| 400 | InvalidClientToken.Malformed | The specified parameter clientToken is not valid. | |
| 400 | InvalidParameter.FeaturesImdsSupport | The specified parameter Features.ImdsSupport is not supported. | The specified parameter Features.ImdsSupport is not supported. |
| 400 | Account.Arrearage | Your account has an outstanding payment. | Your account has overdue payments. |
| 403 | ImageIsImporting | The specified Image is importing. | |
| 403 | QuotaExceed.Image | The Image Quota exceeds. | |
| 403 | ImportImageFailed | Importing image is failed, Please contact the administrator. | The image cannot be imported. Contact your system administrator. |
| 403 | UserNotInTheWhiteList | The user is not in the white list of importing image. | |
| 403 | NoSetRoletoECSServiceAcount | ECS service account Have no right to access your OSS.please attach a role of access your oss to ECS service account. | |
| 403 | InvalidParameter.Malformed | The specified parameter "DiskDeviceMapping.n.Device " is not valid. | |
| 403 | MissingParameter.DiskDeviceMapping | The specified parameter DiskDeviceMapping is not supplied. | A parameter that starts with DiskDeviceMapping must be specified. |
| 403 | InvalidOSS.NotAuthorized | The specified OSS bucket or object is not allowed to access. | You do not have the permission to access the specified OSS bucket and object. |
| 403 | InvalidBlockSize.NotSupport | %s | |
| 403 | InvalidImageFormat.Malformed | %s | |
| 403 | ImageCheckUnsupported.WindowsImage | Image check is unsupported for windows image. | |
| 403 | InvalidVHDImage.IncorrectSize | The specified size of the VHD image does not meet the 'header.MaxTableEntries * header.BlockSize' specification. | The size of the specified VHD image does not meet the header.MaxTableEntries × header.BlockSize size limit. |
| 403 | InvalidOSSBucket.EncryptUnsupported | Accessing objects from encrypted OSS bucket is not supported. | You cannot read objects from encrypted OSS buckets. |
| 403 | InvalidArchitecture.PlatformUnsupported | The OS platform you selected does not support the specified architecture. | The selected operating system does not support the specified architecture type. |
| 403 | InvalidAccountStatus.OSSDisabled | OSS is disabled due to invalid account status. | |
| 403 | InvalidStorageLocation.NotFound | The specified cloud box storage location %s could not be found. | The specified cloud box storage location could not be found. |
| 403 | InvalidOperation.CloudBoxImageImportRoleRequired | The role for cloud box image import is not set to the ECS service. | The role for cloud box image import is not set to the ECS service. |
| 403 | InvalidOperation.CloudBoxImageImportUnsupported | Importing cloud box images is not supported. | Importing cloud box images is not supported. |
| 403 | TagKey.Duplication | The TagKey has duplication with others, case-insensitive. | Duplicate values exist in the specified Tag.N.Key parameter. The value of this parameter is not case sensitive. Check whether duplicate parameter values are passed in. |
| 404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | The specified resource group does not exist. |
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.