如何使用AWS Lambda Python创建S3存储桶?

4

我正在使用Python创建AWS Lambda函数。我想创建S3存储桶,但是我遇到了错误,因为我提供的存储桶名称无法进行JSON序列化。

以下是我用于在Lambda中创建存储桶的代码:

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

请提供您正在使用的代码和您遇到的错误信息。有关提出好问题的提示,请参见:如何提出一个好问题? - John Rotenstein
请查看下面的代码,这是我用于使用Lambda创建存储桶的代码:import boto from boto import s3 from boto.s3.connection import S3Connectiondef lambda_handler(event, context): conn = S3Connection('access_key','secret_access_key') print "连接:",conn bucket = conn.create_bucket('bucketname') print bucket return bucket - RAcharya
在Lambda函数中,无需获取访问密钥和秘密密钥。这是由于将角色分配给Lambda函数而自动提供的。你的Lambda函数工作了吗?你收到了什么错误?你可以在Amazon CloudWatch日志中查看日志。 - John Rotenstein
请显示异常错误。 - mootmoot
1个回答

3

来自 创建和使用Amazon S3存储桶 的boto3文档:

import boto3

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

Bucket名称规则:

  • Bucket名称长度为3到63个字符,只能包含小写字母、数字、句点和破折号。
  • Bucket名称中的每个标签必须以小写字母或数字开头。
  • Bucket名称不能包含下划线、以破折号结尾、具有连续句点或使用相邻句点的破折号。
  • Bucket名称不能格式化为IP地址(198.51.100.24)。

我遵循了S3存储桶的所有规则。 - RAcharya
1
这对我有用s3 = boto3.resource('s3') b = s3.Bucket('laddu47') b.create(CreateBucketConfiguration={ 'LocationConstraint': 'ap-south-1' }) - Amaresh Jana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接