Amazon web services 在EC2实例上运行Python DynamoDB

Amazon web services 在EC2实例上运行Python DynamoDB,amazon-web-services,amazon-ec2,localhost,amazon-dynamodb,boto3,Amazon Web Services,Amazon Ec2,Localhost,Amazon Dynamodb,Boto3,我想在Python中的EC2实例中使用DynamoDB。我已经在本地对其进行了测试,并使用以下方法在本地设置了DynamoDB资源: dynamodb = boto3.resource('dynamodb', aws_access_key_id=ACCESS_ID, aws_secret_access_key= ACCESS_KEY, region_name='us-west-2', endpoint_url='http://localhost:8000') 我想知道,一旦它在EC2

我想在Python中的EC2实例中使用DynamoDB。我已经在本地对其进行了测试,并使用以下方法在本地设置了DynamoDB资源:

dynamodb = boto3.resource('dynamodb', aws_access_key_id=ACCESS_ID,
     aws_secret_access_key= ACCESS_KEY, region_name='us-west-2', endpoint_url='http://localhost:8000')

我想知道,一旦它在EC2实例上运行,端点url是否应该更改(更改为不同的内容),或者是否应该以完全不同的方式设置资源。谢谢大家!

首先,您应该避免在源代码中添加凭据。这可能导致安全漏洞,并且很难更新:

  • 在Amazon EC2实例上运行时:为实例分配IAM角色。代码将自动查找凭据
  • 在您自己的系统上运行时:将凭据存储在
    ~.aws/credentials
    文件中(或运行
    aws configure
    创建该文件)
如果希望连接DynamoDB,请省略端点参数。我假设您一直在使用,它在您自己的计算机上运行。要使用“真正的”DynamoDB,请省略端点

此外,最好包括一个区域,例如:

dynamodb = boto3.resource('dynamodb', region_name='ap-southeast-2')

首先,您应该避免将凭据放入源代码中。这可能导致安全漏洞,并且很难更新:

  • 在Amazon EC2实例上运行时:为实例分配IAM角色。代码将自动查找凭据
  • 在您自己的系统上运行时:将凭据存储在
    ~.aws/credentials
    文件中(或运行
    aws configure
    创建该文件)
如果希望连接DynamoDB,请省略端点参数。我假设您一直在使用,它在您自己的计算机上运行。要使用“真正的”DynamoDB,请省略端点

此外,最好包括一个区域,例如:

dynamodb = boto3.resource('dynamodb', region_name='ap-southeast-2')