CLIの使用

このトピックでは、CLIを使用して、Oracle Cloud Infrastructureにアクセスし、サービス関連のタスクを実行する方法について説明します。このトピックでは、CLIが構成されており、すぐに使用できる状態であることを想定しています。

ヒント

コマンドライン・インタフェースの開始では、CLIを使用してインスタンスを起動する方法が順を追って詳しく説明されます。

CLIセッションの開始

MacOS、LinuxおよびUnix

CLIセッションを開始するには、次のコマンドを実行します。

  1. ターミナルを開きます。
  2. 作業用ディレクトリに移動します。

    cd myvirtualspaces/virtualenvs/cli-testing/bin
  3. アクティブ化バッチ・ファイルを実行します。

    source activate

CLIの使用を停止するには、ターミナルで次のコマンドを実行します。

deactivate

Windows

CLIセッションを開始するには、次のコマンドを実行します。

  1. 「管理者として実行」オプションを使用してコマンド・プロンプトを開きます。
  2. 作業用ディレクトリに移動します。

    cd myvirtualspaces/virtualenvs/cli-testing/Scripts
  3. アクティブ化バッチ・ファイルを実行します。

    activate

CLIの使用を停止するには、コマンドラインで次のコマンドを実行します。

deactivate

コマンドライン構文

ほとんどのコマンドでは、サービスの後にリソース・タイプとアクションを指定する必要があります。基本的なコマンドライン構文は次のとおりです:

oci <service> <type> <action> <options>

たとえば、この構文は次のように適用されています:

  • computeは<service>
  • instanceはリソースの<type>
  • launchは<action>
  • その他のコマンド文字列は<options>。

インスタンスを起動する次のコマンドは、一般的なコマンドライン構造を示しています。

oci compute instance launch --availability-domain "EMIr:PHX-AD-1" -c ocid1.compartment.oc1..aaaaaaaal3gzijdlieqeyg35nz5zxil26astxxhqol2pgeyqdrggnx7jnhwa --shape "VM.Standard1.1"   --display-name "Instance 1 for sandbox" --image-id ocid1.image.oc1.phx.aaaaaaaaqutj4qjxihpl4mboabsa27mrpusygv6gurp47kat5z7vljmq3puq --subnet-id  ocid1.subnet.oc1.phx.aaaaaaaaypsr25bzjmjyn6xwgkcrgxd3dbhiha6lodzus3gafscirbhj5bpa

前述の例で、--display-nameオプションを使用して、インスタンスのわかりやすい名前を指定できます。機密情報の入力は避けてください。

基本的な例

この項では、CLIを使用した基本的な操作の例について説明します。

ノート

OCIDに対する環境変数の使用

一部のCLIの例では、次のようにOCIDの環境変数を使用しています:

  • $T: テナンシOCID
  • $C: コンパートメントOCID

例:

T=ocid1.tenancy.oc1..aaaaaaaaba3pv6wm2ytdrwrx32uzr4h25vkcr4jqae5f15p2b2qstifsfdsq
C=ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga

ネームスペースを取得するには、次のコマンドを実行します。

oci os ns get

コンパートメントをリスト表示するには、次のコマンドを実行します。

oci iam compartment list -c $T

バケットのリストを取得するには、次のコマンドを実行します。

oci os bucket list -ns mynamespace --compartment-id $C

ユーザーをリスト表示し、出力を制限するには、次のコマンドを実行します。

oci iam user list --compartment-id $T --limit 5

グループにユーザーを追加するには、次のコマンドを実行します。

oci iam group add-user --user-id ocid1.user.oc1..aaabcaaaxkkhhtmghvqqq7rgvzwuj3drwmtlsgz6sbfo7y4uc5sprzli377q --group-id ocid1.group.oc1..aaabcaaa66plootq6uuwwxhfdw2lsdqtgeb6l4pjsv5eeuenxrauujj35b7b

