本文以在Windows作業系統上,通過VS Code使用阿里雲.NET SDK為例,協助您瞭解如何快速使用阿里雲.NET SDK。
前提條件
已安裝.NET,如您未安裝請參見在Windows安裝.NET。
已安裝了VS Code,如您未安裝請參見在Windows搭建.NET開發環境。
使用SDK
使用OpenAPI門戶提供的程式碼範例工程
可能會存在OpenAPI無法下載程式碼範例工程的情況,您可以查看在已有的專案中安裝SDK的介紹。
搜尋OpenAPI:在OpenAPI門戶搜尋您將要調用的介面。例如調用Elastic Compute Service的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的雲產品,這裡以Elastic Compute Service為例。SDK版本選擇V2.0,語言選擇C#,複製安裝命令在Terminal中執行。
dotnet add package AlibabaCloud.SDK.Ecs20140526 --version 4.1.9
初始化用戶端。如您想調用Elastic Compute Service的API,必須先對Elastic Compute Service的用戶端做初始化。
重要初始化用戶端時需要使用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