我有一个使用Kinesis客户端库(KCL)编写的Kinesis消费者。此使用者在假定的IAM角色下运行。
我从文档中了解到:
KCL使用应用程序名称创建一个DynamoDB表,并使用该表维护应用程序的状态信息(例如检查点和工作分片映射)。每个应用程序都有自己的DynamoDB表。有关详细信息,请参阅跟踪Amazon Kinesis数据流应用程序状态。
当然,我需要将dynamodb:CreateTable权限添加到我的IAM角色中。然而,我在其他方面也遇到了错误(例如,dynamodb:descripbetable)。
我的KCL消费者需要访问的所有DynamoDB操作是否有列表?似乎缺少留档,我宁愿有一个权威列表,也不愿继续尝试运行我的应用程序。
这应该是您需要的权限集。表名由客户端代码提供,默认为appName,但可以在ConfigsBuilder中重写:
- Effect: Allow
Action:
- dynamodb:CreateTable
- dynamodb:DescribeTable
- dynamodb:Scan
- dynamodb:PutItem
- dynamodb:GetItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource:
- !Join ["", ["arn:aws:dynamodb:*:", !Ref 'AWS::AccountId', ":table/*"]]
我也有同样的问题,在设置此策略后能够解决问题,应该有一个适当的权限来访问动画
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kinesis:Get*",
"kinesis:DescribeStream",
"kinesis:ListShards"
],
"Resource": [
"arn:aws:kinesis:ap-south-1:ACCOUNT_ID:stream/STREAM_NAME"
]
},
{
"Effect": "Allow",
"Action": [
"kinesis:ListStreams"
],
"Resource": [
"arn:aws:kinesis:ap-south-1:ACCOUNT_ID:stream/STREAM_NAME"
]
},
{
"Sid": "SpecificTable",
"Effect": "Allow",
"Action": [
"dynamodb:BatchGet*",
"dynamodb:DescribeStream",
"dynamodb:DescribeTable",
"dynamodb:Get*",
"dynamodb:Query",
"dynamodb:Scan",
"dynamodb:BatchWrite*",
"dynamodb:CreateTable",
"dynamodb:Delete*",
"dynamodb:Update*",
"dynamodb:PutItem"
],
"Resource": "arn:aws:dynamodb:ap-south-1:ACCOUNT_ID:table/TABLE_NAME*"
}
]
}
我观察到,运动流中存在一些记录,但KCL消费者应用程序尚未收到这些记录。发生这种情况的原因是什么?之前和之后的记录都很好。 所有异常都在我的应用程序中消耗,KCL不会收到。所以http://docs.aws.amazon.com/streams/latest/dev/troubleshooting-consumers.html#w1ab1c11c11c15b9的情况也没有发生。 一些细节:打开分片
请帮忙。我在为中的Kinesis数据流设置消费者时遇到问题。NET控制台应用程序。 我已经按照留档做了所有的事情,但是每当我运行消费者时,我仍然会得到一个空白的控制台屏幕。到目前为止,生产者工作正常,AWS凭据也在工作。 我的系统上的JDK配置良好(对Java开发来说并不新鲜) 我有所有必要的政策附加到我的IAM用户 我可以看到生产者可以使用相同的AWS凭据以编程方式创建流、desc流等 我可以在
假设我有一个Docker容器来保存一些数据。我希望这些数据能够持久化--如果容器被停止、删除、升级等,我仍然希望这些数据位于主机OS文件系统中的一个可访问的位置。 那么,如何对正在挂载的目录设置正确的权限呢?
在Bash中是否有需要转义的字符的全面列表?是否可以只使用检查它? 并且工作正常,没有转义。是否意味着不需要转义?这是检查必要性的好方法吗? 更一般的是:在和中转义的字符是否相同?
我想制作下面的数据发送架构。 生产商-- 消费者服务器可以关闭,因此我认为应该至少有两个消费者。是这样吗? 当一个数据流有两个使用者时,是否有任何方法可以处理每个使用者一半的数据?正如我所知,这是不可能的。如果每个消费者都使用相同的数据,那就是浪费时间和成本。因为我只为高可用性提供了两个消费者。(用于故障切换) 在web was体系结构中,ELB或L4可以通过负载平衡将一半数据发送到每个was服务