2017-07-20 162 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