コマンドによるヘルプの取得

どのコマンドについても、--help-hまたは-?を使用してヘルプを取得できます。例:

oci --help
oci os bucket -h
oci os bucket create -?

CLIのすべてのヘルプの確認

コマンドラインのヘルプを参照してください。

インストールされたCLIバージョンの確認

インストールされたCLIのバージョンを取得するには、次のコマンドを実行します。

oci --version

プロキシ・サーバーの使用方法

CLIは、HTTPリクエストを使用してOracle Cloud Infrastructureサービスを呼び出します。環境内の送信HTTPリクエストにプロキシ・サーバーを使用する必要がある場合は、次のいずれかの方法を使用できます。

コマンドラインでの-- proxyパラメータの使用

CLIコマンドのコール時に--proxyパラメータを含めることで、コマンドラインでプロキシ・サーバーを指定できます。

例:

oci os ns get --proxy https://<add your proxy URL here>/

CLI構成ファイルへのプロキシ・エントリの追加

詳細は、プロキシ・サーバーの指定を参照してください

環境変数の使用

プロキシ・サーバーを指すようにHTTP_PROXYおよびHTTPS_PROXY環境変数を設定します。

たとえば、Linuxでは次のように指定します。
https_proxy=https://<add your proxy URL here>/
http_proxy=http://<add your proxy URL here>/
Windowsでは、PowerShellを使用して次のようにします。
$Env:http_proxy = "http://<add your proxy URL here>/"

CLIコマンドでの日付と時間の使用

CLIでは、次の一般的な日付書式がサポートされています。

  • UTC (ミリ秒)

    Format: YYYY-MM-DDTHH:mm:ss.sssTZD, Example: 2017-09-15T20:30:00.123Z
  • UTC (ミリ秒なし)

    Format: YYYY-MM-DDTHH:mm:ssTZD, Example: 2017-09-15T20:30:00Z
  • UTC (分)

    Format: YYYY-MM-DDTHH:mmTZD, Example: 2017-09-15T20:30Z
  • タイムゾーン(ミリ秒)

    Format: YYYY-MM-DDTHH:mm:ss.sssTZD, Example: 2017-09-15T12:30:00.456-08:00
  • タイムゾーン(ミリ秒なし)

    Format: YYYY-MM-DDTHH:mm:ssTZD, Example: 2017-09-15T12:30:00-08:00
  • タイムゾーンとオフセット(分)

    Format: YYYY-MM-DDTHH:mmTZD, Example: 2017-09-15T12:35-08:00
  • 日付のみ(その日のUTC深夜0時に取得)

    Format: YYYY-MM-DD, Example: 2017-09-15
  • エポック秒

    Example: 1412195400
ノート

日時書式では、Tを空白で置換できます。たとえば、"2017-09-15 20:30:00.123Z"2017-09-15T20:30:00.123Zのどちらも使用できます。(Tを含めない場合は、値を引用符で囲む必要があることに注意してください。)また、タイムゾーンにコロンを含めても含めなくてもかまいません。+10:00+1000のどちらも使用できます。

CLIの入力および出力の管理

CLIには、コマンドの入力と出力を管理するいくつかのオプションがあります。

複雑な入力を渡す

複数の値を含む配列やオブジェクトなどの複雑な入力はJSONフォーマットで渡されます。これは、コマンドラインで文字列として、またはファイルとして、指定できます。あるいは、コマンドラインの文字列とファイルの両方として渡すこともできます。

MacOS、LinuxまたはUnix

次のコマンドは、--metadataオブジェクトの2つの値を渡す方法を示しています。

oci os bucket create -ns mynamespace --name mybucket --metadata '{"key1":"value1","key2":"value2"}' --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga

Windows

Windowsで、複雑な入力をCLIにJSON文字列として渡すには、ブロック全体を二重引用符で囲む必要があります。ブロックの内側では、キーと値文字列それぞれの二重引用符をバックスラッシュ(\)でエスケープする必要があります。

