文档

通过IDE使用阿里云.NET SDK

更新时间:
一键部署

本文以在Windows操作系统上,通过VS Code使用阿里云.NET SDK为例,帮助您了解如何快速使用阿里云.NET SDK。

前提条件

使用SDK

使用OpenAPI门户提供的代码示例工程

说明

可能会存在OpenAPI无法下载代码示例工程的情况,您可以查看在已有的项目中安装SDK的介绍。

  1. 搜索OpenAPI:在OpenAPI门户搜索您将要调用的接口。例如调用云服务器ECS的DescribeRegions接口,可在搜索栏中填入DescribeRegions,在搜索结果中单击API名称进入API调试页面。|

    1716346246233_4A41CC11-FA46-4973-BC7B-C4AAD6E7F3F0

  2. 查看OpenAPI参数信息:在参数配置页签中填写需要的参数信息。填写时请参考右侧文档页签,充分了解接口的说明和注意事项(尤其是费用相关信息),以及各个参数的具体含义和使用方法。

    1716346635851_0B018C7F-D759-497b-B529-58E23E4AC41B

  3. 下载示例工程:在右侧的SDK示例页签,下载SDK完整工程至本地并解压。

    image

  4. 打开 Visual Studio Code,单击打开,选择解压后的工程文件夹。

  5. 在调用之前,需要先获取访问凭证AccessKey,建议使用RAM用户的AccessKey。更多信息,请参见创建RAM用户的AccessKey

    重要

    获取RAM用户的AccessKey之后,还需要在环境变量中设置AccessKey,具体操作步骤请参见在Linux、macOS和Windows系统配置环境变量

  6. 将凭证配置到环境变量之后,使用命令行运行项目,如果未抛出异常则说明调用成功。

    cd core
    dotnet run 

    image

在已有的项目中安装SDK

  1. 创建应用程序项目:使用File -> Open Folder打开.NET项目文件夹,在Terminal执行dotnet new console -n V2SDKProject命令创建一个新的控制台应用程序项目,执行cd V2SDKProject进入该项目。

  2. 安装SDK:访问SDK中心,选择您想要使用的 SDK的云产品,这里以云服务器ECS为例。SDK版本选择V2.0,语言选择C#,复制安装命令在Terminal中执行。

    dotnet add package AlibabaCloud.SDK.Ecs20140526 --version 4.1.9

    image

  3. 初始化客户端。如您想调用云服务器ECS的API,必须先对云服务器ECS的客户端做初始化。

    重要
    1. 初始化客户端时需要使用AccessKey完成身份验证,请提前获取AccessKey。获取方法请参见创建AccessKey

    2. 获取RAM用户的AccessKey之后,还需要在环境变量中设置AccessKey,具体操作步骤请参见在Linux、macOS和Windows系统配置环境变量

    3. endpoint如何设置请参见服务接入点

            public static AlibabaCloud.SDK.Ecs20140526.Client CreateClient()
            {
                // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
                // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378671.html。
                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);
            }
  4. 调用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",
                };
  5. 异常处理:请重视异常处理,切勿在项目中直接忽略异常。建议采取合理的措施来处理异常,比如合理地传播异常、记录日志、尝试恢复等,以确保系统的健壮性和稳定性。.NET V2.0 SDK异常处理介绍请参见异常处理

    // This file is auto-generated, don't edit it. Thanks.
    
    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()
            {
                // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
                // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378671.html。
                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);
            }
    
            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);
                }
            }
    
        }
    }
  6. 运行示例代码。

    dotnet run

    image

相关文档

进阶文档