[英]Sending data to AWS Kinesis stream cross-accounts with Lambda
I'm trying to send data to a Kinesis stream from 1 AWS account to another account with Lambda. I tried to use assume-role and my code is:我正在尝试将数据从 1 个 AWS 账户发送到 Kinesis stream 到另一个账户 Lambda。我尝试使用 assume-role,我的代码是:
assumed_role_object = self.sts_client.assume_role(
RoleArn="arn:aws:iam::XXXXXXXXXXX:role/cross-account-access",
RoleSessionName="AssumeRoleSession"
)
credentials = assumed_role_object['Credentials']
kinesis_resource = boto3.resource(
'kinesis',
aws_access_key_id=credentials['AccessKeyId'],
aws_secret_access_key=credentials['SecretAccessKey'],
aws_session_token=credentials['SessionToken'],
)
kinesis_resource.put_record(StreamName='StreamName',
Data=encoded,
PartitionKey=partition_key,
ExplicitHashKey='string',
SequenceNumberForOrdering='string'
)
and I get this error:我得到这个错误:
ResourceNotExistsError: The 'kinesis' resource does not exist.
ResourceNotExistsError:“运动”资源不存在。 The available resources are:
可用的资源是:
- cloudformation
云形成
- cloudwatch
云表
- dynamodb
动态模块
- ec2
EC2
- glacier
冰川
- iam
我是
- opsworks
操作系统
- s3
s3
- sns
社交网络
- sqs
平方米
So I understand that sts
does not support kinesis
.所以我明白
sts
不支持kinesis
。 Someone knows a way to send data to kinesis
cross-account?有人知道将数据发送到
kinesis
跨帐户的方法吗?
This aws document can be referred which demonstrated cross account application writing to kinesis data stream using kinesis client library (java/python) - https://aws.amazon.com/blogs/architecture/field-notes-how-to-enable-cross-account-access-for-amazon-kinesis-data-streams-using-kinesis-client-library-2-x/可以参考此 aws 文档,它演示了使用 kinesis 客户端库 (java/python) 跨帐户应用程序写入 kinesis 数据 stream - https://aws.amazon.com/blogs/architecture/field-notes-how-to-enable-跨账户访问-for-amazon-kinesis-data-streams-using-kinesis-client-library-2-x/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.