【问题标题】:Getting error while accessing AWS DynamoDB from AWS Lambda从 AWS Lambda 访问 AWS DynamoDB 时出错
【发布时间】:2018-03-23 15:37:16
【问题描述】:

我在 lambda 中遵循 boto3 代码以通过 STS 凭据访问 dynamo db 表时收到错误消息。 代码如下

import boto3
def lambda_handler(event, context):
sts_client = boto3.client('sts')

# Call the assume_role method of the STSConnection object and pass the role
# ARN and a role session name.
assumedRoleObject = sts_client.assume_role(
    RoleArn="arn:aws:iam::012345678910:role/test_role",
    RoleSessionName="AssumeRoleSession1"
)

# From the response that contains the assumed role, get the temporary
# credentials that can be used to make subsequent API calls
credentials = assumedRoleObject['Credentials'] 


dynamoDB = boto3.resource('dynamodb',aws_access_key_id=credentials['AccessKeyId'],aws_secret_access_key=credentials['SecretAccessKey'],aws_session_token=credentials['SessionToken'],)
test1=dynamoDB.get_available_subresources

table = dynamoDB.Table('Test1')

response = table.get_item(
    Key={
            'Name': 'ABC'
        }
    )

错误堆栈跟踪如下:

ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the GetItem operation: Requested resource not found

【问题讨论】:

  • 你没有包括堆栈跟踪,只有错误
  • 该表是否存在?如果是这样,您不应该在您的 dynamoDB 资源对象中定义 region_name 吗?
  • 即使添加了 region_name 也出现同样的错误
  • 只是说,表名区分大小写

标签: python amazon-web-services aws-lambda amazon-dynamodb boto3


【解决方案1】:

先检查“Test1”表是否存在

来自this 文档:

ResourceNotFoundException

消息:未找到请求的资源。

示例:被请求的表不存在,或者不存在 处于 CREATING 状态的早期。

list-tables命令检查这个表是否存在:

aws dynamodb list-tables

验证您的 CLI 默认区域是否与表的区域相同

如果此表确实存在,请检查您的cli configuration 以确认您正在查询该表所在的同一区域。您可以像这样检查您的默认区域:

aws configure get region

您可以使用aws configure 更改您的默认设置,或直接在任何CLI 命令上指定--region 以覆盖您的默认区域。

【讨论】:

    【解决方案2】:

    我经常遇到这个错误,通常是由于表不存在。

    检查:

    1. 表存在且拼写正确
    2. 您正在访问您的表所在的正确 DynamoDB 实例
    3. 您使用的角色有权访问该表

    【讨论】:

    • 是的,表存在并且该角色具有管理员权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    相关资源
    最近更新 更多