Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Manifeste d'importation de VM
Le manifeste d'importation est un fichier XML créé et consommé par les opérations ImportInstancede l'API Amazon EC2 et. ImportVolume Notez que ces opérations ne sont pas prises en charge par le AWS CLI.
Le manifeste permet de diviser une image de machine virtuelle en petites parties pour le transfert, puis de la réassembler à destination, avec possibilité de réessayer des transferts partiels ayant échoué. Ce fichier est généralement créé, consommé et détruit par les outils Amazon EC2 sans intervention de l'utilisateur.
Dans certaines situations exceptionnelles, les développeurs peuvent souhaiter créer un manifeste manuellement ou par programmation, ce qui permet de contourner certaines opérations d'API tout en fournissant un manifeste pour d'autres opérations nécessitant le fichier comme valeur de paramètre.
Cette rubrique décrit la structure du manifeste et fournit un exemple de fichier.
Note
La manipulation directe du manifeste s'écarte du flux de travail standard de l'API Amazon EC2. Nous vous recommandons plutôt de suivre les procédures décrites dans les Import/Export processus de machine virtuelle.
Schéma du manifeste
Le schéma ci-dessous décrit le format du manifeste. La documentation des éléments du schéma est présentée en ligne.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="manifest"> <xs:complexType> <xs:sequence> <xs:element name="version" type="xs:string"> <xs:annotation> <xs:documentation> Version designator for the manifest file, </xs:documentation> </xs:annotation> </xs:element> <xs:element name="file-format" type="xs:string"> <xs:annotation> <xs:documentation> File format of volume to be imported, with value RAW, VHD, or VMDK. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="importer" type="Importer"> <xs:annotation> <xs:documentation> Complex type describing the software that created the manifest. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="self-destruct-url" type="xs:anyURI"> <xs:annotation> <xs:documentation> Signed URL used to delete the stored manifest file. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="import" type="Import"> <xs:annotation> <xs:documentation> Complex type describing the size and chunking of the volume file. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="Importer"> <xs:sequence> <xs:element name="name" type="xs:string"> <xs:annotation> <xs:documentation> Name of the software that created the manifest. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="version" type="xs:string"> <xs:annotation> <xs:documentation> Version of the software that created the manifest. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="release" type="xs:string"> <xs:annotation> <xs:documentation> Release number of the software that created the manifest. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="Import"> <xs:sequence> <xs:element name="size" type="xs:long"> <xs:annotation> <xs:documentation> Exact size of the file to be imported (bytes on disk). </xs:documentation> </xs:annotation> </xs:element> <xs:element name="volume-size" type="xs:long"> <xs:annotation> <xs:documentation> Rounded size in gigabytes of volume to be imported. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="parts" type="Parts"> <xs:annotation> <xs:documentation> Complex type describing and counting the parts into which the file is split. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="Parts"> <xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded" name="part" type="Part"> <xs:annotation> <xs:documentation> Definition of a particular part. Any number of parts may be defined. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:attribute name="count" type="xs:int"> <xs:annotation> <xs:documentation> Total count of the parts. </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:complexType name="Part"> <xs:sequence> <xs:element name="byte-range" type="ByteRange"> <xs:annotation> <xs:documentation> Complex type defining the starting and ending byte count of a part. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="key" type="xs:string"> <xs:annotation> <xs:documentation> The S3 object name of the part. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="head-url" type="xs:anyURI"> <xs:annotation> <xs:documentation> Signed URLs for issuing a HEAD request on the S3 object containing this part. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="get-url" type="xs:anyURI"> <xs:annotation> <xs:documentation> Signed URLs for issuing a GET request on the S3 object containing this part. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="delete-url" minOccurs="0" type="xs:anyURI"> <xs:annotation> <xs:documentation> Signed URLs for issuing a DELETE request on the S3 object containing this part. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:attribute name="index" type="xs:int"> <xs:annotation> <xs:documentation> Index number of this part. </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:complexType name="ByteRange"> <xs:attribute name="start" type="xs:long"> <xs:annotation> <xs:documentation> Offset of a part's first byte in the disk image. </xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="end" type="xs:long"> <xs:annotation> <xs:documentation> Offset of a part's last byte in the disk image. </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> </xs:schema>
Exemples
Ce premier exemple de manifeste décrit une image de volume en deux parties. Les fichiers contenant les pièces se trouvent sur un système local et doivent être chargés sur Amazon S3.
<manifest> <version>2010-11-15</version> <file-format>VMDK</file-format> <importer> <name>ec2-upload-disk-image</name> <version>1.0.0</version> <release>2010-11-15</release> </importer> <self-destruct-url>https://example-disk-part-bucket.s3.amazonaws.com/d6e1ca17-72f6-4ab0-b2c8-d7ba8186cb23/cirros-0.3.2-x86_64-disk.vmdkmanifest.xml?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Expires=1416618486&Signature=m%2Bl%2FkuKuvfEeD%2Fya%2B0TrgeiH%2FLM%3D</self-destruct-url> <import> <size>12595200</size> <volume-size>1</volume-size> <parts count="2"> <part index="0"> <byte-range end="10485759" start="0"/> <key>d6e1ca17-72f6-4ab0-b2c8-d7ba8186cb23/cirros-0.3.2-x86_64-disk.vmdk.part0</key> <head-url>https://example-disk-part-bucket.s3.amazonaws.com/d6e1ca17-72f6-4ab0-b2c8-d7ba8186cb23/cirros-0.3.2-x86_64-disk.vmdk.part0?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Expires=1416618486&Signature=2yqS2VGYXGmqcbu%2FrQEn8FGIKaI%3D</head-url> <get-url>https://example-disk-part-bucket.s3.amazonaws.com/d6e1ca17-72f6-4ab0-b2c8-d7ba8186cb23/cirros-0.3.2-x86_64-disk.vmdk.part0?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Expires=1416618486&Signature=nEvl8VhFoEuIjJFRkAYB2IWKRtY%3D</get-url> <delete-url>https://example-disk-part-bucket.s3.amazonaws.com/d6e1ca17-72f6-4ab0-b2c8-d7ba8186cb23/cirros-0.3.2-x86_64-disk.vmdk.part0?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Expires=1416618486&Signature=CX19zc4Eys8BN%2FXsoepk%2Bi3i4No%3D</delete-url> </part> <part index="1"> <byte-range end="12595199" start="10485760"/> <key>d6e1ca17-72f6-4ab0-b2c8-d7ba8186cb23/cirros-0.3.2-x86_64-disk.vmdk.part1</key> <head-url>https://example-disk-part-bucket.s3.amazonaws.com/d6e1ca17-72f6-4ab0-b2c8-d7ba8186cb23/cirros-0.3.2-x86_64-disk.vmdk.part1?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Expires=1416618486&Signature=3b%2F8ky92L8g%2BBf15Ou194VnR4Js%3D</head-url> <get-url>https://example-disk-part-bucket.s3.amazonaws.com/d6e1ca17-72f6-4ab0-b2c8-d7ba8186cb23/cirros-0.3.2-x86_64-disk.vmdk.part1?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Expires=1416618486&Signature=W%2FxagI5ChmfqqgY8WwyDJ3Rgviw%3D</get-url> <delete-url>https://example-disk-part-bucket.s3.amazonaws.com/d6e1ca17-72f6-4ab0-b2c8-d7ba8186cb23/cirros-0.3.2-x86_64-disk.vmdk.part1?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Expires=1416618486&Signature=08FH3QPwkIcNURnNpT9DIvvhQ0I%3D</delete-url> </part> </parts> </import> </manifest>
Le deuxième exemple décrit une image de volume dont une seule partie a déjà été chargée sur Amazon S3.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <manifest> <version>2010-11-15</version> <file-format>VMDK</file-format> <importer> <name>Linux_RHEL_59_64.vmdk</name> <version>1.0.0</version> <release>2010-11-15</release> </importer> <self-destruct-url>https://example-disk-part-bucket.s3.ap-northeast-2.amazonaws.com/Linux_RHEL_59_64.vmdk?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ26ZRPZDGYJT4KAQFEXAMPLE%2Fap-northeast-2%2Fs3%2Faws4_request&X-Amz-Date=20151119T234529Z&X-Amz-Expires=604800&X-Amz-Signature=4dbf803f2e52fb6a876d3b63778033af42ec11155b37366ab4fca56691672807&X-Amz-SignedHeaders=Host</self-destruct-url> <import> <size>994433536</size> <volume-size>1</volume-size> <parts count="1"> <part index="0"> <byte-range end="994433536" start="0"/> <key>Linux_RHEL_59_64.vmdk</key> <head-url>https://example-disk-part-bucket.s3.ap-northeast-2.amazonaws.com/Linux_RHEL_59_64.vmdk?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ26ZRPZDGYJT4KAQFEXAMPLE%2Fap-northeast-2%2Fs3%2Faws4_request&X-Amz-Date=20151119T234529Z&X-Amz-Expires=604800&X-Amz-Signature=4c3a7bdf3ef8fa53a5585fc67747c81ea1f65bf09f3768998a575dabf5dfda2e&X-Amz-SignedHeaders=Host</head-url> <get-url>https://example-disk-part-bucket.s3.ap-northeast-2.amazonaws.com/Linux_RHEL_59_64.vmdk?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ26ZRPZDGYJT4KAQFEXAMPLE%2Fap-northeast-2%2Fs3%2Faws4_request&X-Amz-Date=20151119T234529Z&X-Amz-Expires=604800&X-Amz-Signature=329d6abb673e4ce11c0aa602f34f62fb8ced703e8ae6c04f24c16e79d7699e52&X-Amz-SignedHeaders=Host</get-url> <delete-url>https://example-disk-part-bucket.s3.ap-northeast-2.amazonaws.com/Linux_RHEL_59_64.vmdk?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ26ZRPZDGYJT4KAQFEXAMPLE%2Fap-northeast-2%2Fs3%2Faws4_request&X-Amz-Date=20151119T234529Z&X-Amz-Expires=604800&X-Amz-Signature=4dbf803f2e52fb6a876d3b63778033af42ec11155b37366ab4fca56691672807&X-Amz-SignedHeaders=Host</delete-url> </part> </parts> </import> </manifest>