簡體   English   中英

使用lambda函數將數據發送到kinesis流(在不同的AWS賬戶中)

[英]Sending data to kinesis stream (in different AWS account) using lambda function

我有一個lambda函數,可以寫入運動流。 但是現在,我想寫一個屬於另一個AWS賬戶的運動流。 假設我擁有所有必需的交叉帳戶權限,如何將數據發送到此流? 調用kinesis構造函數或putRecord函數時應如何更改參數?

上面有一種方法在技術上可行,但是對代碼進行硬編碼甚至將憑據配置為lambda對我來說似乎有點多余,因為lambda本身要求您扮演角色。 您需要做的是創建跨帳戶信任並使用sts承擔角色。

使用運動學流在帳戶中創建一個角色,並將其設置為信任您的lambda角色。

為該角色提供一個策略,使其可以進入運動學流。

在您的lambda代碼中,使用sts在帳戶中使用kinesis流創建會話並放置記錄。

請注意,您的lambda需要一個允許其進入第二個帳戶角色的策略。

這里提供了對您擁有的帳戶的訪問權限,對其進行了更清晰的描述

首先,您需要配置Kinesis實例:

(我選擇Javascript作為示例)

var kinesis = new AWS.Kinesis({
    accessKeyId: 'XXX',
    secretAccessKey: 'YYY',
    region: 'eu-west-1',
    apiVersion: '2013-12-02'
});

有關更多信息,請看構建Kinesis對象

要寫/寫記錄,請使用以下命令

var params = {
    Data: new Buffer('...') || 'STRING_VALUE', /* required */
    PartitionKey: 'STRING_VALUE', /* required */
    StreamName: 'STRING_VALUE', /* required */
    ExplicitHashKey: 'STRING_VALUE',
    SequenceNumberForOrdering: 'STRING_VALUE'
};
kinesis.putRecord(params, function (err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else     console.log(data);           // successful response
});

有關更多信息,請看一下調用putRecord操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM