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

:SDK を使用してエラスティックコンテナインスタンスを作成する

最終更新日:Oct 10, 2025

Elastic Container Instance は、Go、Python、Java の 3 つのプログラミング言語用の SDK を提供しています。このトピックでは、SDK を使用してエラスティックコンテナインスタンスを作成する方法について説明します。このトピックでは、Alibaba Cloud SDK for Java を例として使用します。

Alibaba Cloud SDK for Java をインストールする

Alibaba Cloud SDK for Java をインストールするには、Apache Maven を使用することをお勧めします。Maven プロジェクトの pom.xml ファイルに次の依存関係を追加します。

  • Alibaba Cloud SDK for Java のコアライブラリ (aliyun-java-sdk-core)

  • aliyun-java-sdk-eci および gson 依存関係

  • (オプション) aliyun-java-sdk-vpc 依存関係

  • (オプション) aliyun-java-sdk-ecs および fastjson 依存関係

説明
  • 依存関係の新機能を使用するには、各依存関係のバージョンをタイムリーに更新してください。詳細については、Maven を参照してください。

  • VPC、vSwitch、およびセキュリティグループがすでに存在する場合は、VPC、vSwitch、およびセキュリティグループを作成するために Alibaba Cloud SDK for Java をインストールする必要はありません。この場合、aliyun-java-sdk-vpc、aliyun-java-sdk-ecs、および fastjson 依存関係のインストールをスキップできます。

<dependencies>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <optional>true</optional>
            <version>4.6.3</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.10</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-eci</artifactId>
            <version>1.3.3</version>
        </dependency>
          <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-ecs</artifactId>
            <version>4.24.42</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>2.0.19</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-vpc</artifactId>
            <version>3.2.9</version>
        </dependency>
</dependencies>

IntelliJ IDEA Java 開発ツールを使用する場合、Alibaba Cloud SDK for Java をインストールする手順は次のとおりです。

  1. IDEA を開き、次のいずれかの方法を使用して Maven プロジェクトを作成します。

    • 方法 1: IDEA で Maven プロジェクトを作成する

      1. 上部のナビゲーションバーで、ファイル > 新規 > プロジェクト... を選択します。

      2. 表示されるダイアログボックスで、Maven をクリックし、プロジェクトの設定を完了します。

        sdk1

    • 方法 2: 既存のプロジェクトを Maven プロジェクトに変換する

      1. 変換するプロジェクトを右クリックし、表示されるメニューで フレームワークサポートの追加... を選択します。

        sdk2

      2. 表示されるダイアログボックスで、Maven を選択し、OK をクリックします。

        sdk3

  2. Maven プロジェクトディレクトリにある pom.xml ファイルを開き、依存関係を追加します。

    依存関係が追加されると、Maven は対応する JAR パッケージを自動的にダウンロードします。

    sdk4

AccessKey ペアを取得する

API オペレーションを呼び出すときは、AccessKey ペアを使用して ID 検証を完了する必要があります。Alibaba Cloud アカウントの AccessKey ペアを保護するために、RAM ユーザーを作成し、RAM ユーザーにエラスティックコンテナインスタンスへのアクセス許可を付与してから、RAM ユーザーの AccessKey ペアを使用して Elastic Container Instance SDK for Java を呼び出すことをお勧めします。

詳細については、以下のトピックを参照してください。

  1. RAM ユーザーを作成する

  2. RAM ユーザーに権限を付与する

  3. AccessKey ペアを作成する

エラスティックコンテナインスタンスに必要なリソースを作成する

エラスティックコンテナインスタンスを作成する前に、VPC、vSwitch、およびセキュリティグループを作成する必要があります。

説明