次のコマンドは、Windowsで--metadataオブジェクトの2つの値を渡す方法を示しています。

oci os bucket create -ns mynamespace --name mybucket --metadata "{\"key1\":\"value1\",\"key2\":\"value2\"}" --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga
ノート

JSONエラー

エラー・メッセージ「パラメータ'<PARAMETER NAME>'はJSONフォーマットである必要があります。」は、「PARAMETER NAME」という名前のパラメータに渡された値が有効なJSONではないことを意味します。通常、このエラーは、JSON文字列が正しくエスケープされないことによって発生します。

JSON文字列の使用の詳細は、JSONの拡張オプションを参照してください

出力を表としてフォーマット

デフォルトでは、コマンドに対するすべての応答はJSONフォーマットで返されます。たとえば、リージョンのリストを取得するコマンドを発行すると、次のような応答が返されます。

{
  "data": [
    {
      "key": "FRA",
      "name": "eu-frankfurt-1"
    },
    {
      "key": "IAD",
      "name": "us-ashburn-1"
    },
    {
      "key": "ICN",
      "name": "ap-seoul-1"
    },
    {
      "key": "PHX",
      "name": "us-phoenix-1"
    },
    {
      "key": "LHR",
      "name": "uk-london-1"
    },
    {
      "key": "NRT",
      "name": "ap-tokyo-1"
    },			
    {
      "key": "YYZ",
      "name": "ca-toronto-1"
    }				
  ]
}

場合によっては、読みやすいかどうかが問題になりますが、これは応答を表としてフォーマットすることで簡単に解決できます。コマンドの応答を表フォーマットにするには、次のコマンドを実行します。

oci iam region list --output table

次のリージョン・リストのサンプルは、2列の表として返されます。


+-----+----------------+
| key | name           |
+-----+----------------+
| FRA | eu-frankfurt-1 |
| IAD | us-ashburn-1   |
| ICN | ap-seoul-1     |
| PHX | us-phoenix-1   |
| NRT | ap-tokyo-1     |				
| LHR | uk-london-1    |
| YYZ | ca-toronto-1   |  
+-----+----------------+

出力のフィルタリング

JSONのJMESPath問合せオプションを使用して出力をフィルタリングできます。大量の出力を処理する場合はフィルタリングが非常に便利です。たとえば、イメージのリストを取得するために、出力表オプションを指定して次のコマンドを実行するとします。

oci compute image list -c ocid1.compartment.oc1..aaaaaaaapxgklgmujxjzx2ypptfjrcieq7rrob2u2zbesh3wlafsgthhqtea --output table

イメージの情報は表フォーマットで返されますが、返されるデータが多すぎてターミナルの幅に収まりません。また、返された情報のすべてが必要というわけではありません。


