Importer une OMI depuis un bucket

Vous pouvez importer une image machine OUTSCALE (OMI) qui a été exportée au préalable sur un bucket compatible S3 pour en créer une copie dans votre compte.

Ceci vous permet de copier une OMI entre plusieurs comptes qui sont dans des Régions différentes ou dans la même. La copie de l’OMI appartient à votre compte, est indépendante de l’OMI source et a son propre ID. Tout snapshot utilisé par l’OMI source est également copié dans votre compte.

Lorsque vous importez une OMI, vous devez spécifier l’un des éléments suivants au sujet de son emplacement :

Le fichier manifeste est obsolète sept jours après la fin d’un export, car il contient des URLs pré-signées des snapshots associés (les URLs pré-signées sont valables pendant sept jours uniquement).

Importer une OMI avec OSC CLI

À ce jour, cette section est disponible en anglais uniquement.

The CreateImage command creates an OUTSCALE machine image (OMI).
You can use this method in different ways:

  • Creating from a VM: You create an OMI from one of your virtual machines (VMs).

  • Copying an OMI: You copy an existing OMI. The source OMI can be one of your own OMIs, or an OMI owned by another account that has granted you permission via the UpdateImage method.

  • Registering from a snapshot: You register an OMI from an existing snapshot. The source snapshot can be one of your own snapshots, or a snapshot owned by another account that has granted you permission via the UpdateSnapshot method.

  • Registering from a bucket by using a manifest file: You register an OMI from the manifest file of an OMI that was exported to an OUTSCALE Object Storage (OOS) bucket. First, the owner of the source OMI must export it to the bucket by using the CreateImageExportTask method. Then, they must grant you permission to read the manifest file via a pre-signed URL or Access Control Lists. For more information, see [Managing Access to Your Buckets and Objects].

  • Registering from a bucket without using a manifest file: This is similar to the previous case but you manually specify all the information that would be in a manifest file instead of using a manifest file.

Registering from a bucket enables you to copy an OMI across Regions.

For more information, see About OMIs.

Request sample: Registering from a bucket by using a manifest file
$ osc-cli api CreateImage --profile "default" \
    --ImageName "register-image-from-bucket-example" \
    --FileLocation "https://oos.eu-west-2.outscale.com/BUCKET/KEY?AWSAccessKeyId=ABCDEFGHIJ0123456789&Expires=1493372309&Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

This command contains the following attributes that you need to specify:

  • Description: (optional) A description for the new OMI.

  • DryRun: (optional) If true, checks whether you have the required permissions to perform the action.

  • FileLocation: (optional) (when registering from a bucket by using a manifest file) The pre-signed URL of the manifest file for the OMI you want to register. For more information, see Configuring a Pre-signed URL or Managing Access to Your Buckets and Objects.
    You can also specify the normal URL of the OMI if you have permission on the OOS bucket, without using the manifest file, but in that case, you need to manually specify through the other parameters all the information that would otherwise be read from the manifest file.

  • ImageName: (optional) A unique name for the new OMI.
    Constraints: 3-128 alphanumeric characters, underscores (_), spaces (` ), parentheses (()), slashes (/), periods (.), or dashes (-`).

  • ProductCodes: (optional) The product codes associated with the OMI.

The CreateImage command returns the following elements:

  • Image: Information about the OMI.

  • ResponseContext: Information about the context of the response.

Result sample: Registering from a bucket by using a manifest file
{
  "ResponseContext": {
    "RequestId": "0475ca1e-d0c5-441d-712a-da55a4175157"
  },
  "Image": {
    "StateComment": {},
    "State": "pending",
    "RootDeviceType": "bsu",
    "RootDeviceName": "/dev/sda1",
    "ProductCodes": [
      "0001"
    ],
    "PermissionsToLaunch": {
      "GlobalPermission": false,
      "AccountIds": []
    },
    "AccountId": "123456789012",
    "Tags": [],
    "Description": "",
    "ImageId": "ami-12345678",
    "BlockDeviceMappings": [
      {
        "DeviceName": "/dev/sda1",
        "Bsu": {
          "VolumeType": "standard",
          "DeleteOnVmDeletion": true,
          "VolumeSize": 50,
          "SnapshotId": "snap-12345678"
        }
      }
    ],
    "ImageType": "machine",
    "CreationDate": "2010-10-01T12:34:56.789Z",
    "FileLocation": "https://oos.eu-west-2.outscale.com/BUCKET/KEY?AWSAccessKeyId=ABCDEFGHIJ0123456789&Expires=1493372309&Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "Architecture": "x86_64",
    "ImageName": "register-image-from-bucket-example"
  }
}

Importer une OMI avec AWS CLI

Pour importer une OMI depuis un bucket, utilisez la commande register-image en suivant cette syntaxe :

Exemple de requête
$ aws ec2 register-image \
    --profile YOUR_PROFILE \
    --name Test Image \
    --description Test \
    --architecture x86_64 \
    --image-location https://oos.eu-west-2.outscale.com/bucket/object?AWSAccessKeyId=A1BC2DE3FGHIJ4LMN567&Expires=1493971940&Signature=%2FR63JOJcFzNGubLEXckKGVIi8kk%3D \
    --root-device-name /dev/sda1 \
    --block-device-mapping YOUR_BLOCK_DEVICE_MAPPING \
    --endpoint https://fcu.eu-west-2.outscale.com

Cette commande contient les attributs suivants que vous devez spécifier :

  • (optionnel) profile : Le profil nommé que vous voulez utiliser, créé pendant la configuration d’AWS CLI. Pour en savoir plus, voir Installer et configurer AWS CLI.

  • name : Le nom de l’OMI une fois copiée dans votre compte.

  • (optionnel) description : Une description pour la copie de l’OMI dans votre compte (si différente de celle de l’OMI source).

  • (optionnel) architecture : L’architecture pour la copie de l’OMI dans votre compte (i386 | x86_64). Si vous ne spécifiez aucune architecture, l’architecture i386 est paramétrée par défaut.

  • (optionnel) image-location : L’URL pré-signée pour le fichier manifeste de l’OMI, ou le chemin d’accès complet vers l’OMI dans le bucket.

    • Si vous spécifiez une URL pré-signée dans l’attribut image-location, ceci est le seul attribut que vous avez besoin de spécifier pour la commande car toutes les autres informations sont contenues dans le fichier manifeste de l’OMI.

    • Si vous spécifiez le chemin d’accès complet vers l’OMI dans le bucket, vous devez spécifier les autres attributs.

  • (optionnel) root-device-name : Le device name pour le root device (par exemple, /dev/sda1)

  • (optionnel) block-device-mapping : Une ou plusieurs entrées block device mapping. Pour en savoir plus, voir Définir des block device mappings.

  • endpoint : Le endpoint correspondant à la Région à laquelle vous voulez envoyer la requête.

La commande register-image renvoie l’élément suivant :

  • ImageId : L’ID de la copie de l’OMI dans votre compte.

Exemple de résultat
{
 "ImageId": "ami-12345678"
}

Pages connexes

Méthodes API correspondantes

AWS™ et Amazon Web Services™ sont des marques de commerce d’Amazon Technologies, Inc. ou de ses affiliées aux États-Unis et/ou dans les autres pays.