-
AWS Management Consoleにログインし、Lambdaサービスを開きます。
-
「関数の作成」をクリックして新しいLambda関数を作成します。
-
関数の設定画面で、適切な関数名とランタイム(Python、Node.jsなど)を選択します。
-
「アクセス権限」セクションで、適切なロールを選択し、必要な権限を付与します。S3へのアクセス権限が必要です。
-
関数コードの編集画面で、以下のコードを使用してS3上のファイルを圧縮します。
import boto3
import zipfile
def lambda_handler(event, context):
s3 = boto3.resource('s3')
bucket_name = 'your_bucket_name'
key = 'path/to/your/file'
# Zipファイルの作成
zip_file_name = 'compressed.zip'
with zipfile.ZipFile(zip_file_name, 'w') as zip_file:
zip_file.write(key)
# S3に圧縮ファイルをアップロード
s3.meta.client.upload_file(zip_file_name, bucket_name, zip_file_name)
return {
'statusCode': 200,
'body': 'ファイルの圧縮とS3へのアップロードが完了しました。'
}
-
コード内の
your_bucket_name
とpath/to/your/file
を適切なバケット名とファイルパスに置き換えます。 -
ファンクションコードの下部にある「デプロイ」ボタンをクリックして関数をデプロイします。
-
Lambda関数のトリガーを設定します。S3バケット内のオブジェクトが作成または更新された際にLambda関数がトリガーされるように設定します。
これで、S3上のファイルが自動的に圧縮され、圧縮ファイルが同じバケットにアップロードされるようになります。この方法を使用すると、ファイルのバックアップや圧縮が簡単に行えます。