簡體   English   中英

如何使用 Lambda 函數將下載的文件上傳到 s3 存儲桶

[英]How to upload downloaded file to s3 bucket using Lambda function

我看到了不同的問題/答案,但找不到適合我的問題/答案。 因此,我對 AWS 真的很陌生,我需要你的幫助。 我正在嘗試下載 gzip 文件並將其加載到 json 文件,然后使用 Lambda 函數將其上傳到 S3 存儲桶。 我編寫了下載文件並將其轉換為 json 的代碼,但在將其上傳到 s3 存儲桶時出現問題。 假設該文件已准備好作為 x.json。 那我該怎么辦?

我知道這是非常基本的問題,但仍然需要幫助:)

此代碼將上傳到 Amazon S3:

import boto3

s3_client = boto3.client('s3', region_name='us-west-2')  # Change as appropriate
s3._client.upload_file('/tmp/foo.json', 'my-bucket', 'folder/foo.json')

一些技巧:

  • 在 Lambda 函數中,您只能寫入/tmp/
  • 有 512MB 的限制
  • 在您的函數結束時,刪除文件(zip、json 等),因為容器可以重復使用並且您不想用完磁盤空間

如果您的 lambda 具有將文件寫入 S3 的適當權限,則只需使用boto3包,它是適用於 Python 的 AWS 開發工具包。

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html

請注意,如果 lambda 位於 VPC 內部,則 lambda 無法訪問公共互聯網,也無法訪問 boto3 API 端點。 因此,您可能需要一個 NAT 網關來向公眾代理 lambda。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM