我创建了一个lambda函数,根据连接到数据库所需的文档,尝试通过Alexa Skills Kit for Node与Dynamo DB建立连接
r
出于某种原因,我收到以下错误
alexa.dynamoDBTableName = 'YourTableName'; // That's it!
奇怪的是,我创建了一个名为lambda_full_access的新卷并为技能改变了它,但它仍然假设另一个卷。我做错了什么。
答案 0 :(得分:0)
我不知道你是否已经弄清楚了,但你必须自己编辑JSON权限。因此,当您创建新的IAM角色时,请打开“高级设置”并将JSON的内容更改为:
<form action="/jadmin/updatebulkexpirationdate" method="post">
@foreach ($users as $user)
<tr>
<td id="name" value="{{$user->domain}}">{{ $user->domain}}</td>
<input type="hidden" name="domain" value="{{$user->domain}}">
<td>{{ $user->where('plan_expiration', $user->plan_expiration)->where('domain', $user->domain)->count()}}</td>
<td id="oldDate>{{ $user->plan_expiration }}</td>
<input type="hidden" name="oldDate" value="{{$user->plan_expiration}}">
<td><button class="btn btn-default" id="newBulkExpiratioDateUpdate" type="submit">Set New Expiration Date</button></td>
</tr>
@endforeach
</form>
Above提供对DynamoDB的完全访问权限。 AWS上也提供了其他权限的JSON。
答案 1 :(得分:0)
这显然是许可问题。您已选择角色&#34; lambda_full_access&#34;。如果您已创建该角色,请检查您是否已为该角色授予dynamoDB GetItem权限。如果您选择了其中一个默认角色,则可以编辑该角色并使用以下策略附加自定义策略,
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "YouID",
"Effect": "Allow",
"Action": [
"dynamodb:GetItem",
"dynamodb:Scan"
],
"Resource": [
"YOUR DYNAMODB ARN HERE"
]
}
]
}
&#13;
这意味着现在您的角色将只有&#34; GetItem&#34;具有完整的lambda访问权限和dynamoDB访问权限。和&#34;扫描&#34;。如果你想要更多的权限,比如&#34; PutItem&#34;等你可以添加它。
或者,您可以创建自定义角色,并可以为Lambda访问附加策略,并可以使用上述设置创建自定义策略。