2017-07-20 164 views
1

我正在使用Python创建AWS Lambda函数。我想创建S3存储桶,但由于我提供的存储桶名称不是JSON可串行化,因此出现错误。如何使用AWS Lambda python创建S3存储桶?

这里是我用于创建和λ桶中的代码:

import boto from boto 
import s3 from boto.s3.connection 
import S3Connection 

def lambda_handler(event, context): 
    conn = S3Connection('access_key','secret_access_key') 
    print "Connection:",conn 
    bucket = conn.create_bucket('bucketname') 
    print bucket 
    return bucket 
+0

请提供您正在使用的代码和您遇到的错误消息。有关询问一个好问题的提示,请参阅:[我如何提出一个好问题?](http://stackoverflow.com/help/how-to-ask) –

+0

请在下面的代码中找到我用于创建存储桶的代码拉姆达: - 进口博托 从博托进口S3 从boto.s3.connection进口S3Connection DEF lambda_handler(事件,上下文): 康恩= S3Connection( 'access_key', 'secret_access_key') 打印 “连接:”, conn bucket = conn.create_bucket('bucketname') print bucket return bucket – RAcharya

+0

随意编辑您的问题,而不是在评论中添加代码。在Lambda函数中,不需要获取访问密钥和密钥。它是作为将角色分配给Lambda函数而自动提供的。您的Lambda功能有效吗?你收到了什么错误?您可以在Amazon CloudWatch Logs中查看日志。 –

回答

1

Creating and Using Amazon S3 Buckets boto3文档:

import boto3 

s3 = boto3.client('s3') 
s3.create_bucket(Bucket='my-bucket') 

规则桶名称:

  • 桶名称可以是长度在3到63个字符之间,而且可以是con只能使用小写字符,数字,句点和破折号。
  • 存储桶名称中的每个标签都必须以小写字母或数字开头。
  • 存储桶名称不能包含下划线,以短划线结尾,具有连续的句点或在句点附近使用破折号。
  • 存储桶名称不能格式化为IP地址(198.51.100.24)。
+0

我遵循S3存储桶的所有规则。 – RAcharya

+0

这个工作对我来说 S3 = boto3.resource( 'S3') B = s3.Bucket( 'laddu47') b.create(CreateBucketConfiguration = { 'LocationConstraint': 'AP-南-1'}) – Amaresh