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

Enterprise Distributed Application Service:API操作を呼び出してマイクロサービス名前空間を管理する

最終更新日:Jan 07, 2025

このトピックでは、Enterprise Distributed Application Service (EDAS) SDK for Javaを使用してAPI操作を呼び出し、マイクロサービス名前空間を作成、変更、および削除する方法について説明します。

前提条件

  • EDAS SDK for Javaがインストールされていること。 詳細については、「EDAS SDK for Javaを使用して呼び出す」をご参照ください。

  • 管理するマイクロサービス名前空間のリージョンIDを取得していること。 リージョンIDの例: cn-hangzhou

マイクロサービス名前空間を作成または変更する

次のサンプルコードは、マイクロサービス名前空間を作成または変更する方法の例を示しています。

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.edas.model.v20170801.InsertOrUpdateRegionRequest;
import com.aliyuncs.edas.model.v20170801.InsertOrUpdateRegionResponse;

public class InsertOrUpdateRegion {

    public static void main(String[] args)  {
        // Alibaba CloudアカウントのAccessKeyペアは、すべてのAPI操作に対する権限を持っています。 これらの資格情報を使用してEDASで操作を実行することは、リスクの高い操作です。 セキュリティリスクを回避するために、Resource Access Management (RAM) ユーザーを使用してAPI操作を呼び出したり、日常のO&Mを実行することをお勧めします。 RAMコンソールにログインしてRAMユーザーを作成できます。
        // この例では、AccessKey IDとAccessKeyシークレットは環境変数に格納されています。 ビジネス要件に基づいて、構成ファイルにAccessKey IDとAccessKeyシークレットを保存できます。
        // キーの漏洩を防ぐために、コードにAccessKey IDとAccessKeyシークレットを保存しないことをお勧めします。
        String aliyun_user_ak = System.getenv("ACCESS_KEY_ID");
        String aliyun_user_sk = System.getenv("ACCESS_KEY_SECRET");
        // 作成または変更するマイクロサービス名前空間が存在するリージョンのID。
        String region_id = "cn-hangzhou";

        DefaultProfile defaultProfile = DefaultProfile.getProfile(region_id, aliyun_user_ak, aliyun_user_sk);
        DefaultAcsClient client = new DefaultAcsClient(defaultProfile);

        // APIリクエストを作成し、関連パラメータを構成します。
        InsertOrUpdateRegionRequest request = new InsertOrUpdateRegionRequest();
        // マイクロサービス名前空間のID。「リージョンID:マイクロサービス名前空間の識別子」の形式。 例:cn-hangzhou:doc。
        request.setRegionTag("cn-hangzhou:doc");
        // マイクロサービス名前空間の名前。 例:APIdoc。
        request.setRegionName("APIdoc");
        // マイクロサービス名前空間の説明。
        request.setDescription("API操作を呼び出してマイクロサービス名前空間を作成する");
        // マイクロサービス名前空間を作成または変更します。 マイクロサービス名前空間を作成する場合は、このパラメータを空のままにするか、値を 0 に設定します。 マイクロサービス名前空間を変更する場合は、このパラメータを 0 以外の値に設定します。
        request.setId((long) 0);
        // リモートデバッグを有効にするかどうかを指定します。 リモートデバッグを有効にする場合は、このパラメータをtrueに設定します。 それ以外の場合は、このパラメータをfalseに設定します。
        request.setDebugEnable(true);

        try {
            InsertOrUpdateRegionResponse response = client.getAcsResponse(request);
            System.out.println("RegionName=" + response.getUserDefineRegionEntity().getRegionName() + "\nRegionId=" + response.getUserDefineRegionEntity().getRegionId()+ "\nId=" + response.getUserDefineRegionEntity().getId());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

サンプルコードを実行すると、次の結果が返されます。

RegionName=APIdoc
RegionId=cn-hangzhou:doc
Id=17926
説明
  • サンプルレスポンスでは、Id=17926 は、マイクロサービス名前空間に対してシステムによって生成された一意の識別子が 17926 であることを示しています。 マイクロサービス名前空間を削除する場合は、この一意の識別子を参照する必要があります。

  • マイクロサービス名前空間を作成した後、マイクロサービス名前空間用に自動的に生成されたAccessKey IDとAccessKeyシークレットを変更することはできません。

マイクロサービス名前空間を削除する

マイクロサービス名前空間を削除する前に、次の要件が満たされていることを確認してください。

  • マイクロサービス名前空間にクラスターが含まれていないこと。

  • マイクロサービス名前空間にマイクロサービスアプリケーションが含まれていないこと。

  • マイクロサービス名前空間にElastic Compute Service (ECS) インスタンスが含まれていないこと。

マイクロサービス名前空間を作成または変更したときに、Id=17926など、マイクロサービス名前空間の一意の識別子を記録した場合は、記録された一意の識別子を使用してマイクロサービス名前空間を削除できます。

削除するマイクロサービス名前空間の一意の識別子を記録していない場合は、ListUserDefineRegion 操作を呼び出して、マイクロサービス名前空間の一意の識別子をクエリできます。

次のサンプルコードは、マイクロサービス名前空間を削除する方法の例を示しています。

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.edas.model.v20170801.DeleteUserDefineRegionRequest;
import com.aliyuncs.edas.model.v20170801.DeleteUserDefineRegionResponse;

public class DeleteUserDefineRegion {

    public static void main(String[] args)  {
        // Alibaba CloudアカウントのAccessKeyペアは、すべてのAPI操作に対する権限を持っています。 これらの資格情報を使用してEDASで操作を実行することは、リスクの高い操作です。 セキュリティリスクを回避するために、RAMユーザーを使用してAPI操作を呼び出したり、日常のO&Mを実行することをお勧めします。 RAMコンソールにログインしてRAMユーザーを作成できます。
        // この例では、AccessKey IDとAccessKeyシークレットは環境変数に格納されています。 ビジネス要件に基づいて、構成ファイルにAccessKey IDとAccessKeyシークレットを保存できます。
        // キーの漏洩を防ぐために、コードにAccessKey IDとAccessKeyシークレットを保存しないことをお勧めします。
        String aliyun_user_ak = System.getenv("ACCESS_KEY_ID");
        String aliyun_user_sk = System.getenv("ACCESS_KEY_SECRET");
        // 削除するマイクロサービス名前空間が存在するリージョンのID。
        String region_id = "cn-hangzhou";

        DefaultProfile defaultProfile = DefaultProfile.getProfile(region_id, aliyun_user_ak, aliyun_user_sk);
        DefaultAcsClient client = new DefaultAcsClient(defaultProfile);

        // APIリクエストを作成し、関連パラメータを構成します。
        DeleteUserDefineRegionRequest request = new DeleteUserDefineRegionRequest();
        // 削除するマイクロサービス名前空間の一意の識別子。
        request.setId((long) 17926);


        try {
            DeleteUserDefineRegionResponse response = client.getAcsResponse(request);
            System.out.println("RegionName=" + response.getRegionDefine().getRegionName() + "\nRegionId=" + response.getRegionDefine().getRegionId()+ "\nMessage=" + response.getMessage());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

サンプルコードを実行すると、次の結果が返されます。

RegionName=APIdoc
RegionId=cn-hangzhou:doc
Message=success

結果を確認する

マイクロサービス名前空間を作成、変更、または削除した後、ListUserDefineRegion 操作を呼び出して、マイクロサービス名前空間の RegionNameRegionId、および Description パラメータの値をクエリし、操作が成功したかどうかを確認できます。

ListUserDefineRegion 操作を呼び出した後に返されるサンプルレスポンス:

{
  "Message": "success",
  "RequestId": "849E908D-E2DE-4798-937B-7210E00FFDD8",
  "UserDefineRegionList": {
    "UserDefineRegionEntity": [
      {
        "Description": "API操作を呼び出して作成されたマイクロサービス名前空間",
        "RegionName": "APIdoc2",
        "UserId": "native_****",
        "DebugEnable": true,
        "Id": 17925,
        "RegionId": "cn-hangzhou:doc2",
        "BelongRegion": "cn-hangzhou"
      }
    ]
  },
  "Code": 200
}