VPC、vSwitch、およびセキュリティグループがすでに存在する場合は、VPC、vSwitch、およびセキュリティグループの ID を取得して、エラスティックコンテナインスタンスを作成できます。

  1. VPC を作成します。

    次の表にパラメータを示します。詳細については、CreateVpc を参照してください。

    パラメータ

    説明

    RegionId

    cn-shanghai

    VPC がデプロイされているリージョンの ID。

    Elastic Container Instance が利用可能なリージョンを選択します。詳細については、リージョンとゾーン を参照してください。

    CidrBlock

    192.168.0.0/16

    VPC の CIDR ブロック。

    次の CIDR ブロックまたはそのサブセットのいずれかを使用できます: 192.168.0.0/16、172.16.0.0/12、および 10.0.0.0/8。これらの CIDR ブロックは、Request for Comments (RFC) ドキュメントで定義されている標準のプライベート CIDR ブロックです。サブネットマスクの長さは 8 ~ 28 ビットである必要があります。

    サンプルコード:

    // VPCを作成するサンプルコード
    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.IAcsClient;
    import com.aliyuncs.exceptions.ClientException;
    import com.aliyuncs.exceptions.ServerException;
    import com.aliyuncs.profile.DefaultProfile;
    import com.google.gson.Gson;
    import com.aliyuncs.vpc.model.v20160428.*;
    
    public class CreateVpc {
    
        public static void main(String[] args) {
            DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai","<accessKeyId>", "<accessSecret>");
            IAcsClient client = new DefaultAcsClient(profile);
    
            CreateVpcRequest request = new CreateVpcRequest();
            request.setSysRegionId("cn-shanghai");
            request.setCidrBlock("192.168.0.0/16");
    
            try {
                CreateVpcResponse response = client.getAcsResponse(request);
                System.out.println(new Gson().toJson(response));
            } catch (ServerException e) {
                e.printStackTrace();
            } catch (ClientException e) {
                System.out.println("ErrCode:" + e.getErrCode());
                System.out.println("ErrMsg:" + e.getErrMsg());
                System.out.println("RequestId:" + e.getRequestId());
            }
    
        }
    }

    次のレスポンスは、VPC が作成されたことを示しています。

    {
    	"vpcId": "vpc-uf6d60ru912b6jvco****",
    	"vRouterId": "vrt-uf68fw505rxavz4hk****",
    	"requestId": "2C7AA1E2-4407-5B41-89F2-3DADC5AEE18E",
    	"routeTableId": "vtb-uf6orqxrmsyuv8gba****",
    	"resourceGroupId": "rg-acfmzw2jz2z****"
    }
  2. VPC に vSwitch を作成します。

    次の表にパラメーターを示します。詳細については、CreateVSwitch を参照してください。

    パラメーター

    説明

    VpcId

    vpc-uf6d60ru912b6jvco****

    vSwitch が属する VPC の ID。

    ZoneId

    cn-shanghai-m

    vSwitch が属するゾーンの ID。

    選択したリージョンで推奨されるゾーンを選択します。詳細については、リージョンとゾーン を参照してください。

    CidrBlock

    192.168.0.0/24

    vSwitch の CIDR ブロック。vSwitch の CIDR ブロックは、次の要件を満たしている必要があります。

    • マスクは 16 ~ 29 ビットの長さである必要があります。

    • vSwitch の CIDR ブロックは、vSwitch が属する VPC の CIDR ブロック内に含まれている必要があります。

    • vSwitch の CIDR ブロックは、VPC に追加されたルートの宛先 CIDR ブロックと同じにすることはできません。ただし、vSwitch の CIDR ブロックは、宛先 CIDR ブロックのサブセットにすることができます。

    サンプルコード:

    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.IAcsClient;
    import com.aliyuncs.exceptions.ClientException;
    import com.aliyuncs.exceptions.ServerException;
    import com.aliyuncs.profile.DefaultProfile;
    import com.google.gson.Gson;
    import java.util.*;
    import com.aliyuncs.vpc.model.v20160428.*;
    
    public class CreateVSwitch {
    
        public static void main(String[] args) {
            // cn-shanghai, <accessKeyId>, <accessSecret> を使用してDefaultProfileを設定します
            DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "<accessKeyId>", "<accessSecret>");
            IAcsClient client = new DefaultAcsClient(profile);
    
            CreateVSwitchRequest request = new CreateVSwitchRequest();
            request.setSysRegionId("cn-shanghai");
            request.setCidrBlock("192.168.0.0/24");
            request.setVpcId("vpc-uf6d60ru912b6jvco****");
            request.setZoneId("cn-shanghai-m");
    
            try {
                CreateVSwitchResponse response = client.getAcsResponse(request);
                System.out.println(new Gson().toJson(response));
            } catch (ServerException e) {
                e.printStackTrace();
            } catch (ClientException e) {
                System.out.println("ErrCode:" + e.getErrCode());
                System.out.println("ErrMsg:" + e.getErrMsg());
                System.out.println("RequestId:" + e.getRequestId());
            }
    
        }
    }

    次の応答は、vSwitch が作成されたことを示します。

    {
    	"vSwitchId": "vsw-uf6uma67wlgxwuyb5****",
    	"requestId": "B94FAE14-043C-56B5-A763-F2E03C75AC3F"
    }
  3. セキュリティグループを作成します。

    セキュリティグループを作成するときは、VPCを指定する必要があります。サンプルコード:

    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.IAcsClient;
    import com.aliyuncs.exceptions.ClientException;
    import com.aliyuncs.exceptions.ServerException;
    import com.aliyuncs.profile.DefaultProfile;
    import com.google.gson.Gson;
    import java.util.*;
    import com.aliyuncs.ecs.model.v20140526.*;
    
    public class CreateSecurityGroup {
    
        public static void main(String[] args) {
            DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "<accessKeyId>", "<accessSecret>");
            IAcsClient client = new DefaultAcsClient(profile);
    
            CreateSecurityGroupRequest request = new CreateSecurityGroupRequest();
            request.setSysRegionId("cn-shanghai");
            request.setVpcId("vpc-uf6d60ru912b6jvco****");
    
            try {
                CreateSecurityGroupResponse response = client.getAcsResponse(request);
                System.out.println(new Gson().toJson(response));
            } catch (ServerException e) {
                e.printStackTrace();
            } catch (ClientException e) {
                System.out.println("ErrCode:" + e.getErrCode());
                System.out.println("ErrMsg:" + e.getErrMsg());
                System.out.println("RequestId:" + e.getRequestId());
            }
    
        }
    }

    次の応答は、セキュリティグループが作成されたことを示しています。

    {
    	"securityGroupId": "sg-uf63jawzncdab6xb****",
    	"requestId": "73D5964C-686A-59AF-8433-209067AB51D7"
    }

