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

Data Online Migration:エージェントの管理

最終更新日:May 10, 2025

このトピックでは、データオンライン移行 SDK を使用してエージェントを管理する方法について説明します。

エージェントの作成

説明

データオンライン移行 SDK は、エージェントを自動的にデプロイしません。エージェントを使用する前に、エージェントをデプロイする必要があります。 詳細については、「エージェントの管理」をご参照ください。 エージェントは、Express Connect 回線または VPN Gateway 経由でデータを移行する場合にのみ必要です。インターネット経由でデータを移行する場合は、エージェントを作成する必要はありません。

次のサンプルコードは、エージェントを作成する方法を示しています。

package main

import (
    "log"
    "os"

    openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
    mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)

// AccessKey ID と AccessKey シークレットをプロジェクトコードに保存しないことをお勧めします。保存した場合、AccessKey ペアが漏洩し、アカウント内のリソースのセキュリティが侵害される可能性があります。
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")

// Alibaba Cloud アカウントの ID を指定します。
var userId = "11470***876***55"

func main() {
    // トンネル ID を指定します。
    tunnelId := "ab31d1f9-****-4f62-****-914e4b2f78c7"
    // エンドポイントを指定します。この例では、中国 (北京) リージョンのエンドポイントが使用されています。
    endpoint := "cn-beijing.mgw.aliyuncs.com"
    // エージェント名を指定します。
    agentName := "exampleagent"
    // ネットワークタイプを指定します。インターネットを使用する場合は、パラメーターを public に設定します。Express Connect または VPN Gateway を使用する場合は、パラメーターを vpc に設定します。
    agentEndpoint := "public"
    // デプロイ方法を指定します。値を default に設定します。
    deployMethod := "default"

    config := openapipackage.Config{
        AccessKeyId:     &accessKeyId,
        AccessKeySecret: &accessKeySecret,
        Endpoint:        &endpoint,
    }
    client, err := mgwpackage.NewClient(&config)
    if err != nil {
        log.Printf("create client failed: %v", err)
        return
    }
    info := mgwpackage.CreateAgentInfo{
        AgentEndpoint: &agentEndpoint,
        DeployMethod:  &deployMethod,
        Name:          &agentName,
        TunnelId:      &tunnelId,
    }
    _, err = client.CreateAgent(&userId, &mgwpackage.CreateAgentRequest{ImportAgent: &info})
    if err != nil {
        log.Printf("create agent failed: %v", err)
        return
    }
}

エージェントのステータスのクエリ

次のサンプルコードは、エージェントのステータスをクエリする方法を示しています。

package main

import (
    "encoding/json"
    "fmt"
    "log"
    "os"

    openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
    mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)

// AccessKey ID と AccessKey シークレットをプロジェクトコードに保存しないことをお勧めします。保存した場合、AccessKey ペアが漏洩し、アカウント内のリソースのセキュリティが侵害される可能性があります。
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")

// Alibaba Cloud アカウントの ID を指定します。
var userId = "11470***876***55"

func main() {
    // エンドポイントを指定します。この例では、中国 (北京) リージョンのエンドポイントが使用されています。
    endpoint := "cn-beijing.mgw.aliyuncs.com"
    // エージェント名を指定します。
    agentName := "exampleagent"
    config := openapipackage.Config{
        AccessKeyId:     &accessKeyId,
        AccessKeySecret: &accessKeySecret,
        Endpoint:        &endpoint,
    }
    client, err := mgwpackage.NewClient(&config)
    if err != nil {
        log.Printf("create client failed: %v", err)
        return
    }
    resp, err := client.GetAgentStatus(&userId, &agentName)
    if err != nil {
        log.Printf("get client status failed: %v", err)
        return
    }
    jsonBytes, err := json.Marshal(resp)
    if err != nil {
        log.Printf("covert failed: %v", err)
        return
    }
    // エージェントが正常に実行されているのは、status パラメーターの値が OK の場合のみです。
    fmt.Println(string(jsonBytes))
}

正常な応答の例

{
  "ImportAgentStatus": {
    "Status": "OK"
  }
}

エージェント情報のクエリ

次のサンプルコードは、エージェントの情報をクエリする方法を示しています。

package main

import (
    "encoding/json"
    "fmt"
    "log"
    "os"

    openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
    mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)

// AccessKey ID と AccessKey シークレットをプロジェクトコードに保存しないことをお勧めします。保存した場合、AccessKey ペアが漏洩し、アカウント内のリソースのセキュリティが侵害される可能性があります。
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")

// Alibaba Cloud アカウントの ID を指定します。
var userId = "11470***876***55"

