全部產品
Search
文件中心

EventBridge:TypeScript SDK使用手冊

更新時間:Jul 06, 2024

本文介紹了TypeScript SDK的安裝方法、範例程式碼以及如何使用TypeScript SDK發布事件。

SDK簡介

事件匯流排EventBridge的SDK分為管控API SDK和資料API SDK,範例程式碼有所不同。

  • 管控API SDK:對控制台頁面進行操作使用的SDK。

  • 資料API SDK:事件數目據的通道,目前只有發送事件(PutEvents)屬於此類。

前提條件

您已完成以下操作:

環境準備

  1. 安裝Node.js 8.0或以上的版本。更多資訊,請參見安裝Node.js

  2. 執行命令node -v查看Node.js版本。

  3. 執行以下命令全域安裝TypeScript。

  4. npm install -g typescript

管控API SDK

安裝SDK

執行以下命令安裝TypeScript SDK。

npm install --save @alicloud/eventbridge20200401@1.0.1

SDK樣本

您可以在OpenAPI門戶通過調用API介面,自動產生對應的SDK樣本。具體操作,請參見如何自動產生SDK樣本

資料API SDK

安裝SDK

  1. 執行以下命令安裝TypeScript SDK。

    npm install @alicloud/eventbridge -S
  2. 執行以下命令安裝列印連接埠。

    npm install @alicloud/tea-console -S

SDK樣本

資料API SDK目前只包含發布事件(PutEvents),如需使用TypeScript SDK發布一個或多個事件,請參考以下範例程式碼。

import EventBridge, * as $EventBridge from '@alicloud/eventbridge';
import Util from '@alicloud/tea-util';
import Console from '@alicloud/tea-console';
import * as $tea from '@alicloud/tea-typescript';

export default class Client {

    /**
     * Create client初始化公用請求參數。
     */
    static async createClient(): Promise<EventBridge> {
        let config = new $EventBridge.Config({ });
        SetAccessKeyId(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")).
        SetAccessKeySecret(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).
        SetEndpoint("<endpoint>")
        return new EventBridge(config);
    }

    /**
     * PutEvents
     */
    static async PutEvents(client: EventBridge): Promise<void> {
        let event = new $EventBridge.CloudEvent({ });
        event.datacontenttype = "application/json";
        event.data = Util.toBytes("test");
        event.id = "a5074581-7e74-4e4c-868f-47e7afdf8445";
        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 = {
            aliyuneventbusname: "demo-bus",
        };
        try {
            let resp = await client.putEvents([
                event
            ]);
            Console.log("--------------------Publish event to the aliyun EventBus--------------------");
            Console.log(Util.toJSONString($tea.toMap(resp)));
        } catch (error) {
            Console.log(error.message);
        }
    }

    static async main(args: string[]): Promise<void> {
        let client = await Client.createClient();
        await Client.PutEvents(client);
    }

}

Client.main(process.argv.slice(2));