エラスティックコンテナインスタンスの作成

次の表にパラメータを示します。詳細については、コンテナグループの作成 を参照してください。

パラメータ

説明

RegionId

cn-shanghai

エラスティックコンテナインスタンスのリージョンID。

SecurityGroupId

sg-uf63jawzncdab6xb****

エラスティックコンテナインスタンスに関連付けるセキュリティグループのID。

VSwitchId

vsw-uf6uma67wlgxwuyb5****

エラスティックコンテナインスタンスに関連付けるvSwitch。

ContainerGroupName

test

エラスティックコンテナインスタンスの名前。

Container.N.Image

registry-vpc.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2

コンテナNのイメージ。

Container.N.Name

nginx

コンテナNの名前。

サンプルコード:

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import java.util.*;
import com.aliyuncs.eci.model.v20180808.*;
public class CreateContainerGroup {
    public static void main(String[] args) {
        // cn-shanghai、<accessKeyId>、<accessSecret>でデフォルトのプロファイルを取得します。
        DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "<accessKeyId>", "<accessSecret>");
        IAcsClient client = new DefaultAcsClient(profile);
        CreateContainerGroupRequest request = new CreateContainerGroupRequest();
        request.setRegionId("cn-shanghai");
        request.setSecurityGroupId("sg-uf63jawzncdab6xb****");
        request.setVSwitchId("vsw-uf6uma67wlgxwuyb5****");
        request.setContainerGroupName("test");
        List<CreateContainerGroupRequest.Container> containerList = new ArrayList<CreateContainerGroupRequest.Container>();
        CreateContainerGroupRequest.Container container1 = new CreateContainerGroupRequest.Container();
        container1.setImage("registry-vpc.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2");
        container1.setName("nginx");
        containerList.add(container1);
        request.setContainers(containerList);
        try {
            CreateContainerGroupResponse response = client.getAcsResponse(request);
            System.out.println(new Gson().toJson(response));
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            System.out.println("ErrCode:" + e.getErrCode());
            System.out.println("ErrMsg:" + e.getErrMsg());
            System.out.println("RequestId:" + e.getRequestId());
        }
    }
}

次のレスポンスは、エラスティックコンテナインスタンスが作成されたことを示します。containerGroupIdの値は、インスタンスのIDを示します。

{
	"requestId": "FA8DB391-3F54-5998-BDA0-8195113108E8",
	"containerGroupId": "eci-uf6g69s8wou20ns7****"
}