【问题标题】:How to create S3 bucket using AWS Lambda python?如何使用 AWS Lambda python 创建 S3 存储桶?
【发布时间】:2017-12-25 17:37:23
【问题描述】:

我正在使用 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

【问题讨论】:

  • 请提供您正在使用的代码和您遇到的错误消息。有关提出好问题的提示,请参阅:How do I ask a good question?
  • 请在下面找到我用于使用 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
  • 随意编辑您的问题,而不是在评论中添加代码。在 Lambda 函数中,无需获取访问密钥和秘密密钥。它是在将角色分配给 Lambda 函数后自动提供的。你的 Lambda 函数工作了吗?你收到什么错误?您可以在 Amazon CloudWatch Logs 中查看日志。
  • 请显示异常错误。

标签: python-2.7 amazon-s3 aws-lambda boto


【解决方案1】:

来自Creating and Using Amazon S3 Bucketsboto3 文档:

import boto3

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

存储桶名称规则:

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

【讨论】:

  • 我遵循了 S3 存储桶的所有规则。
  • 这对我有用 s3 = boto3.resource('s3') b = s3.Bucket('laddu47') b.create(CreateBucketConfiguration={ 'LocationConstraint': 'ap-south-1' })
猜你喜欢
  • 2019-01-03
  • 2020-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
  • 2021-09-03
相关资源
最近更新 更多