func main() {
    // エンドポイントを指定します。この例では、中国 (北京) リージョンのエンドポイントが使用されています。
    endpoint := "cn-beijing.mgw.aliyuncs.com"
    // エージェント名を指定します。
    agentName := "exampleagent"
    config := openapipackage.Config{
        AccessKeyId:     &accessKeyId,
        AccessKeySecret: &accessKeySecret,
        Endpoint:        &endpoint,
    }
    client, err := mgwpackage.NewClient(&config)
    if err != nil {
        log.Printf("create client failed: %v", err)
        return
    }
    resp, err := client.GetAgent(&userId, &agentName)
    if err != nil {
        log.Printf("get agent failed: %v", err)
        return
    }
    jsonBytes, err := json.Marshal(resp)
    if err != nil {
        log.Printf("covert failed: %v", err)
        return
    }
    fmt.Println(string(jsonBytes))
}

正常な応答の例

{
  "ImportAgent": {
    "Owner": "test_owner",
    "Name": "test_name",
    "CreateTime": "2024-05-01T12:00:00.000Z",
    "ModifyTime": "2024-05-01T12:00:00.000Z",
    "DeployMethod": "default",
    "AgentEndpoint": "vpc",
    "ActivationKey": "6af62558-970d-4f44-8663-4e297170fd6a",
    "Tags": "K1:V1,K2:V2",
    "Version": "test_agent_id",
    "TunnelId": "test_tunnel_id"
  }
}

エージェントの一覧表示

次のサンプルコードは、Alibaba Cloud アカウント内のすべてのエージェントを一覧表示する方法を示しています。

package main

import (
    "encoding/json"
    "fmt"
    "log"
    "os"

    openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
    mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)

// AccessKey ID と AccessKey シークレットをプロジェクトコードに保存しないことをお勧めします。保存した場合、AccessKey ペアが漏洩し、アカウント内のリソースのセキュリティが侵害される可能性があります。
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")

// Alibaba Cloud アカウントの ID を指定します。
var userId = "11470***876***55"

func main() {
    // エンドポイントを指定します。この例では、中国 (北京) リージョンのエンドポイントが使用されています。
    endpoint := "cn-beijing.mgw.aliyuncs.com"
    config := openapipackage.Config{
        AccessKeyId:     &accessKeyId,
        AccessKeySecret: &accessKeySecret,
        Endpoint:        &endpoint,
    }
    client, err := mgwpackage.NewClient(&config)
    if err != nil {
        log.Printf("create client failed: %v", err)
        return
    }
    // ビジネス要件に基づいて、marker パラメーターと count パラメーターを指定します。
    count := int32(1)
    marker := ""
    resp, err := client.ListAgent(&userId, &mgwpackage.ListAgentRequest{
        Count: &count, Marker: &marker,
    })
    if err != nil {
        log.Printf("list agent failed: %v", err)
        return
    }
    jsonBytes, err := json.Marshal(resp)
    if err != nil {
        log.Printf("covert failed: %v", err)
        return
    }
    fmt.Println(string(jsonBytes))
}

正常な応答の例

{
  "ImportAgentList": {
    "Truncated": true,
    "NextMarker": "test_next_marker",
    "ImportAgent": [
      {
        "Owner": "test_owner",
        "Name": "test_name",
        "CreateTime": "2024-05-01T12:00:00.000Z",
        "ModifyTime": "2024-05-01T12:00:00.000Z",
        "DeployMethod": "default",
        "AgentEndpoint": "vpc",
        "ActivationKey": "6af62558-970d-4f44-8663-4e297170fd6a",
        "Tags": "K1:V1,K2:V2",
        "Version": "test_agent_id",
        "TunnelId": "test_tunnel_id"
      }
    ]
  }
}

エージェントの削除

次のサンプルコードは、エージェントを削除する方法を示しています。

package main

import (
    "log"
    "os"

    openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
    mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)

// AccessKey ID と AccessKey シークレットをプロジェクトコードに保存しないことをお勧めします。保存した場合、AccessKey ペアが漏洩し、アカウント内のリソースのセキュリティが侵害される可能性があります。
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")

// Alibaba Cloud アカウントの ID を指定します。
var userId = "11470***876***55"

func main() {
    // エンドポイントを指定します。この例では、中国 (北京) リージョンのエンドポイントが使用されています。
    endpoint := "cn-beijing.mgw.aliyuncs.com"
    // エージェント名を指定します。
    agentName := "exampleagent"
    config := openapipackage.Config{
        AccessKeyId:     &accessKeyId,
        AccessKeySecret: &accessKeySecret,
        Endpoint:        &endpoint,
    }
    client, err := mgwpackage.NewClient(&config)
    if err != nil {
        log.Printf("create client failed: %v", err)
        return
    }
    _, err = client.DeleteAgent(&userId, &agentName)
    if err != nil {
        log.Printf("delete agent failed: %v", err)
        return
    }
}

次のステップ

エージェントを作成した後、データアドレスを作成できます。 詳細については、「データアドレスの管理」をご参照ください。