在使用SDK调用OpenAPI时,必须正确配置目标云产品的Endpoint。例如,在创建资源时,应优先选择与业务物理位置最近的地域Endpoint,以降低网络延迟并提高响应速度。在进行查询、更新或删除资源时,必须选择资源所在地域的Endpoint,因为资源存储具有地域属性,跨地域操作可能导致访问失败或数据一致性风险。本节主要介绍V2.0 SDK对于Endpoint的配置。
Endpoint类型
Endpoint主要分为两类:公网Endpoint和VPC Endpoint。当您的业务部署在VPC网络(例如ECS、ACK等)时,为了提高安全性并降低网络延迟,您可以选择通过VPC Endpoint访问该VPC内的云上资源。更多信息请参见服务接入点。
Endpoint设置
V2.0 SDK提供了两种Endpoint设置方式,分别为指定Endpoint和通过指定RegionId自动获取Endpoint。
指定Endpoint(推荐):用户可以通过在初始化客户端时指定Endpoint,产品的Endpoint可以通过OpenAPI 开发者门户的产品主页中查找,具体参考文末。
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"), // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), }; // 自定义Endpoint config.Endpoint = "dysmsapi.aliyuncs.com"; AlibabaCloud.SDK.Dysmsapi20170525.Client client = new AlibabaCloud.SDK.Dysmsapi20170525.Client(config);指定RegionId:通过寻址逻辑获取Endpoint。
若请求的产品SDK中存在RegionId和Endpoint映射关系对象,且传入的RegionId在该对象中,则从映射关系对象中获取Endpoint。
若请求的产品SDK没有RegionId和Endpoint映射关系对象,或者传入的RegionId不在映射关系对象中,则根据拼接规则自动拼接Endpoint。拼接规则:
${产品 Id}.${RegionId}.aliyuncs.com。
附:Endpoint查找方式
产品的Endpoint可以通过在OpenAPI门户上寻找:
在门户顶部菜单选择云产品,例如ECS。
在云产品主页找到服务区域列表。
选择相应RegionId所对应的Endpoint,进行复制粘贴即可。
还可以在API调试界面,在左侧栏单击服务区域,查看云产品支持的Endpoint。