このトピックでは、データオンライン移行 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
}
}
次のステップ
エージェントを作成した後、データアドレスを作成できます。 詳細については、「データアドレスの管理」をご参照ください。