マシン・イメージは、仮想マシン・インスタンスを起動するために使用するハード・ディスク・スナップショットです。 マシン・イメージ・アーカイブは、単一Rawディスク・イメージ(パーティション表およびカーネルを含みます)で、tarアーカイブのルートに格納し、gzipで圧縮する必要があります。 すべてのマシン・イメージは、Oracle Public Cloud Machineテンプレートに基づいている必要があります。 マシン・イメージ・テンプレートは、Oracle Cloud Administratorでのみ作成されます。 マシン・イメージおよびテンプレートの作成方法の詳細は、『Oracle Compute Cloud Serviceの使用』を参照してください。
このAPIを使用すると、秘密マシン・イメージをシステムに追加できます。
メソッド
POST
POST
リクエストが必要です:
POST
リクエスト(マシン・イメージ・オブジェクトの作成) - このリクエストは、新しいマシン・イメージ・オブジェクトを作成し、レスポンス本文にこのオブジェクトのURIを戻します。
POST
リクエスト(マシン・イメージ・ファイルのアップロード) - このリクエストは、最初の手順で戻されたURIを使用して、システムの対応するマシン・イメージをアップロードします。 マシン・イメージ・ファイル(tar.gzip形式)は、次のヘッダーを使用してHTTPリクエストで渡されます:
Accept:application/oracle-compute-v3+json
Accept-Encoding:gzip;q=1.0,identity;q=0.5
Content-Type:application/x-tar
Content-Length:<length of the machine image file>
Content-Range:bytes <filesize in the format {0-[filesize in bytes-1]/filesize}>
注意:
チャンク暗号化はサポートされていません。RESTリソース
/machineimage/
URI
https://api_endpoint/machineimage/
リクエスト本文のパラメータ
パラメータ | 説明 |
---|---|
name | マシン・イメージの一意の階層名。 たとえば、/mytenant/public/mymachineimage です |
no_upload | イメージ・ファイルがシステムで使用可能かどうかを示します。 これは、常にFalse に設定する必要があります。 |
属性 |
(オプション)起動時にこのマシン・イメージのインスタンスに渡すことができるユーザー定義のパラメータ。 これらのパラメータはJSONオブジェクトとして渡されます。 構文(キー/値のペア): '{ "key1": "value1", "key2": "value2" }' たとえば、起動時にマシン・イメージに渡されるデータベース・サーバーの場所およびログインの詳細を指定できます。 属性の詳細は、『Oracle Compute Cloud Serviceの使用』のオーケストレーション・テンプレートに関する項を参照してください。 |
割当て制限 | (オプション)このイメージが作成される割当て制限。 |
例: マシン・イメージの追加
第1部: マシン・イメージ・オブジェクトの作成
POST https://api.oc.example.com/machineimage/
{ "name": "/oracle/public/TestImage3", "sizes": {"total": "3684711429"}, "no_upload": false, "attributes": {"type": "linux"} }
{ "account": "/oracle/public", "name": "/oracle/public/TestImage3", "sizes": {"uploaded": null, "total": 360, "decompressed": null}, "signature": "", "no_upload": false, "uri": "http://api.oc.example.com/machineimage/oracle/public/TestImage3", "quota": "/oracle/public/64b1345d-b729-4cbc-a2dc-44a164f2e4a6", "state": "available", "signed_by": null, "file": "http://api.oc.example.com:80/machineimage/oracle/public/TestImage3", "attributes": {}, "checksums": {}, "error_reason": "", "audited": null }
第2部: マシン・イメージ・オブジェクトのアップロード
注意:
マシン・イメージ・ファイル・コンテンツの指定は、APIとの対話で使用されているツールまたは言語により異なります。 ファイル・コンテンツの指定方法の詳細は、使用しているツールまたは言語のドキュメントを参照してください。例: cURLを使用したマシン・イメージの追加
注意:
cURLの詳細は、「cURLを使用したREST APIコールの起動」を参照してください。$ curl -c /tmp/cookie -X POST -H "Content-Type: text/plain" -d '{"result": null, "password": "abc123", "uri": null, "user": "/mytenant/myuser"}' http://api.oc.example.com/authenticate/
$curl -v -b /tmp/cookie -X POST -H "Content-Type: application/oracle-compute-v3+json" -d ' {"name": "/oracle/public/TestImage3", "sizes": {"total" : 376857280 }, "no_upload": false, "attributes": {"type": "linux"}}' http://api.oc.example.com/machineimage/
$ curl -v -b /tmp/cookie -X POST -H "Expect: " -H "Accept-Encoding: gzip;q=1.0, identity; q=0.5" -H "Accept: application/oracle-compute-v3+json" -H "Content-Range: bytes 0-376857279/376857280" -H "Content-Type: application/x-tar" --data-binary "@MACHINE_IMAGE.tar.gz" http://api.oc.example.com/machineimage/oracle/public/TestImage3
このAPIを使用すると、マシン・イメージを削除できます。
メソッド
DELETE
RESTリソース
/machineimage/name
URI
https://api_endpoint/machineimage/name
URIパラメータ
パラメータ | 説明 |
---|---|
name | マシン・イメージの一意の階層名。 たとえば、/mytenant/public/mymachineimage です |
URIの例
https://api.oc.example.com/machineimage/mytenant/public/webserver-20130912
このAPIを使用すると、特定のコンテナ内に存在するマシン・イメージのリストを検出できます。
注意:
検出APIコールは、指定されたコンテナ内のオブジェクトの名前を表示しますが、オブジェクトの詳細は表示しません。 オブジェクトの名前をリストするには、Accept
ヘッダーをapplication/oracle-compute-v3+directory+json
に設定します。 その他の目的では、Accept
ヘッダーをapplication/oracle-compute-v3+json
に設定する必要があります。 メソッド
GET
RESTリソース
/machineimage/container/
URI
https://api_endpoint/machineimage/container/
URIパラメータ
パラメータ | 説明 |
---|---|
container | マシン・イメージの階層的な名前空間 |
URIの例
https://api.oc.example.com/machineimage/mytenant/
レスポンス本文の例
{"result": ["/mytenant/public/oraclelinux-x64", "/mytenant/public/OL6.6_20GB"]}
このAPIを使用すると、特定のマシン・イメージの詳細を取得できます。
メソッド
GET
RESTリソース
/machineimage/name
URI
https://
api_endpoint
/machineimage/name
URIパラメータ
パラメータ | 説明 |
---|---|
name | マシン・イメージの一意の階層名。 たとえば、/mytenant/public/mymachineimage です |
URIの例
https://api.oc.example.com/machineimage/oracle/public/linux6_16.1.2_64
レスポンス本文の例
{ "account": null, "name": "/oracle/public/linux6_16.1.2_64", "sizes": {"uploaded": 1572050349, "total": 1572050349, "decompressed": 11811160064}, "signature": null, "no_upload": false, "uri": "https://api/machineimage/oracle/public/linux6_16.1.2_64", "quota": null, "state": "available", "signed_by": null, "file": "https://api:444/machineimage/oracle/public/linux6_16.1.2_64", "attributes": {}, "checksums": null, "error_reason": null, "audited": null }
このAPIを使用すると、コンテナ内のすべてのマシン・イメージの詳細を取得できます。
メソッド
GET
RESTリソース
/machineimage/container/
URI
https://api_endpoint/machineimage/container/?quota=quotaValue
URIパラメータ
パラメータ | 説明 |
---|---|
container | マシン・イメージの階層的な名前空間 |
quota=quotaValue | (オプション)イメージに関連付けられる割当て制限 |
URIの例
https://api.oc.example.com/mytenant
レスポンス本文の例
{ "result": [ { "account": "/mytenant/cloud_storage", "name": "/mytenant/public/oraclelinux-x64", "sizes": { "uploaded": 1853334188, "total": 1853334188, "decompressed": 22020096000 }, "uri": "http://api.oc.example.com/machineimage/mytenant/public/oraclelinux-x64", "quota": null, "no_upload": true, "state": "available", "signed_by": null, "file": "http://api.oc.example.com/machineimage/mytenant/public/oraclelinux-x64", "signature": "", "checksums": {}, "attributes": {}, "error_reason": "", "audited": null }, { "account": "/mytenant/cloud_storage", "name": "/mytenant/public/OL6.6_20GB", "sizes": { "uploaded": 1545137187, "total": 1545137187, "decompressed": 21474836480 }, "signature": "", "no_upload": true, "uri": "https://api.oc.example.com/machineimage/mytenant/public/OL6.6_20GB", "quota": "/mytenant/4123456f-e94g-39e1-ac96-ef23a930692e", "state": "available", "signed_by": null, "file": "https://api.oc.com/machineimage/mytenant/public/OL6.6_20GB", "attributes": {}, "checksums": {}, "error_reason": "", "audited": null } ] }