本文介绍了C# SDK的安装方法、示例代码以及如何使用C# SDK发布事件。
SDK简介
事件总线EventBridge的SDK分为管控API SDK和数据API SDK,示例代码有所不同。
管控API SDK:对控制台页面进行操作使用的SDK。
数据API SDK:事件数据的通道,目前只有发送事件(PutEvents)属于此类。
前提条件
您已完成以下操作:
环境准备
环境要求
安装.NET Core 2.0以上版本。更多信息,请参见安装.NET。
安装Visual Studio 2010以上版本。更多信息,请参见安装Visual Studio。
查看语言版本
执行命令
dotnet --version
查看.NET Core版本。
管控API SDK
安装SDK
在Visual Studio中安装C# SDK。
选择 。
执行以下命令安装C# SDK。
Install-Package AlibabaCloud.SDK.Eventbridge20200401 -Version 1.0.0
SDK示例
您可以在OpenAPI门户通过调用API接口,自动生成对应的SDK示例。具体操作,请参见如何自动生成SDK示例。
数据API SDK
安装SDK
在Visual Studio中安装C# SDK。
选择 。
执行以下命令安装C# SDK。
Install-Package AlibabaCloud.SDK.Eventbridge
SDK示例
数据API SDK目前只包含发布事件(PutEvents),如需使用C# SDK发布一个或多个事件,请参考以下示例代码。
using System;
using System.Collections.Generic;
using Tea;
namespace Alibabacloud.Sample
{
public class Client
{
/**
* Create client初始化公共请求参数。
*/
public static AlibabaCloud.SDK.EventBridge.EventBridgeClient CreateClient()
{
AlibabaCloud.SDK.EventBridge.Models.Config config = new AlibabaCloud.SDK.EventBridge.Models.Config();
SetAccessKeyId(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")).
SetAccessKeySecret(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).
SetEndpoint("<endpoint>")
return new AlibabaCloud.SDK.EventBridge.EventBridgeClient(config);
}
/**
* PutEvents
*/
public static void PutEvents(AlibabaCloud.SDK.EventBridge.EventBridgeClient client)
{
AlibabaCloud.SDK.EventBridge.Models.CloudEvent event_ = new AlibabaCloud.SDK.EventBridge.Models.CloudEvent();
event_.Datacontenttype = "application/json";
event_.Data = AlibabaCloud.TeaUtil.Common.ToBytes("test");
event_.Id = "a5074581-7e74-4e4c-868f-47e7afdf****";
event_.Source = "acs.oss";
event_.Specversion = "1.0";
event_.Type = "oss:ObjectCreated:PostObject";
event_.Time = "2020-08-24T13:54:05.965Asia/Shanghai";
event_.Subject = "1.0";
event_.Type = "acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg";
event_.Extensions = new Dictionary<string, object>
{ { "aliyuneventbusname", "demo-bus" },
};
try
{
AlibabaCloud.SDK.EventBridge.Models.PutEventsResponse resp = client.PutEvents(new List<AlibabaCloud.SDK.EventBridge.Models.CloudEvent>
{
event_
});
Console.WriteLine("--------------------Publish event to the aliyun EventBus--------------------");
Console.WriteLine(AlibabaCloud.TeaUtil.Common.ToJSONString(resp.ToMap()));
}
catch (TeaException error)
{
Console.WriteLine(error.Message);
}
catch (Exception _error)
{
TeaException error = new TeaException(new Dictionary<string, object>
{ { "message", _error.Message }
});
Console.WriteLine(error.Message);
}
}
static void Main(string[] args)
{
AlibabaCloud.SDK.EventBridge.EventBridgeClient client = Client.CreateClient();
Client.PutEvents(client);
Console.ReadKey();
}
}
}