すべてのプロダクト
Search
ドキュメントセンター

:クイックスタート

最終更新日:Feb 21, 2024

このトピックでは、Alibaba Cloud CLI、 Elastic Compute Service (ECS) API操作を呼び出すOpenAPI ExplorerまたはAlibaba Cloud SDK。 例では、CreateSnapshotが使用されています。

背景情報

API操作を呼び出す前に、APIドキュメントの関連手順を理解し、必要なリクエストパラメーターの値を取得する必要があります。 リクエストの送信後にエラーコードが返された場合は、APIドキュメントでエラーコードの説明を入手できます。

APIリクエストの作成に使用されるメソッド

  • Alibaba Cloud CLIを使用してECS API操作を呼び出す例: Alibaba Cloud CLIは、コマンドラインツールが頻繁に使用されるシナリオに適用できます。 Alibaba Cloud CLIがECSインスタンスにインストールされていることを確認します。 さまざまなオペレーティングシステムにAlibaba Cloud CLIをインストールする方法の詳細については、以下のトピックを参照してください。
  • OpenAPI Explorerを使用してECS API操作を呼び出す例: OpenAPI Explorerは、対話型操作インターフェイスを頻繁に使用するユーザーまたはAlibaba Cloudサービスに慣れていない開発者に適用できます。 でAPI操作をデバッグし、サンプルSDKリクエストを取得できます。 OpenAPI Explorerを使用します。 OpenAPI Explorerの詳細については、「OpenAPI Explorerの概要」をご参照ください。
  • ECS SDK for Javaを使用したECS APIの呼び出しの例: ECS SDK for Javaは、SDKエンコードやDevOpsなどのシナリオに適用できます。 ECS SDK for Javaを使用するには、SDKがインストールされていることを確認します。 詳細については、「ECS SDK For Javaのインストール」をご参照ください。

Alibaba Cloud CLIを使用したECS APIの呼び出し例

  1. 次のいずれかの方法を使用して、インスタンスのIDを取得します。
    • ECSインスタンスに接続している場合は、インスタンスメタデータからインスタンスのIDを取得できます。
      curl http:// 100.100.100.200/2016-01-01/meta-data/instance-id
    • コンピューターでDescribeInstancesを呼び出して、インスタンスのIDを取得できます。
      aliyun ecs DescribeInstances -- output cols=InstanceId,InstanceName rows=Instances.Instance[]
  2. DescribeDisks操作を呼び出して、ディスクのIDを取得します。
    aliyun ecs DescribeDisks -- RegionId cn-hangzhou -- InstanceId i-bp1afnc98r8k69 ****** -- output cols=DiskId rows=Disks.Disk[]
  3. CreateSnapshot操作を呼び出して、取得したディスクIDに基づいてスナップショットを作成します。
    aliyun ecs CreateSnapshot -- DiskId d-bp19pjyf12hebp ******
    次の情報が返された場合、スナップショットを作成するタスクが開始されます。
    {"RequestId":"16B856F6-EFFB-4397-8A8A-CB73FA ******","SnapshotId":"s-bp1afnc98r8kjh *******"}
  4. DescribeSnapshots操作を呼び出して、スナップショット作成の進行状況を照会します。
    aliyun ecs DescribeSnapshots -- RegionId cn-hangzhou -- InstanceId i-bp1afnc98r8k69 ******
    "SnapshotId"="s-bp1afnc98r8kjh ******""ステータス":"達成" の両方が返された場合、スナップショットが作成されます。

OpenAPI Explorerを使用してECS API操作を呼び出す例

  1. DescribeInstances操作を呼び出して、インスタンスのIDとディスクのIDを取得します。
  2. CreateSnapshot操作を呼び出して、取得したディスクIDに基づいてスナップショットを作成します。
  3. DescribeSnapshots操作を呼び出して、スナップショット作成の進行状況を照会します。
    "SnapshotId"="s-bp1afnc98r8kjh ******""ステータス":"達成" の両方が返された場合、スナップショットが作成されます。

ECS SDK for Javaを使用したECS APIの呼び出し例

サンプルコードでは、次のパラメーターの値を指定する必要があります。

  • <AccessKey>: AccessKey IDを入力します。 AccessKeyペアの取得方法については、「AccessKeyペアの取得」をご参照ください。
  • <AccessSecret>: AccessKeyシークレットを入力します。
  • <RegionId>: インスタンスのリージョンIDを入力します。 有効な値については、「リージョンとゾーン」または「DescribeRegions」をご参照ください。
  • <DiskId>: ディスクのIDを入力します。 有効な値については、「DescribeDisks」をご参照ください。
com.aliyuncs.DefaultAcsClientをインポートします。com.aliyuncs.IAcsClientをインポートします。com.aliyuncs.ecs.mo del.v20140526.CreateSnapshotRequestをインポートします。com.aliyuncs.ecs.mo del.v20140526.CreateSnapshotResponseをインポートします。com.aliyuncs.exceptions.ClientExceptionをインポートします。com.aliyuncs.exceptions.ServerExceptionをインポートします。com.aliyuncs.profile.DefaultProfileをインポートします。/* pom.xml
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>3.0.9</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-ecs</artifactId>
    <version>4.10.1</version>
</dependency>
* /

publicクラスCreateSnapshotExample {

    private String accessKeyId = "<AccessKey>";
    private String accessSecret = "<AccessSecret>";

    /**
     * ディスクのリージョンID
     */
    プライベート文字列regionId = "<RegionId>";

    /**
     * スナップショットを作成するディスクのID
     */
    プライベート文字列diskId = "<DiskId>";

    public void createSnapshot() {
        DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessSecret);
        IAcsClient client = new DefaultAcsClient(profile);

        CreateSnapshotRequest request = new CreateSnapshotRequest();
        request.setRegionId(regionId);
        request.setDiskId(diskId);
        try {
            CreateSnapshotResponseレスポンス=client.getAcsResponse (リクエスト);
            logInfo(response.getSnapshotId());
        } catch (ServerException e) {
            logInfo(String.format) ("Fail. Aliyunとのつながりが正しくありません。 ErrorCode: % s "、
                e.getErrCode());
        } catch (ClientException e) {
            logInfo(String.format) ("Fail. ビジネスエラー。 ErrorCode: % s, RequestId: % s ",
                e.getErrCode(), e.getRequestId());
        }
    }

    private static void logInfo (文字列メッセージ) {
        System.out.println (メッセージ);
    }

    public static void main(String[] args) {
        新しいCreateSnapshotExample().createSnapshot();
    }
}