Lambda(PHP)からS3にPUTする方法
前提
項目 | バージョン |
---|---|
OS | Ubuntu 20.04.4 LTS |
PHP | PHP 7.4.3-4ubuntu2.17 (cli) (built: Jan 10 2023 15:37:44) ( NTS ) |
Composerインストール済みであること
$ sudo apt update $ sudo apt install -y php-curl $ sudo apt install -y php7.4-xml $ sudo apt install -y composer
aws sdkインストール
composerでaws sdkをインストールします。
$ composer require bref/bref $ vendor/bin/bref init What kind of lambda do you want to create? (you will be able to add more functions later by editing `serverless.yml`) [Web application]: [0] Web application [1] Event-driven function > 1 $ composer require aws/aws-sdk-php
index.php
index.phpを修正します。
<?php require __DIR__ . '/vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\S3Exception; return function ($event) { $client = new S3Client([ 'version' => '2006-03-01', 'region' => 'ap-northeast-1', ]); try { $result = $client->putObject([ 'Bucket' => '<バケット名>', // バケット名 'Key' => 'temp/aaa.json', // オブジェクトキー 'SourceFile' => './sample.json' ]); } catch (S3Exception $e) { $error = $e->getMessage(); var_dump($error); exit(500); } var_dump($result); return "ok"; };
SourceFileではファイルパスを指定します。index.phpと同じ場所にsample.jsonを配置しているので./sample.jsonとしています。
デプロイします。
$ sls deploy
Lambda実行すると、S3バケットにPUTされていることが確認できます。
$ aws s3 cp s3://<バケット名>/temp/aaa.json - { "name":"takahashi", "age": 20 }
参考サイト
Installation — AWS SDK for PHP documentation
Creating and using Amazon S3 buckets with the Amazon SDK for PHP Version 3 - Amazon SDK for PHP
Describes how to use Amazon S3 buckets with the Amazon SDK for PHP Version 3.
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント