Elastic Beanstalk 无法连接 DynamoDB



我真的是一个法律新手,如果这是一个愚蠢的问题,那么很抱歉。

我做了一个与在线DynamoDB表连接的网站,它完全在我的本地工作,但是当我在我的Elastic Beanstalk环境中部署网站代码时,它不连接到DynamoDB表。

有什么我应该做的配置吗?

恐怕没有别人遇到过这个问题。

我的网站是用aws php sdk编写的,由aws.phar.

我为iam用户创建了一个策略,如下所示:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Action": [
                    "dynamodb:GetItem",
                    "dynamodb:PutItem"
                ],
                "Effect": "Allow",
                "Resource": [DynamoDB table],
                "Condition": {
                    "ForAllValues:StringEquals": {
                        "dynamodb:Attributes": [
                            [Lists of attributes]
                        ]
                    }
                }
            }
        ]
    }

通过将Elastic Beanstalk自动创建的角色的正确权限添加到EC2实例来解决这个问题。

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html

当我在代码中包含有关区域,访问密钥和密钥的详细信息时,它对我有效。我替换了

dynamodb = boto3.resource('dynamodb')

dynamodb = boto3.resource('dynamodb', region_name = Region_NAME, 
    aws_access_key_id = ACCESS_KEY, aws_secret_access_key =
    SECRET_ACCESS_KEY)

尽管这不是一个推荐的解决方案,因为由于安全问题,您不应该在代码中包含凭据。

最新更新