本文以在Windows操作系统上,通过VS Code使用阿里云.NET SDK为例,帮助您了解如何快速使用阿里云.NET SDK。
前提条件
已安装.NET,如您未安装请参见在Windows安装.NET。
已安装了VS Code,如您未安装请参见在Windows搭建.NET开发环境。
使用SDK
使用OpenAPI门户提供的代码示例工程
可能会存在OpenAPI无法下载代码示例工程的情况,您可以查看在已有的项目中安装SDK的介绍。
搜索OpenAPI:在OpenAPI门户搜索您将要调用的接口。例如调用云服务器ECS的DescribeRegions接口,可在搜索栏中填入DescribeRegions,在搜索结果中单击API名称进入API调试页面。|
查看OpenAPI参数信息:在参数配置页签中填写需要的参数信息。填写时请参考右侧文档页签,充分了解接口的说明和注意事项(尤其是费用相关信息),以及各个参数的具体含义和使用方法。
下载示例工程:在右侧的SDK示例页签,下载SDK完整工程至本地并解压。
打开 Visual Studio Code,单击打开,选择解压后的工程文件夹。
在调用之前,需要先获取访问凭证AccessKey,建议使用RAM用户的AccessKey。更多信息,请参见创建RAM用户的AccessKey。
重要获取RAM用户的AccessKey之后,还需要在环境变量中设置AccessKey,具体操作步骤请参见在Linux、macOS和Windows系统配置环境变量
将凭证配置到环境变量之后,使用命令行运行项目,如果未抛出异常则说明调用成功。
cd core dotnet run
在已有的项目中安装SDK
创建应用程序项目:使用File -> Open Folder打开.NET项目文件夹,在Terminal执行
dotnet new console -n V2SDKProject
命令创建一个新的控制台应用程序项目,执行cd V2SDKProject
进入该项目。安装SDK:访问SDK中心,选择您想要使用的 SDK的云产品,这里以云服务器ECS为例。SDK版本选择V2.0,语言选择C#,复制安装命令在Terminal中执行。
dotnet add package AlibabaCloud.SDK.Ecs20140526 --version 4.1.9
初始化客户端。如您想调用云服务器ECS的API,必须先对云服务器ECS的客户端做初始化。
重要初始化客户端时需要使用AccessKey完成身份验证,请提前获取AccessKey。获取方法请参见创建AccessKey。
获取RAM用户的AccessKey之后,还需要在环境变量中设置AccessKey,具体操作步骤请参见在Linux、macOS和Windows系统配置环境变量。
endpoint如何设置请参见服务接入点。
public static AlibabaCloud.SDK.Ecs20140526.Client CreateClient() { 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 请参考 https://api.aliyun.com/product/Ecs config.Endpoint = "ecs.cn-shanghai.aliyuncs.com"; return new AlibabaCloud.SDK.Ecs20140526.Client(config); }
调用API。在调用OpenAPI之前,您需要先了解OpenAPI的详细信息,请查看API文档,以调用ECS的DescribeRegions为例。
说明每个API都有独立的请求对象,命名规则为${API名称}${Request},例如DescribeRegionsRequest。
AlibabaCloud.SDK.Ecs20140526.Models.DescribeRegionsRequest describeRegionsRequest = new AlibabaCloud.SDK.Ecs20140526.Models.DescribeRegionsRequest { AcceptLanguage = "zh-CN", };
异常处理:请重视异常处理,切勿在项目中直接忽略异常。建议采取合理的措施来处理异常,比如合理地传播异常、记录日志、尝试恢复等,以确保系统的健壮性和稳定性。.NET V2.0 SDK异常处理介绍请参见异常处理。
using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using Tea; using Tea.Utils; namespace AlibabaCloud.SDK.Sample { public class Sample { /** * 使用AK&SK初始化账号Client * @return Client * @throws Exception */ public static AlibabaCloud.SDK.Ecs20140526.Client CreateClient() { 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"), }; config.Endpoint = "ecs.cn-shanghai.aliyuncs.com"; return new AlibabaCloud.SDK.Ecs20140526.Client(config); } public static void Main(string[] args) { AlibabaCloud.SDK.Ecs20140526.Client client = CreateClient(); AlibabaCloud.SDK.Ecs20140526.Models.DescribeRegionsRequest describeRegionsRequest = new AlibabaCloud.SDK.Ecs20140526.Models.DescribeRegionsRequest { AcceptLanguage = "zh-CN", }; AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); try { AlibabaCloud.SDK.Ecs20140526.Models.DescribeRegionsResponse resp = client.DescribeRegionsWithOptions(describeRegionsRequest, runtime); Console.WriteLine(AlibabaCloud.TeaUtil.Common.ToJSONString(resp)); } catch (TeaException error) { // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 // 错误 message Console.WriteLine(error.Message); // 诊断地址 Console.WriteLine(error.Data["Recommend"]); AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message); } catch (Exception _error) { TeaException error = new TeaException(new Dictionary<string, object> { { "message", _error.Message } }); // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 // 错误 message Console.WriteLine(error.Message); // 诊断地址 Console.WriteLine(error.Data["Recommend"]); AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message); } } } }
运行示例代码。
dotnet run