CCI 入門

SoftLayer API のコンテキストでは、SoftLayer CloudLayer コンピューティング・インスタンス (CCI) は SoftLayer_Virtual_Guest オブジェクトによって表されます。SoftLayer_Virtual_Guest サービスを使用すると、特定の CCI と対話でき、SoftLayer_Account サービスを使用すると、アカウントのすべての CCI と対話できます。

作成

新しい CCI を注文するには、SoftLayer_Virtual_Guest::createObject を使用します。
最初に、CCI の詳細が入った SoftLayer_Virtual_Guest テンプレート・オブジェクトが作成されます。すべての CCI テンプレート・オブジェクトで、少なくとも以下のプロパティーを定義する必要があります。

  • hostname - 新しい CCI のホスト名
  • domain - 新しい CCI のドメイン・ネーム
  • startCpus - 処理コアの数
  • maxMemory - メモリー割り振り (MB 単位)
  • hourlyBillingFlag - 時間単位の請求の場合は true、月単位の場合は false を設定します
  • operatingSystemReferenceCode - インストールする OS を指定するためのコード
  • localDiskFlag - true に設定すると、ローカル・ディスクを使用して CCI が構成され、false に設定すると SAN ディスクが使用されます
$virtualGuestClient = SoftLayer_SoapClient::getClient('SoftLayer_Virtual_Guest', null, $user, $key);
$virtualGuestTemplate = new stdClass();
$virtualGuestTemplate->hostname = 'test1';
$virtualGuestTemplate->domain = 'example.com';
$virtualGuestTemplate->startCpus = 1;
$virtualGuestTemplate->maxMemory = 1024;
$virtualGuestTemplate->hourlyBillingFlag = true;
$virtualGuestTemplate->operatingSystemReferenceCode = 'UBUNTU_LATEST';
$virtualGuestTemplate->localDiskFlag = false;
 
$result = $virtualGuestClient->createObject($virtualGuestTemplate);
print_r($result);

CCI の注文に関するすべてのオプションは、SoftLayer_Virtual_Guest::getCreateObjectOptions を使用して取得できます。
createObject() メソッドにより、アカウントは課金されます。そのため、SoftLayer_Virtual_Guest::generateOrderTemplate を使用して注文オブジェクトを生成し、実際に注文することなく CCI の作成をテストするのが最適です。このメソッドによって返される SoftLayer_Container_Product_OrderSoftLayer_Product_Order::verifyOrder に渡すことができます。これにより、注文の処理を妨げる問題が通知されます。

$orderClient = SoftLayer_SoapClient::getClient('SoftLayer_Product_Order', Null, $user, $key);
$orderContainer = $virtualGuestClient->generateOrderTemplate($virtualGuestTemplate);
print_r($orderClient->verifyOrder($orderContainer);

リスト

すべての CloudLayer コンピューティング・インスタンスのリストは、SoftLayer_Account サービスから SoftLayer_Account::getVirtualGuests メソッドを使用して収集できます。このメソッドは、SoftLayer_Virtual_Guest データ型オブジェクトの配列を返します。

$accountClient = SoftLayer_SoapClient::getClient('SoftLayer_Account', Null, $user, $key);
$virtualGuests = $accountClient->getVirtualGuests();
print_r($virtualGuests);

この完全なリストは、多くの場合、アカウントのすべての CCI に関する情報を取得するために使用され、ID が不明な特定の CCI を検索する場合にも役立ちます。

$accountClient = SoftLayer_SoapClient::getClient('SoftLayer_Account', Null, $user, $key);
$virtualGuests = $accountClient->getVirtualGuests();
foreach ($virtualGuests as $virtualGuest) {
    if ($virtualGuest->hostname == "server1") {
        $serverId = $virtualGuest->id;
    }
}

詳細

特定の CCI に関する情報を取得するために、SoftLayer_Virtual_Guest::getObject を使用できます。これにより、SoftLayer_Virtual_Guest オブジェクトが返されます。オブジェクト・マスクを使用して、SoftLayer_Virtual_Guest のローカル・プロパティーの外部にあるデータを組み込むことができます。下記に、SoftLayer_Virtual_Guest サービスで getObject を使用して、サーバーにインストールされているオペレーティング・システムのパスワードのオブジェクト・マスクを指定する方法を示します。

$guestClient = SoftLayer_SoapClient::getClient('SoftLayer_Virtual_Guest', $id, $user, $key);
$objectMask = "mask[id, hostname, domain, operatingSystem[passwords]]"
$guestClient->setObjectMask($objectMask);
$virtualGuest = $guestClient->getObject();
print_r($virtualGuest);

多数のローカル・プロパティーも定義したため、出力には、マスクに定義されたものに限られたローカル・プロパティーのほか、オブジェクト・マスクによって取り込まれたリレーショナル・プロパティーのみが示されています。

取り消し

SoftLayer_Account サービスから ID をプルすることによって、CCI を取り消すことができます。この例では、アカウントからすべての仮想ゲストをプルして、ホスト名を使用し、取り消す特定のゲストを構文解析します。仮想ゲストのホスト名は固有でないため、注意して使用してください。
SoftLayer_Virtual_Guest::deleteObject

$guestClient = SoftLayer_SoapClient::getClient('SoftLayer_Virtual_Guest', $serverId, $user, $key);
$result = $guestClient->deleteObject();
print_r($result);

このメソッドは、指定された ID を持つコンピューティング・インスタンスを即時に取り消します。
注: SoftLayer_Virtual_Guest::pause を使用してインスタンスを休止しても、請求が停止されるわけではありません。請求を終了させるには、インスタンスを取り消して破棄する必要があります。

リブート

CCI の電源サイクルは、次の 2 つの方法で実行できます。