Importe une image vers Elastic Compute Service (ECS). L'image importée devient une image personnalisée dans la région de destination. Vous pouvez utiliser cette image pour créer des instances ECS (RunInstances) ou remplacer les disques système des instances ECS (ReplaceSystemDisk).
Remarques sur l'utilisation
Tenez compte des points suivants :
Avant d'importer une image, téléchargez-la dans un compartiment Object Storage Service (OSS). Pour plus d'informations, consultez Upload objects.
Dans certains scénarios, vous pouvez créer une image à partir des données du système d'exploitation d'un serveur source, l'importer vers ECS, puis créer une instance ECS à partir de cette image. Le serveur source peut être un serveur physique, une machine virtuelle ou un hôte cloud. Si le pilote virtio n'est pas installé sur le serveur source, l'instance ECS créée risque de ne pas démarrer. Pour éviter ce problème, vérifiez que le pilote virtio est installé sur le serveur source avant d'importer l'image. Pour plus d'informations, consultez Install the virtio driver.
-
Lors de votre première importation d'images, autorisez ECS à accéder à vos compartiments OSS via Resource Access Management (RAM). Si ECS n'est pas autorisé à accéder à vos compartiments OSS, le code d'erreur NoSetRoletoECSServiceAcount est renvoyé lors de l'appel de l'opération ImportImage. Accordez cette autorisation en un clic sur la page Cloud Resource Access Authorization de la console RAM. Vous pouvez également accorder l'autorisation en utilisant un rôle RAM et des politiques RAM. Les exemples suivants illustrent les politiques et les autorisations requises pour certaines étapes de la procédure d'autorisation. Pour plus d'informations, consultez Control access to resources by using RAM users.
1. Créez un rôle nommé AliyunECSImageImportDefaultRole. Utilisez exactement ce nom de rôle, sans quoi l'image ne pourra pas être importée. Configurez la politique de confiance suivante pour le rôle : { "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" ] } } ], "Version": "1" }
2. Associez la politique système AliyunECSImageImportRolePolicy au rôle. Vous pouvez également créer une politique personnalisée contenant le contenu suivant et l'associer au rôle : { "Version": "1", "Statement": [ { "Action": [ "oss:GetObject", "oss:GetBucketLocation", "oss:GetBucketInfo" ], "Resource": "*", "Effect": "Allow" } ] }
Vous ne pouvez pas supprimer une image en cours d'importation. Toutefois, appelez l'opération CancelTask pour annuler la tâche d'importation de l'image.
Importez l'image uniquement dans la même région que le compartiment OSS dans lequel le fichier image a été téléchargé.
Les valeurs valides de N dans DiskDeviceMapping.N vont de 1 à 17. Lorsque N est défini sur 1, le disque est un disque système. Lorsque N est compris entre 2 et 17, le disque est un disque de données. Lorsque N est supérieur à 17, les paramètres préfixés par DiskDeviceMapping.N sont ignorés.
-
Lorsque vous définissez Architecture sur arm64 ou Platform sur CentOS Stream, Anolis, AlmaLinux, UOS, Kylin ou Rocky Linux, tenez compte des points suivants :
-
Pour garantir que le mot de passe puisse être défini ou que la paire de clés puisse être modifiée pour une image importée, assurez-vous que l'image répond aux exigences suivantes avant de l'importer :
Le noyau du système d'exploitation prend en charge la fonctionnalité CONFIG_FW_CFG_SYSFS. Par défaut, les noyaux de la communauté Linux version 4.6 et ultérieure, ainsi que les noyaux CentOS version 3.10.0-826.el7 et ultérieure, prennent en charge cette fonctionnalité. Exécutez la commande grep -nr CONFIG_FW_CFG_SYSFS /boot/config-$(uname -r) sur le serveur source de l'image. Si la sortie de la commande contient CONFIG_FW_CFG_SYSFS=y, le noyau de l'image prend en charge la fonctionnalité CONFIG_FW_CFG_SYSFS.
La dernière version de cloud-init Alibaba Cloud est installée sur le système d'exploitation. Si la version de cloud-init est 19.1, la version mineure doit être 19.1.3 ou ultérieure. Si la version de cloud-init est 0.7.6a dans certaines versions anciennes des systèmes d'exploitation, la version mineure doit être 0.7.6a15 ou ultérieure. Pour plus d'informations, consultez Install cloud-init.
Le système d'exploitation prend en charge l'algorithme de chiffrement SHA-512.
-
Si vous souhaitez qu'une image importée prenne en charge le redimensionnement des disques et des systèmes de fichiers, assurez-vous que l'image répond aux exigences suivantes avant de l'importer :
La version du noyau du système d'exploitation est supérieure à 3,6.
L'image prend en charge la commande growpart. Pour prendre en charge cette commande, installez le package cloud-utils-growpart. Les méthodes d'installation du package varient selon les systèmes d'exploitation. Pour plus d'informations, consultez Extend the partitions and file systems of disks on a Linux instance.
L'image prend en charge la commande resize2fs. Pour prendre en charge cette commande, installez le package e2fsprogs. Par défaut, ce package est installé sur le système d'exploitation. S'il n'est pas installé, installez-le.
La dernière version de cloud-init Alibaba Cloud est installée sur le système d'exploitation. Si la version de cloud-init est 19.1, la version mineure doit être 19.1.3 ou ultérieure. Si la version de cloud-init est 0.7.6a dans certaines versions anciennes des systèmes d'exploitation, la version mineure doit être 0.7.6a15 ou ultérieure. Pour plus d'informations, consultez Install cloud-init.
-
Si l'image que vous souhaitez importer utilise l'architecture ARM64, configurez l'horloge temps réel (RTC) pour utiliser le standard de temps universel coordonné (UTC). Pour plus d'informations, consultez Linux time and time zones.
Lors de l'importation d'images, spécifiez DetectionStrategy. Cela vous permet d'optimiser les images en fonction des résultats de la vérification. Pour plus d'informations, consultez Image check items.
Débogage
Paramètres de requête
|
Parameter |
Type |
Required |
Example |
Description |
| Action | String | Yes | ImportImage | L'opération que vous souhaitez effectuer. Définissez la valeur sur ImportImage. |
| RegionId | String | Yes | cn-hangzhou | L'ID de région du compartiment OSS dans lequel l'image à importer a été téléchargée. Appelez l'opération DescribeRegions pour interroger la liste des régions la plus récente. |
| ImageName | String | No | ImageTestName | Le nom de l'image. La longueur du nom doit être comprise entre 2 et 128 caractères. Le nom doit commencer par une lettre et ne peut pas commencer par |
| Description | String | No | TestDescription | La description de l'image. La longueur de la description doit être comprise entre 2 et 256 caractères et ne peut pas commencer par |
| Architecture | String | No | x86_64 | L'architecture du système d'exploitation. Valeurs valides :
Valeur par défaut : x86_64. |
| OSType | String | No | linux | La plateforme du système d'exploitation. Valeurs valides :
Valeur par défaut : linux. |
| Platform | String | No | Aliyun | La distribution du système d'exploitation. Valeurs valides :
Valeur par défaut : Others Linux. |
| BootMode | String | No | BIOS | Le mode de démarrage de l'image. Valeurs valides :
Valeur par défaut : BIOS. Si vous définissez le paramètre Remarque Vous devez connaître les modes de démarrage pris en charge par l'image spécifiée. Lorsque vous utilisez ce paramètre pour modifier le mode de démarrage de l'image, spécifiez un mode de démarrage pris en charge par l'image afin de garantir que les instances utilisant cette image puissent démarrer normalement. |
| RoleName | String | No | AliyunECSImageImportDefaultRole | Le nom du rôle RAM à utiliser pour importer l'image. |
| LicenseType | String | No | Auto | Le type de licence à utiliser pour activer le système d'exploitation après l'importation de l'image. Valeurs valides :
Valeur par défaut : Auto. |
| ResourceGroupId | String | No | rg-bp67acfmxazb4p**** | L'ID du groupe de ressources auquel attribuer l'image. |
| DiskDeviceMapping.N.DiskImSize | Integer | No | 80 | La taille du disque N dans l'image personnalisée après l'importation de l'image. Unité : GiB. Utilisez ce paramètre pour spécifier les tailles du disque système et des disques de données dans l'image personnalisée. Lorsque vous spécifiez la taille du disque système, assurez-vous que la taille spécifiée est supérieure ou égale à la taille du fichier image importé. Unité : GiB. Valeurs valides :
Après le téléchargement du fichier image dans un compartiment OSS, affichez la taille du fichier image dans le compartiment OSS. Remarque Ce paramètre sera supprimé à l'avenir. Nous vous recommandons d'utiliser DiskDeviceMapping.N.DiskImageSize pour assurer la compatibilité future. |
| DiskDeviceMapping.N.Device | String | No | null | Le nom de périphérique du disque N dans l'image personnalisée. Remarque Ce paramètre sera supprimé à l'avenir. Nous vous recommandons de ne pas utiliser ce paramètre pour assurer la compatibilité future. |
| DiskDeviceMapping.N.OSSBucket | String | No | ecsimageos | Le compartiment OSS où l'image est stockée. Remarque Lors de votre première importation d'images, autorisez ECS à accéder à vos compartiments OSS via RAM. Si ECS n'est pas autorisé à accéder à vos compartiments OSS, le code d'erreur NoSetRoletoECSServiceAcount est renvoyé lors de l'appel de l'opération ImportImage. Pour plus d'informations, consultez la section « Remarques sur l'utilisation » de cette rubrique. |
| DiskDeviceMapping.N.Format | String | No | QCOW2 | Le format de l'image. Valeurs valides :
Ce paramètre est vide par défaut, ce qui indique que le système vérifie le format de l'image et utilise le résultat de la vérification comme valeur de ce paramètre. |
| DiskDeviceMapping.N.OSSObject | String | No | CentOS_5.4_32.raw | Le nom (clé) de l'objet sous lequel l'image téléchargée est stockée dans le compartiment OSS. |
| DiskDeviceMapping.N.DiskImageSize | Integer | No | 80 | La taille du disque N dans l'image personnalisée après l'importation de l'image. Utilisez ce paramètre pour spécifier les tailles du disque système et des disques de données dans l'image personnalisée. Lorsque vous spécifiez la taille du disque système, assurez-vous que la taille spécifiée est supérieure ou égale à la taille du fichier image importé. Unité : GiB. Valeurs valides :
Après le téléchargement du fichier image dans un compartiment OSS, affichez la taille du fichier image dans le compartiment OSS. |
| Tag.N.Key | String | No | TestKey | La clé du tag N à ajouter à l'image personnalisée. Valeurs valides de N : 1 à 20. La clé du tag ne peut pas être une chaîne vide. La longueur de la clé du tag peut atteindre 128 caractères et ne peut pas contenir |
| Tag.N.Value | String | No | TestValue | La valeur du tag N à ajouter à l'image personnalisée. Valeurs valides de N : 1 à 20. La valeur du tag peut être une chaîne vide. La longueur de la valeur du tag peut atteindre 128 caractères et ne peut pas contenir |
| DetectionStrategy | String | No | Standard | Le mode de vérification de l'image. Si vous ne spécifiez pas ce paramètre, l'image n'est pas vérifiée. Seul le mode de vérification standard est pris en charge. Remarque Ce paramètre est pris en charge pour la plupart des images Linux et Windows. Pour plus d'informations sur les éléments de vérification des images et les limites du système d'exploitation pour la vérification des images, consultez Overview of image check et Operating system limits for image check. |
Paramètres de réponse
|
Parameter |
Type |
Example |
Description |
|
RequestId |
String |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
L'ID de la requête. |
|
ImageId |
String |
m-bp67acfmxazb4p**** |
L'ID de l'image. |
|
TaskId |
String |
t-bp67acfmxazb4p**** |
L'ID de la tâche d'importation de l'image. |
|
RegionId |
String |
cn-hangzhou |
L'ID de région de l'image. |
Exemples
Exemples de requêtes
http(s)://ecs.aliyuncs.com/?Action=ImportImage
&RegionId=cn-hangzhou
&DiskDeviceMapping.1.Format=QCOW2
&DiskDeviceMapping.1.OSSBucket=ecsimageos
&DiskDeviceMapping.1.OSSObject=CentOS_5.4_32.raw
&DiskDeviceMapping.1.DiskImageSize=80
&ImageName=Test
&Description=Test
&Architecture=x86_64
&OSType=linux
&Platform=Aliyun
&LicenseType=Aliyun
&DetectionStrategy=Standard
&<Common request parameters>
Exemples de réponses réussies
XML format
HTTP/1.1 200 OK
Content-Type:application/xml
<ImportImageResponse>
<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
<ImageId>m-bp67acfmxazb4p****</ImageId>
<TaskId>t-bp67acfmxazb4p****</TaskId>
<RegionId>cn-hangzhou</RegionId>
</ImportImageResponse>
JSON format
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
"ImageId" : "m-bp67acfmxazb4p****",
"TaskId" : "t-bp67acfmxazb4p****",
"RegionId" : "cn-hangzhou"
}
Codes d'erreur
|
HTTP status code |
Error code |
Error message |
Description |
|
400 |
UnsupportedSuffix.OSSObject |
The specified OSS object suffix is not supported. |
Le suffixe d'objet OSS spécifié n'est pas pris en charge. |
|
400 |
InvalidImageName.Malformed |
The specified Image name is wrongly formed. |
Format ImageName invalide. La longueur du nom doit être comprise entre 2 et 128 caractères. Le nom doit commencer par une lettre et ne peut pas commencer par acs: ou aliyun. Il ne peut pas contenir http:// ou https://. Le nom peut contenir des lettres, des chiffres, des points (.), des deux-points (:), des traits de soulignement (_) et des traits d'union (-). |
|
400 |
InvalidOSSObject.Malformed |
The specified OSS object is wrongly formed. |
Valeur DiskDeviceMapping.N.OSSObject invalide. |
|
400 |
InvalidDescription.Malformed |
The specified Image description is wrongly formed. |
Format Description invalide. |
|
400 |
InvalidArchitecture.Malformed |
The specified Architecture is wrongly formed. |
Format Architecture invalide. |
|
400 |
InvalidPlatform.Malformed |
The specified Platform is wrongly formed. |
Valeur Platform invalide. |
|
400 |
InvalidOSType.Malformed |
The specified OSType is wrongly formed. |
Format OSType invalide. |
|
400 |
InvalidImageName.Duplicated |
The destination image is exist. |
Le nom de l'image existe déjà. |
|
400 |
InvalidImageSize |
%s |
Taille d'image invalide. |
|
400 |
InvalidDataDiskSize |
The specified DiskDeviceMapping.N.DiskImSize should be in the specified range. |
Valeur DiskDeviceMapping.N.DiskImSize invalide. |
|
400 |
InvalidImageFormat.Malformed |
The specified Image Format is wrongly formed. |
Valeur ImageFormat invalide. |
|
400 |
InvalidRegionId.NotFound |
The specified RegionId does not exist. |
Valeur RegionId invalide. |
|
400 |
InvalidRegion.NotSupport |
The specified region does not support image import or export. |
Cette opération ne peut pas être effectuée sur l'image dans la région spécifiée. |
|
400 |
InvalidOSSBucket.NotFound |
The specified OSS bucket does not exist in this region. |
Le compartiment OSS est introuvable. |
|
400 |
InvalidOSSObject.NotFound |
The specified OSS object does not exist in this region. |
L'objet OSS est introuvable. |
|
400 |
InvalidOSSBucket.NotMatched |
The specified OSS bucket is incorrect, %s. |
Valeur DiskDeviceMapping.N.OSSBucket invalide. Pour plus d'informations, consultez la valeur de retour de l'espace réservé %s dans le message d'erreur. |
|
403 |
ImageIsImporting |
The specified Image is importing. |
L'image spécifiée est en cours d'importation. L'opération ne peut pas être effectuée. |
|
403 |
QuotaExceed.Image |
The Image Quota exceeds. |
Le quota d'images personnalisées a été atteint. |
|
403 |
ImportImageFailed |
Importing image is failed, Please contact the administrator. |
L'image ne peut pas être importée. Contactez un administrateur système. |
|
403 |
UserNotInTheWhiteList |
The user is not in the white list of importing image. |
Vous n'êtes pas autorisé à importer des images. |
|
403 |
NoSetRoletoECSServiceAcount |
ECS service account Have no right to access your OSS.please attach a role of access your oss to ECS service account. |
ECS n'est pas autorisé à accéder au compartiment ou à l'objet OSS spécifié. |
|
403 |
MissingParameter.DiskDeviceMapping |
The specified parameter DiskDeviceMapping is not supplied. |
Un paramètre commençant par DiskDeviceMapping est requis. |
|
403 |
InvalidVHDImage.IncorrectSize |
The specified size of the VHD image does not meet the 'header.MaxTableEntries * header.BlockSize' specification. |
La taille de l'image VHD spécifiée ne respecte pas la limite de header.MaxTableEntries multiplié par header.BlockSize. |
|
403 |
InvalidOSSBucket.EncryptUnsupported |
Accessing objects from encrypted OSS bucket is not supported. |
Vous ne pouvez pas lire les objets depuis des compartiments OSS chiffrés. |
|
403 |
InvalidArchitecture.PlatformUnsupported |
The OS platform you selected does not support the specified architecture. |
Le système d'exploitation sélectionné ne prend pas en charge le type d'architecture spécifié. |
|
403 |
InvalidAccountStatus.OSSDisabled |
OSS is disabled due to invalid account status. |
OSS est désactivé car le compte n'est pas valide. |
|
404 |
InvalidResourceGroup.NotFound |
The ResourceGroup provided does not exist in our records. |
Le groupe de ressources est introuvable. |
Pour obtenir la liste des codes d'erreur, consultez les Codes d'erreur de service.