[英]AWS: reading Kinesis Stream data using Kinesis Firehose in a different account
[英]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.