| base-image-id | compartment-id | create-image-allowed | display-name                                            | id | lifecycle-state | operating-system | operating-system-version | time-created                     |
+---------------+----------------+----------------------+---------------------------------------------------------+----------------------------------------------------------------------------------+-----------------+------------------+--------------------------+----------------------------------+| None          | None           | True                 | Windows-Server-2012-R2-Standard-Edition-VM-2017.07.25-0 | ocid
1.image.oc1.phx.aaaaaaaab2xgy6bijtudhsgsbgns6zwfqnkdb2bp4l4qap7e4mehv6bv3qca | AVAILABLE       | Windows          | Serv
er 2012 R2 Standard  | 2017-07-25T23:59:59.311000+00:00 |
| None          | None           | True                 | Windows-Server-2012-R2-Standard-Edition-VM-2017.04.03-0 | ocid
1.image.oc1.phx.aaaaaaaa53cliasgvqmutflwqkafbro2y4ywjebci5szc4eus5byy2e2b7ua | AVAILABLE       | Windows          | Serv
er 2012 R2 Standard  | 2017-04-03T19:42:22.938000+00:00 |
| None          | None           | True                 | Windows-Server-2012-R2-Standard-Edition-BM-2017.07.25-0 | ocid
1.image.oc1.phx.aaaaaaaadcegaay43eux6uap55fhp6lqaqh37xgocscktwm2yr7ql4pcykxq | AVAILABLE       | Windows          | Serv
er 2012 R2 Standard  | 2017-07-25T20:55:37.937000+00:00 |
| None          | None           | True                 | Windows-Server-2012-R2-Standard-Edition-BM-2017.04.13-0 | ocid1.image.oc1.phx.aaaaaaaa7xgecq2kt7tikqfrmshu6gwukoc3lcnf2iqtwmjyarlprp6j6lna | AVAILABLE       | Windows          | Serv
er 2012 R2 Standard  | 2017-04-13T17:36:50.840000+00:00 |
| None          | None           | True                 | Oracle-Linux-7.4-2017.09.29-0                           | ocid
1.image.oc1.phx.aaaaaaaa3g2xpzlbrrdknqcjtzv2tvxcofjc55vdcmpxdlbohmtt7encpana | AVAILABLE       | Oracle Linux     | 7.4
| 2017-10-05T22:36:17.246000+00:00 |
| None          | None           | True                 | Oracle-Linux-7.4-2017.08.25-1                           | ocid
1.image.oc1.phx.aaaaaaaajan2cd2g65tphpaiegiz4lbs422rdc73okcu7dt2uya6p5szywsa | AVAILABLE       | Oracle Linux     | 7.4
| 2017-09-11T23:12:18.644000+00:00 |
| None          | None           | True                 | Oracle-Linux-7.4-2017.08.25-0                           | ocid
1.image.oc1.phx.aaaaaaaabifl2bmaygtu4riw3vcuowl5cqwdzdqzwndqneoybcfcn2pgyc6a | AVAILABLE       | Oracle Linux     | 7.4| 2017-08-25T01:21:37.176000+00:00 |

--queryオプションと--output tableを組み合せることで、返されるデータの量を制限し、コマンドから必要な情報を取得できます。

返されるイメージの情報をフィルタリングして表フォーマットで取得するには、次のコマンドを実行します。

oci compute image list -c ocid1.compartment.oc1..aaaaaaaapxgklgmujxjzx2ypptfjrcieq7rrob2u2zbesh3wlafsgthhqtea --output table --query "data [*].{ImageName:\"display-name\", OCID:id}"

このコマンドでは、2列の表としてフォーマットされた、次のイメージ情報が返されます。


