代理

更新时间:

本文介绍如何使用SDK调用代理相关的方法。

创建代理

说明

使用代理前务必先部署代理,SDK无法自动部署代理,请参考文档部署代理 按照文档提示操作。仅当使用专线或者VPN的情况下才需要创建代理,公网场景一般无须创建代理。

以下示例代码用于创建代理。

import os

from alibabacloud_hcs_mgw20240626.client import Client
from alibabacloud_hcs_mgw20240626.models import CreateAgentRequest, \
    CreateAgentInfo
from alibabacloud_tea_openapi.models import Config

if __name__ == "__main__":
    try:
        # 填写主账号ID。
        userid = "11470***876***55"
        # 这里以北京区域为例。
        endpoint = "cn-beijing.mgw.aliyuncs.com"
        # 填写通道ID。
        tunnel_id = "ab31d1f9-****-4f62-****-914e4b2f78c7"
        # 填写代理名称。
        agent_name = "exampleagent"
        # 使用网络,公网请填写public, 专线或者VPN请填写vpc。
        agent_endpoint = "public"
        # 部署方式,目前仅支持填写default。
        deploy_method = "default"

        config = Config(
            endpoint=endpoint,
            access_key_id=os.environ.get("OSS_ACCESS_KEY_ID"),
            access_key_secret=os.environ.get("OSS_ACCESS_KEY_SECRET"),
        )
        client = Client(config)
        response = client.create_agent(userid, CreateAgentRequest(CreateAgentInfo(
            agent_endpoint=agent_endpoint,
            deploy_method=deploy_method,
            name=agent_name,
            tunnel_id=tunnel_id
        )))
    except Exception as e:
        print(e)

查询代理状态

以下示例代码用于查询指定代理状态。

import os

from alibabacloud_hcs_mgw20240626.client import Client
from alibabacloud_tea_openapi.models import Config

if __name__ == "__main__":
    try:
        # 填写主账号ID。
        userid = "11470***876***55"
        # 这里以北京区域为例。
        endpoint = "cn-beijing.mgw.aliyuncs.com"
        # 填写通道ID。
        tunnel_id = "ab31d1f9-****-4f62-****-914e4b2f78c7"
        # 填写代理名称。
        agent_name = "exampleagent"

        config = Config(
            endpoint=endpoint,
            access_key_id=os.environ.get("OSS_ACCESS_KEY_ID"),
            access_key_secret=os.environ.get("OSS_ACCESS_KEY_SECRET"),
        )
        client = Client(config)
        response = client.get_agent_status(userid, agent_name)
        print(response.body)
    except Exception as e:
        print(e)

正常返回示例

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

获取代理详情

以下示例代码用于获取指定代理详情信息。

import os

from alibabacloud_hcs_mgw20240626.client import Client
from alibabacloud_tea_openapi.models import Config

if __name__ == "__main__":
    try:
        # 填写主账号ID。
        userid = "11470***876***55"
        # 这里以北京区域为例。
        endpoint = "cn-beijing.mgw.aliyuncs.com"
        # 填写通道ID。
        tunnel_id = "ab31d1f9-****-4f62-****-914e4b2f78c7"
        # 填写代理名称。
        agent_name = "exampleagent"

        config = Config(
            endpoint=endpoint,
            access_key_id=os.environ.get("OSS_ACCESS_KEY_ID"),
            access_key_secret=os.environ.get("OSS_ACCESS_KEY_SECRET"),
        )
        client = Client(config)
        response = client.get_agent(userid, agent_name)
        print(response.body)
    except Exception as e:
        print(e)
 

正常返回示例

{
  "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"
  }
}

列举代理

以下示例代码用于列举账号下所有代理信息。

import os

from alibabacloud_hcs_mgw20240626.client import Client
from alibabacloud_hcs_mgw20240626.models import ListAgentRequest
from alibabacloud_tea_openapi.models import Config

if __name__ == "__main__":
    try:
        # 填写主账号ID。
        userid = "11470***876***55"
        # 这里以北京区域为例。
        endpoint = "cn-beijing.mgw.aliyuncs.com"
        # 填写代理名称。
        agent_name = "exampleagent"

        config = Config(
            endpoint=endpoint,
            access_key_id=os.environ.get("OSS_ACCESS_KEY_ID"),
            access_key_secret=os.environ.get("OSS_ACCESS_KEY_SECRET"),
        )
        client = Client(config)
        # 根据实际填写marker, count。
        count = 1
        marker = ""
        response = client.list_agent(userid, ListAgentRequest(
            marker=marker,
            count=count,
        ))
        for import_agent in response.body.import_agent_list.import_agent:
            print(import_agent)
    except Exception as e:
        print(e)

删除代理

以下示例代码用于删除指定代理。

import os

from alibabacloud_hcs_mgw20240626.client import Client
from alibabacloud_tea_openapi.models import Config

if __name__ == "__main__":
    try:
        # 填写主账号ID。
        userid = "11470***876***55"
        # 这里以北京区域为例。
        endpoint = "cn-beijing.mgw.aliyuncs.com"
        # 填写代理名称。
        agent_name = "exampleagent"

        config = Config(
            endpoint=endpoint,
            access_key_id=os.environ.get("OSS_ACCESS_KEY_ID"),
            access_key_secret=os.environ.get("OSS_ACCESS_KEY_SECRET"),
        )
        client = Client(config)
        client.delete_agent(userid, agent_name)
    except Exception as e:
        print(e)

后续步骤

代理创建后,您可以选择继续创建数据地址,详情请参见数据地址