本文介绍如何使用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({ });
        // 您的AccessKey ID。
        config.accessKeyId = "<accessKeyId>";
        // 您的AccessKey Secret。
        config.accessKeySecret = "<accessKeySecret>";
        // 您的接入点。
        config.endpoint = "<endpoint>";
        return new EventBridge(config);
    }

    static async createTargetsSample(client: EventBridge): Promise<void> {
        try {
            let createTargetsRequest = new $EventBridge.CreateTargetsRequest({ });
            createTargetsRequest.eventBusName = "demo-bus";
            createTargetsRequest.ruleName = "myRule";
            let targetEntry = new $EventBridge.TargetEntry({ });
            targetEntry.id = "dingtalk.target";
            targetEntry.endpoint = "https://oapi.dingtalk.com/robot/send?access_token=1019d4a19e2ef6b2f***********396fc5e94814ed8460";
            targetEntry.type = "acs.dingtalk";
            let param1 = new $EventBridge.EBTargetParam({ });
            param1.resourceKey = "URL";
            param1.form = "CONSTANT";
            param1.value = "https://oapi.dingtalk.com/robot/send?access_token=1019d4a19e2ef6b2f***********396fc5e94814ed8460";
            let param2 = new $EventBridge.EBTargetParam({ });
            param2.resourceKey = "SecretKey";
            param2.form = "CONSTANT";
            param2.value = "SEC121a71ff304a65b4f7c**************1f4d9f6c1ca514300d15234";
            let param3 = new $EventBridge.EBTargetParam({ });
            param3.resourceKey = "Body";
            param3.form = "TEMPLATE";
            param3.value = `{\n    \"key\":\"$.source\",\n    \"value\":\"$.data\"\n}`;
            param3.template = "{\"msgtype\": \"text\",\"text\": {\"content\": \"Hello:${key}\"}}";
            let paramList = [
                param1,
                param2,
                param3
            ];
            targetEntry.paramList = paramList;
            let targetEntryList = [
                targetEntry
            ];
            createTargetsRequest.targets = targetEntryList;
            let response = await client.createTargets(createTargetsRequest);
            Console.log("--------------------Create targets success--------------------");
            Console.log(Util.toJSONString($tea.toMap(response)));
        } catch (error) {
            Console.log(error.message);
        }
    }

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

}

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