+---------------------------------------------------------+----------------------------------------------------------------------------------+
| ImageName                                               | OCID                                                                             |
+---------------------------------------------------------+----------------------------------------------------------------------------------+
| Windows-Server-2012-R2-Standard-Edition-VM-2017.07.25-0 | ocid1.image.oc1.phx.aaaaaaaab2xgy6bijtudhsgsbgns6zwfqnkdb2bp4l4qap7e4mehv6bv3qca |
| Windows-Server-2012-R2-Standard-Edition-VM-2017.04.03-0 | ocid1.image.oc1.phx.aaaaaaaa53cliasgvqmutflwqkafbro2y4ywjebci5szc4eus5byy2e2b7ua |
| Windows-Server-2012-R2-Standard-Edition-BM-2017.07.25-0 | ocid1.image.oc1.phx.aaaaaaaadcegaay43eux6uap55fhp6lqaqh37xgocscktwm2yr7ql4pcykxq |
| Windows-Server-2012-R2-Standard-Edition-BM-2017.04.13-0 | ocid1.image.oc1.phx.aaaaaaaa7xgecq2kt7tikqfrmshu6gwukoc3lcnf2iqtwmjyarlprp6j6lna |
| Oracle-Linux-7.4-2017.09.29-0                           | ocid1.image.oc1.phx.aaaaaaaa3g2xpzlbrrdknqcjtzv2tvxcofjc55vdcmpxdlbohmtt7encpana |
| Oracle-Linux-7.4-2017.08.25-1                           | ocid1.image.oc1.phx.aaaaaaaajan2cd2g65tphpaiegiz4lbs422rdc73okcu7dt2uya6p5szywsa |
| Oracle-Linux-7.4-2017.08.25-0                           | ocid1.image.oc1.phx.aaaaaaaabifl2bmaygtu4riw3vcuowl5cqwdzdqzwndqneoybcfcn2pgyc6a |
| Oracle-Linux-7.3-2017.07.17-1                           | ocid1.image.oc1.phx.aaaaaaaa7jvfm572d4ehcgh3ijapvhrt52voel33ispumnygi3kl7mph55ha |
| Oracle-Linux-7.3-2017.07.17-0                           | ocid1.image.oc1.phx.aaaaaaaa5yu6pw3riqtuhxzov7fdngi4tsteganmao54nq3pyxu3hxcuzmoa |
| Oracle-Linux-6.9-2017.09.29-0                           | ocid1.image.oc1.phx.aaaaaaaa2d243dmn6mj53zieyap5bdvtq7xfmr5kg5xulrldbjzdavaaoj6a |
| Oracle-Linux-6.9-2017.08.25-0                           | ocid1.image.oc1.phx.aaaaaaaavlwrtcgz2mx6c4q4qg4gwvibx6g7xqkowe3tbbwjnifybwmexpnq |
| Oracle-Linux-6.9-2017.07.17-0                           | ocid1.image.oc1.phx.aaaaaaaa3s4v5eamndtyghbo4bj2mhobkwjwbz3eowyy5cebmrsoxvoopixa |
| CentOS-7-2017.09.14-0                                   | ocid1.image.oc1.phx.aaaaaaaauqtvzhqplzuyesb5tctig6qrwoavpnfiwdkvuynu7z646z72ahcq |
| CentOS-7-2017.07.17-0                                   | ocid1.image.oc1.phx.aaaaaaaahmts5c5nktcnqsu6ppom72d7dnvkmqsoaavpsiklamn7qd3a7szq |
| CentOS-7-2017.04.18-0                                   | ocid1.image.oc1.phx.aaaaaaaaamx6ta37uxltor6n5lxfgd5lkb3lwmoqurlpn2x4dz5ockekiuea |
+---------------------------------------------------------+----------------------------------------------------------------------------------+

JSONのJMESPath問合せ言語の詳細は、JMESPathを参照してください。

JSONの拡張オプション

コマンド・オプションおよびコマンドについて正しいJSONフォーマットを取得できます。

  • コマンド・オプションの場合、--generate-param-json-inputを使用して、JSONを取得するコマンド・オプションを指定します。セキュリティ・ルールを作成または更新するためのJSONを生成するには、次のコマンドを実行します。

    oci network security-list create --generate-param-json-input ingress-security-rules
  • コマンド全体の場合、--generate-full-command-json-inputを使用します。インスタンスを起動するためのJSONを生成するには、次のコマンドを実行します。

    oci compute instance launch --generate-full-command-json-input

JSON入力の優先順位

CLIでは、コマンドライン上の引数とファイル入力を組み合せることができます。ただし、同じ値がファイルとコマンドラインで指定された場合は、コマンドラインが優先されます。

複雑な入力でのJSONファイルの使用

ファイルをコマンドラインで参照することで、複雑な入力をファイルから渡すことができます。Windowsユーザーの場合は、こうすると、JSONテキストをエスケープする必要がなくなります。ファイルのパスは、file://接頭辞を使用して指定します。

パス・タイプ

testfile.jsonを例として使用した場合、次のタイプのパスがサポートされます。

  • 同じディレクトリからの相対パスの例: file://testfile.jsonおよびfile://relative/path/to/testfile.json
  • Linux、MacOSまたはUnixの絶対パスの例: file:///absolute/path/to/testfile.json
  • Windowsのフル・ファイル・パスの例: file://C:\path\to\testfile.json
