Mengimpor gambar ke Elastic Compute Service (ECS). Gambar yang diimpor akan tersedia sebagai custom image di wilayah tujuan dan dapat digunakan untuk membuat instance ECS (RunInstances) atau mengganti disk sistem instance ECS (ReplaceSystemDisk).
Catatan penggunaan
Perhatikan hal-hal berikut:
- Sebelum mengimpor gambar, unggah terlebih dahulu gambar tersebut ke bucket Object Storage Service (OSS). Untuk informasi selengkapnya, lihat Upload objects.
- Dalam beberapa skenario, Anda mungkin ingin membuat gambar berdasarkan data sistem operasi dari server sumber, mengimpornya ke ECS, lalu membuat instance ECS dari gambar tersebut. Server sumber dapat berupa server fisik, mesin virtual, atau cloud host. Jika driver virtio belum diinstal pada server sumber, instance ECS yang dibuat mungkin tidak dapat dijalankan. Untuk mencegah masalah ini, pastikan driver virtio telah diinstal pada server sumber sebelum mengimpor gambar. Untuk informasi selengkapnya, lihat Install the virtio driver.
-
Sebelum mengimpor gambar untuk pertama kalinya, Anda harus memberikan otorisasi kepada ECS melalui Resource Access Management (RAM) agar dapat mengakses Bucket OSS Anda. Jika ECS tidak diberi otorisasi untuk mengakses Bucket OSS Anda, operasi ImportImage akan mengembalikan kode kesalahan
NoSetRoletoECSServiceAcount. Anda dapat menyelesaikan otorisasi ini dengan satu klik di halaman Otorisasi Akses Sumber Daya Cloud pada konsol RAM. Alternatif lain, Anda dapat menyelesaikan otorisasi menggunakan Peran RAM dan kebijakan RAM. Contoh berikut menunjukkan kebijakan dan izin yang diperlukan dalam prosedur otorisasi. Untuk informasi selengkapnya, lihat Kontrol akses ke sumber daya dengan menggunakan Pengguna RAM.1. Buat peran bernama
AliyunECSImageImportDefaultRole. Nama peran ini harus digunakan secara tepat; jika tidak, gambar tidak dapat diimpor. Konfigurasikan kebijakan kepercayaan berikut untuk peran tersebut:{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" ] } } ], "Version": "1" }2. Lampirkan kebijakan sistem
AliyunECSImageImportRolePolicyke peran tersebut. Anda juga dapat membuat kebijakan kustom yang berisi konten berikut dan melampirkannya ke peran tersebut:{ "Version": "1", "Statement": [ { "Action": [ "oss:GetObject", "oss:GetBucketLocation", "oss:GetBucketInfo" ], "Resource": "*", "Effect": "Allow" } ] } - Anda tidak dapat menghapus gambar yang sedang dalam proses impor. Namun, Anda dapat membatalkan tugas impor gambar dengan memanggil operasi CancelTask.
- Anda hanya dapat mengimpor gambar ke wilayah yang sama dengan bucket OSS tempat file gambar diunggah.
- Nilai N yang valid dalam DiskDeviceMapping.N berkisar dari 1 hingga 17. Saat N diatur ke 1, disk tersebut merupakan disk sistem. Saat N diatur ke nilai antara 2 hingga 17, disk tersebut merupakan disk data. Jika N lebih dari 17, parameter yang diawali dengan
DiskDeviceMapping.Nakan diabaikan. - Saat Anda mengatur
Architecturekearm64atau mengaturPlatformkeCentOS Stream,Anolis,AlmaLinux,UOS,Kylin, atauRocky Linux, perhatikan hal-hal berikut:- Untuk memastikan password dapat diatur atau pasangan kunci dapat dimodifikasi pada gambar yang diimpor, pastikan gambar tersebut memenuhi persyaratan berikut sebelum diimpor:
- Kernel sistem operasi mendukung fitur
CONFIG_FW_CFG_SYSFS. Secara default, kernel komunitas Linux versi 4.6 ke atas dan kernel CentOS versi 3.10.0-826.el7 ke atas mendukung fitur ini. Anda dapat menjalankan perintahgrep -nr CONFIG_FW_CFG_SYSFS /boot/config-$(uname -r)pada server sumber gambar. Jika output perintah tersebut berisiCONFIG_FW_CFG_SYSFS=y, berarti kernel gambar tersebut mendukung fiturCONFIG_FW_CFG_SYSFS. - Alibaba Cloud cloud-init versi terbaru telah diinstal pada sistem operasi. Jika versi cloud-init adalah 19.1, versi minor harus 19.1.3 atau lebih baru. Jika versi cloud-init adalah 0.7.6a pada beberapa versi awal sistem operasi, versi minor harus 0.7.6a15 atau lebih baru. Untuk informasi selengkapnya, lihat Install cloud-init.
- Sistem operasi mendukung algoritma enkripsi SHA-512.
- Kernel sistem operasi mendukung fitur
- Jika Anda ingin gambar yang diimpor mendukung pengubahan ukuran disk dan sistem file, pastikan gambar tersebut memenuhi persyaratan berikut sebelum diimpor:
- Versi kernel sistem operasi lebih baru dari 3.6.
- Gambar mendukung perintah growpart. Untuk mendukung perintah ini, instal paket
cloud-utils-growpart. Metode instalasi paket ini bervariasi tergantung sistem operasi. Untuk informasi selengkapnya, lihat Extend the partitions and file systems of disks on a Linux instance. - Gambar mendukung perintah resize2fs. Untuk mendukung perintah ini, instal paket
e2fsprogs. Secara default, paket ini telah diinstal pada sistem operasi. Jika belum, instal paket tersebut. - Alibaba Cloud cloud-init versi terbaru telah diinstal pada sistem operasi. Jika versi cloud-init adalah 19.1, versi minor harus 19.1.3 atau lebih baru. Jika versi cloud-init adalah 0.7.6a pada beberapa versi awal sistem operasi, versi minor harus 0.7.6a15 atau lebih baru. Untuk informasi selengkapnya, lihat Install cloud-init.
- Untuk memastikan password dapat diatur atau pasangan kunci dapat dimodifikasi pada gambar yang diimpor, pastikan gambar tersebut memenuhi persyaratan berikut sebelum diimpor:
- Jika gambar yang ingin Anda impor menggunakan arsitektur ARM64, konfigurasikan real-time clock (RTC) agar menggunakan standar waktu Coordinated Universal Time (UTC). Untuk informasi selengkapnya, lihat Linux time and time zones.
- Saat mengimpor gambar, disarankan untuk menentukan DetectionStrategy agar gambar dapat dioptimalkan berdasarkan hasil pemeriksaan. Untuk informasi selengkapnya, lihat Image check items.
Debugging
Parameter permintaan
|
Parameter |
Type |
Required |
Example |
Description |
| Action | String | Yes | ImportImage | Operasi yang ingin Anda lakukan. Tetapkan nilainya ke ImportImage. |
| RegionId | String | Yes | cn-hangzhou | ID wilayah bucket OSS tempat gambar yang akan diimpor diunggah. Anda dapat memanggil operasi DescribeRegions untuk mengambil daftar wilayah terbaru. |
| ImageName | String | No | ImageTestName | Nama gambar. Nama harus terdiri dari 2 hingga 128 karakter. Nama harus dimulai dengan huruf dan tidak boleh dimulai dengan |
| Description | String | No | TestDescription | Deskripsi gambar. Deskripsi harus terdiri dari 2 hingga 256 karakter, dan tidak boleh dimulai dengan |
| Architecture | String | No | x86_64 | Arsitektur sistem operasi. Nilai yang valid:
Nilai default: x86_64. |
| OSType | String | No | linux | Platform sistem operasi. Nilai yang valid:
Nilai default: linux. |
| Platform | String | No | Aliyun | Distribusi sistem operasi. Nilai yang valid:
Nilai default: Others Linux. |
| BootMode | String | No | BIOS | Mode boot gambar. Nilai yang valid:
Nilai default: BIOS. Jika Anda mengatur parameter Catatan Anda harus memahami mode boot yang didukung oleh gambar yang ditentukan. Saat menggunakan parameter ini untuk mengubah mode boot gambar, tentukan mode boot yang didukung oleh gambar tersebut agar instance yang menggunakan gambar ini dapat dijalankan secara normal. |
| RoleName | String | No | AliyunECSImageImportDefaultRole | Nama peran RAM yang digunakan untuk mengimpor gambar. |
| LicenseType | String | No | Auto | Jenis lisensi yang digunakan untuk mengaktifkan sistem operasi setelah gambar diimpor. Nilai yang valid:
Nilai default: Auto. |
| ResourceGroupId | String | No | rg-bp67acfmxazb4p**** | ID kelompok sumber daya tempat gambar akan ditugaskan. |
| DiskDeviceMapping.N.DiskImSize | Integer | No | 80 | Ukuran disk N dalam custom image setelah gambar diimpor. Satuan: GiB. Anda dapat menggunakan parameter ini untuk menentukan ukuran sistem disk dan data disk dalam custom image. Saat menentukan ukuran sistem disk, pastikan ukuran yang ditentukan lebih besar dari atau sama dengan ukuran file gambar yang diimpor. Satuan: GiB. Nilai yang valid:
Setelah file gambar diunggah ke bucket OSS, Anda dapat melihat ukuran file gambar tersebut di bucket OSS. Catatan Parameter ini akan dihapus di masa mendatang. Kami menyarankan agar Anda menggunakan DiskDeviceMapping.N.DiskImageSize untuk memastikan kompatibilitas di masa depan. |
| DiskDeviceMapping.N.Device | String | No | null | Nama perangkat disk N dalam custom image. Catatan Parameter ini akan dihapus di masa mendatang. Kami menyarankan agar Anda tidak menggunakan parameter ini untuk memastikan kompatibilitas di masa depan. |
| DiskDeviceMapping.N.OSSBucket | String | No | ecsimageos | Bucket OSS tempat gambar disimpan. Catatan Sebelum mengimpor gambar untuk pertama kalinya, Anda harus menggunakan RAM untuk memberikan otorisasi kepada ECS agar dapat mengakses bucket OSS Anda. Jika ECS tidak diberi otorisasi untuk mengakses bucket OSS Anda, kode kesalahan NoSetRoletoECSServiceAcount akan dikembalikan saat Anda memanggil operasi ImportImage. Untuk informasi selengkapnya, lihat bagian " Catatan penggunaan" dalam topik ini. |
| DiskDeviceMapping.N.Format | String | No | QCOW2 | Format gambar. Nilai yang valid:
Parameter ini kosong secara default, yang berarti sistem akan memeriksa format gambar dan menggunakan hasil pemeriksaan tersebut sebagai nilai parameter ini. |
| DiskDeviceMapping.N.OSSObject | String | No | CentOS_5.4_32.raw | Nama (kunci) objek tempat gambar yang diunggah disimpan di bucket OSS. |
| DiskDeviceMapping.N.DiskImageSize | Integer | No | 80 | Ukuran disk N dalam custom image setelah gambar diimpor. Anda dapat menggunakan parameter ini untuk menentukan ukuran sistem disk dan data disk dalam custom image. Saat menentukan ukuran sistem disk, pastikan ukuran yang ditentukan lebih besar dari atau sama dengan ukuran file gambar yang diimpor. Satuan: GiB. Nilai yang valid:
Setelah file gambar diunggah ke bucket OSS, Anda dapat melihat ukuran file gambar tersebut di bucket OSS. |
| Tag.N.Key | String | No | TestKey | Kunci tag N yang akan ditambahkan ke custom image. Nilai N yang valid: 1 hingga 20. Kunci tag tidak boleh berupa string kosong. Kunci tag dapat mencapai panjang maksimum 128 karakter dan tidak boleh mengandung |
| Tag.N.Value | String | No | TestValue | Nilai tag N yang akan ditambahkan ke custom image. Nilai N yang valid: 1 hingga 20. Nilai tag dapat berupa string kosong. Nilai tag dapat mencapai panjang maksimum 128 karakter dan tidak boleh mengandung |
| DetectionStrategy | String | No | Standard | Mode pemeriksaan gambar. Jika Anda tidak menentukan parameter ini, gambar tidak akan diperiksa. Hanya mode pemeriksaan standar yang didukung. Catatan Parameter ini didukung untuk sebagian besar gambar Linux dan Windows. Untuk informasi selengkapnya tentang item pemeriksaan gambar dan batasan sistem operasi untuk pemeriksaan gambar, lihat Overview of image check dan Operating system limits for image check. |
Parameter respons
Parameter |
Type |
Example |
Description |
| RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** | ID permintaan. |
| ImageId | String | m-bp67acfmxazb4p**** | ID gambar. |
| TaskId | String | t-bp67acfmxazb4p**** | ID tugas impor gambar. |
| RegionId | String | cn-hangzhou | ID wilayah gambar. |
Contoh
Permintaan contoh
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>
Respons sukses contoh
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"
}
Kode kesalahan
|
Kode status HTTP |
Kode kesalahan |
Pesan kesalahan |
Deskripsi |
| 400 | UnsupportedSuffix.OSSObject | The specified OSS object suffix is not supported. | Akhiran objek OSS yang ditentukan tidak didukung. |
| 400 | InvalidImageName.Malformed | The specified Image name is wrongly formed. | Format ImageName tidak valid. Nama harus terdiri dari 2 hingga 128 karakter. Nama harus dimulai dengan huruf dan tidak boleh dimulai dengan acs: atau aliyun. Tidak boleh mengandung http:// atau https://. Nama dapat mengandung huruf, angka, titik (.), titik dua (:), garis bawah (_), dan tanda hubung (-). |
| 400 | InvalidOSSObject.Malformed | The specified OSS object is wrongly formed. | Nilai DiskDeviceMapping.N.OSSObject tidak valid. |
| 400 | InvalidDescription.Malformed | The specified Image description is wrongly formed. | Format Description tidak valid. |
| 400 | InvalidArchitecture.Malformed | The specified Architecture is wrongly formed. | Format Architecture tidak valid. |
| 400 | InvalidPlatform.Malformed | The specified Platform is wrongly formed. | Nilai Platform tidak valid. |
| 400 | InvalidOSType.Malformed | The specified OSType is wrongly formed. | Format OSType tidak valid. |
| 400 | InvalidImageName.Duplicated | The destination image is exist. | Nama gambar sudah ada. |
| 400 | InvalidImageSize | %s | Ukuran gambar tidak valid. |
| 400 | InvalidDataDiskSize | The specified DiskDeviceMapping.N.DiskImSize should be in the specified range. | Nilai DiskDeviceMapping.N.DiskImSize tidak valid. |
| 400 | InvalidImageFormat.Malformed | The specified Image Format is wrongly formed. | Nilai ImageFormat tidak valid. |
| 400 | InvalidRegionId.NotFound | The specified RegionId does not exist. | Nilai RegionId tidak valid. |
| 400 | InvalidRegion.NotSupport | The specified region does not support image import or export. | Operasi ini tidak dapat dilakukan pada gambar di wilayah yang ditentukan. |
| 400 | InvalidOSSBucket.NotFound | The specified OSS bucket does not exist in this region. | Bucket OSS tidak ditemukan. |
| 400 | InvalidOSSObject.NotFound | The specified OSS object does not exist in this region. | Objek OSS tidak ditemukan. |
| 400 | InvalidOSSBucket.NotMatched | The specified OSS bucket is incorrect, %s. | Nilai DiskDeviceMapping.N.OSSBucket tidak valid. Untuk informasi selengkapnya, lihat nilai placeholder %s dalam pesan kesalahan. |
| 403 | ImageIsImporting | The specified Image is importing. | Gambar yang ditentukan sedang dalam proses impor. Operasi tidak dapat dilakukan. |
| 403 | QuotaExceed.Image | The Image Quota exceeds. | Kuota custom image telah habis. |
| 403 | ImportImageFailed | Importing image is failed, Please contact the administrator. | Gambar tidak dapat diimpor. Hubungi administrator sistem. |
| 403 | UserNotInTheWhiteList | The user is not in the white list of importing image. | Anda tidak diizinkan untuk mengimpor gambar. |
| 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 tidak diizinkan mengakses bucket atau objek OSS yang ditentukan. |
| 403 | MissingParameter.DiskDeviceMapping | The specified parameter DiskDeviceMapping is not supplied. | Parameter yang diawali dengan DiskDeviceMapping wajib disediakan. |
| 403 | InvalidVHDImage.IncorrectSize | The specified size of the VHD image does not meet the 'header.MaxTableEntries * header.BlockSize' specification. | Ukuran gambar VHD yang ditentukan tidak memenuhi batas header.MaxTableEntries dikalikan header.BlockSize. |
| 403 | InvalidOSSBucket.EncryptUnsupported | Accessing objects from encrypted OSS bucket is not supported. | Anda tidak dapat membaca objek dari bucket OSS yang dienkripsi. |
| 403 | InvalidArchitecture.PlatformUnsupported | The OS platform you selected does not support the specified architecture. | Sistem operasi yang dipilih tidak mendukung jenis arsitektur yang ditentukan. |
| 403 | InvalidAccountStatus.OSSDisabled | OSS is disabled due to invalid account status. | OSS dinonaktifkan karena status akun tidak valid. |
| 404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | Kelompok sumber daya tidak ditemukan. |
Untuk daftar kode kesalahan, lihat Kode kesalahan layanan.