【问题标题】:Elastic Beanstalk can't connect DynamoDBElastic Beanstalk 无法连接 DynamoDB
【发布时间】:2020-08-06 01:17:14
【问题描述】:

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

我创建了一个与在线 DynamoDB 表连接的网站,它在我的本地完全可以运行,但是当我在我的 Elastic Beanstalk 环境中部署网站代码时,它没有连接到 DynamoDB 表。

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

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

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

我确实为 iam 用户创建了如下策略:

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

【问题讨论】:

  • 您的网站托管在哪里?您是否将 RDS 用于 dynamodb?
  • 我不确定我是否理解第一个问题。我在 route53 上购买的域名,我的网站在 elastic beanstalk 上。在本地我使用 XAMPP。关于第二个问题,RDS 不仅仅适用于关系型数据库?
  • 您的 EC2 是否可以访问 dynamodb?
  • 我不知道。我怎么能保证呢?
  • SSH 进入 EC2 实例并尝试从命令行连接到 dynamodb docs.aws.amazon.com/cli/latest/reference/dynamodb

标签: amazon-web-services amazon-ec2 amazon-dynamodb amazon-elastic-beanstalk aws-php-sdk


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

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

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)

虽然这不是推荐的解决方案,但由于安全问题,您不应在代码中包含凭据。

【讨论】:

    猜你喜欢
    • 2016-08-24
    • 2021-10-07
    • 2015-12-10
    • 2016-11-09
    • 2015-09-18
    • 2021-02-14
    • 2018-09-07
    • 2018-12-29
    • 1970-01-01
    相关资源
    最近更新 更多