ノート

ファイル・パスの展開

ファイル・パスの展開(「~/」、「./」、「../」など)がサポートされています。Windowsでは、「~/」表現は、%USERPROFILE%環境変数に格納されているユーザー・ディレクトリに展開されます。環境変数をパスで使用することもできます。

ファイルの場所

サポートされているファイルの場所は次のとおりです。

  • ホーム・ディレクトリ。

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file://~/testfile.json
  • 現在のディレクトリ。

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file://testfile.json
  • /tmpディレクトリ(Linux、UnixまたはMacOS)。

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file:///tmp/testfile.json
  • C:\tempディレクトリ(Windows)。

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file://C:\temp\testfile.json

JSONファイルを入力として使用する例

この項の例では、コマンド・オプションおよびコマンド全体に対して生成されるJSONを使用しています。JSONをファイルに保存して編集してから、コマンドライン入力として使用します。

コマンド・オプションに対するファイル入力の使用

この詳しい例では、サブネットの作成に使用されるセキュリティ・リストIDオプションのためのJSONを生成する方法を説明します。JSONをファイルに保存して編集してから、コマンドライン入力として使用します。

コマンドからの応答

[
  {
    "icmpOptions": {
      "code": 0,
      "type": 0
      },
    "isStateless": true,
    "protocol": "string",
    "source": "string",
    "tcpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    },
    "udpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    }
    },
    {
    "icmpOptions": {
      "code": 0,
      "type": 0
      },
    "isStateless": true,
    "protocol": "string",
    "source": "string",
    "tcpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    },
    "udpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    }
  }
]
コマンドからの応答
{
  "assignPublicIp": true,
  "availabilityDomain": "string",
  "compartmentId": "string",
  "displayName": "string",
  "extendedMetadata": {
  "string1": {
    "string1": "string",
    "string2": "string"
   },
  "string2": {
    "string1": "string",
    "string2": "string"
   }
  },
  "hostnameLabel": "string",
  "imageId": "string",
  "metadata": {
    "string1": "string",
    "string2": "string"
    },
  "privateIp": "string",
  "shape": "string",
  "skipSourceDestCheck": true,
  "subnetId": "string",
  "vnicDisplayName": "string"
}
JSONファイルをセキュリティ・リスト・オプションの入力として使用
  1. security-list-idsオプションのためのJSONを生成するには、次のコマンドを実行します。

    oci network subnet create --generate-param-json-input security-list-ids
  2. ファイルを作成し、ステップ1で戻された次の内容を追加します。この内容を、エスケープしたり、1行に入力したりする必要はありません。有効なJSONを含んでいることのみが必要です。

    [
      "string",
      "string"
    ]
  3. 次の例に示すように、ファイルを編集し、"string"値を値で置き換えます。

    [
      "ocid1.securitylist.oc1.phx.aaaaaaaaw7c62ybv4676muq5tdrwup3v2maiquhbkbh4sf75tjcf5dm6kvlq",
      "ocid1.securitylist.oc1.phx.aaaaaaaa7snx4jh5drwo2h33rwcdqev6elir55hnrhi2yfndjfons5rcqk4q"
    ]
  4. このファイルをsecurity-list.jsonとして保存します。
  5. security-list.jsonを入力として使用してサブネットを作成するには、次のコマンドを実行します。

    oci network subnet create --vcn-id ocid1.vcn.oc1.phx.aaaaaaaa6wmuahgxejkv7ukyruqdrwlmrumtl6vyisxxxavagiqw2eeet2sa -c ocid1.compartment.oc1..aaaaaaaal3gzijdliedxxhqol2rggndrwyg35nz5zxil26astpgeyq7jnhwa  --availability-domain "EMIr:PHX-AD-1" --display-name TESTSUB --dns-label "testinstances" --cidr-block "10.0.0.0/16" --security-list-ids file://security-list.json

コマンド全体に対するファイル入力の使用

この詳しい例では、仮想クラウド・ネットワーク(VCN)を作成するJSONの生成方法を示します。JSONをファイルに保存して編集してから、コマンドライン入力として使用します。

JSONファイルをVCN作成の入力として使用
  1. VCNの作成に必要なJSONを生成するには、次のコマンドを実行します。

    oci network vcn create --generate-full-command-json-input
  2. ファイルを作成し、ステップ1で戻された次の内容を追加します。この内容を、エスケープしたり、1行に入力したりする必要はありません。有効なJSONを含んでいることのみが必要です。

    {
      "cidrBlock": "string",
      "compartmentId": "string",
      "displayName": "string",
      "dnsLabel": "string"
    }
  3. 次の例に示すように、ファイルを編集し、"string"値を値で置き換えます。

    {
      "cidrBlock": "10.0.0.0/16",
      "compartmentId": "ocid1.compartment.oc1..aaaaaaaal3gzijdliedxxhqol2rggndrwyg35nz5zxil26astpgeyq7jnhwa",
      "displayName": "TestVCN",
      "dnsLabel": "testdns"
    }
  4. ファイルを保存し、create-vcn.jsonという名前を付けます
  5. create-vcn.jsonを入力として使用してVCNを作成するには、次のコマンドを実行します。
    oci network vcn create --from-json file://create-vcn.json 

高度な例

次の例では、CLIを使用してOracle Cloud Infrastructureの複雑なタスクを実行する方法を示します。

オブジェクト・ストレージの使用

オブジェクト・ストレージ・サービスのいくつかのオブジェクト操作でCLIを使用できます。

ファイルのアップロードとダウンロード

オブジェクトは、ファイルまたはコマンドライン(STDIN)からアップロードでき、ファイルまたはコマンドライン(STDOUT)にダウンロードできます。

オブジェクトをアップロード:

oci os object put -ns mynamespace -bn mybucket --name myfile.txt --file /Users/me/myfile.txt --metadata '{"key1":"value1","key2":"value2"}'

コマンドライン(STDIN)からオブジェクトの内容をアップロード:

oci os object put -ns mynamespace -bn mybucket --name myfile.txt --file <--'object content'

オブジェクトをダウンロード:

oci os object get -ns mynamespace -bn mybucket --name myfile.txt --file /Users/me/myfile.txt

オブジェクトの内容をコマンドライン(STDOUT)に出力:

oci os object get -ns mynamespace -bn mybucket --name myfile.txt --file -

オブジェクト・ストレージでの一括操作

CLIでは、オブジェクト・ストレージの次の一括操作がサポートされています:

  • ディレクトリとそのすべてのサブディレクトリ内のファイルのバケットへのアップロード

    # Upload all the files in a directory.
    oci os object bulk-upload -ns mynamespace -bn mybucket --src-dir path/to/upload/directory
  • バケット内のすべてのオブジェクト(または指定した接頭辞と一致するすべてのオブジェクト)のダウンロード

    # Download all the objects.
    oci os object bulk-download -ns mynamespace -bn mybucket --download-dir path/to/download/directory
    						
    # Download all the objects that match the specified prefix.
    oci os object bulk-download -ns mynamespace -bn mybucket --download-dir path/to/download/directory --prefix myprefix
  • バケット内のすべてのオブジェクト(または指定した接頭辞と一致するすべてのオブジェクト)の削除

    # Delete all the objects.
    oci os object bulk-delete -ns mynamespace -bn mybucket
    			
    # Delete objects that match the specified prefix.
    oci os object bulk-delete -ns mynamespace -bn mybucket --prefix myprefix

一括操作では、次のことができるいくつかのオプションがサポートされています:

  • --overwriteまたは--no-overwriteを使用してファイル/オブジェクトを上書きまたはスキップします。(ノート: これらのオプションをどちらも渡さない場合、上書きするものがあるたびに確認を求められます。)
  • --prefixまたは--delimiter (あるいは両方)を使用して、削除、アップロードまたはダウンロードの操作を制限します
  • --dry-runを使用して一括削除をプレビューします

一括操作のコマンドに関する詳細情報を取得するには、次のヘルプ・コマンドを実行します:

# bulk-upload
oci os object bulk-upload -h
				
# bulk-download
oci os object bulk-download -h
				
# bulk-delete
oci os object bulk-delete -h

オブジェクト・ストレージでのマルチパート操作

オブジェクト・ストレージのマルチパート操作には、オブジェクトのアップロードとダウンロードが含まれます。

マルチパート・アップロード

大きなファイルは、複数のパートでオブジェクト・ストレージにアップロードすることでアップロードを高速化できます。デフォルトでは、128MiBよりも大きいファイルはマルチパート操作を使用してアップロードされます。--no-multipartオプションを使用すると、このデフォルトをオーバーライドできます。

oci os object putコマンドで次のオプションを構成できます:

  • --no-multipartは、オブジェクトが128MiBを超える場合に、自動マルチパート・アップロードをオーバーライドします。オブジェクトはサイズに関係なく、単一のパートとしてアップロードされます。
  • マルチパート操作で使用する--part-size (MiB単位)。デフォルトのパート・サイズは128MiBで、指定するパート・サイズは10MiBより大きくする必要があります。オブジェクトが--part-sizeより大きい場合、複数のパートでアップロードされます。
  • 実行する並列操作の数を指定する--parallel-upload-count。この値を使用して、リソースとアップロード時間のバランスを調整します。値が大きいほど時間は短縮されますが、システム・リソースおよびネットワーク帯域幅の消費量が増加します。デフォルトの値は10です。

--resume-putコマンドを使用すると、大規模なファイルのアップロードが中断した場合にアップロードを再開できます。

ノート

STDINからのマルチパート・アップロード

STDINからアップロードされるオブジェクトは複数のパートでアップロードされます。オブジェクトの内容が10MiB未満の場合、アップロードは1パートのみになり、MultipartUpload APIがアップロードで使用されます。STDINからアップロードするときに--no-multipartを指定すると、エラーになります。

次の例は、オブジェクトが200MiBより大きい場合のマルチパート・アップロードのコマンドを示しています。

oci os object put -ns my-namespace -bn my-bucket --file path/to/large/file --part-size 200

マルチパート・アップロードの詳細は、マルチパート・アップロードの使用を参照してください。

マルチパート・ダウンロード

大きなファイルは、複数のパートでオブジェクト・ストレージにダウンロードすることでダウンロードを高速化できます。

oci os object getコマンドで次のオプションを構成できます:

  • --multipart-download-thresholdを使用して、複数パートでダウンロードすべきオブジェクトのサイズ(MiB単位)を指定できます。このサイズは128MiB以上にする必要があります。
  • ダウンロード・パートで使用する--part-size (MiB単位)。これを使用すると、要件に合せて柔軟に、パート数を多くする(小さいサイズ)か少なくする(大きいサイズ)ことができます。たとえば、コンピューティング性能とネットワーク帯域幅です。デフォルトの最小パート・サイズは120MiBです。
  • --parallel-download-countを使用すると、同時にダウンロードされるパート数を指定できます。値が大きいほど時間は短縮されますが、システム・リソースおよびネットワーク帯域幅の消費量が増加します。デフォルトの値は10です。

次の例は、サイズが500MiBを超える任意のオブジェクトをダウンロードするコマンドを示しています。オブジェクトは、128MiBのパートでダウンロードされます。

oci os object get -ns my-namespace -bn my-bucket --name my-large-object --multipart-download-threshold 500 --part-size 128