API Gateway, Lambda, S3を使用して、ファイルを取得する処理をノンサーバで実装する~その1~
AWS流行ってるね!ノンサーバって響きがかっこいいー!でも何したらいいか分からん!
という感じなエンジニアです。(笑)
今回は3回に分けて
API Gateway→イベントキャッチしてlambdaからS3オブジェクトを取得する処理を実行
を実装してみます。
s3の設定
S3に新しいバケットを作成する
まずはS3に新しいバケットを作成します。
サービスから[S3]を押下します。
[バケットを作成]を押下します。
以下を設定して[作成]を押下します。
バケット名:teset.test.test.3(任意)※1
リージョン:Oregon(任意)※2
※1 バケット名は一意に設定する必要があります。他ユーザが既に作成しているバケットは作ることができません。
※2 リージョンにより料金設定が異なります。
これで新しいバケットが作成されました。
バケットにポリシーを設定する
では次にバケットポリシーを設定して、オブジェクトを取得できるようにしましょう。
以下のようにバケット名が一覧で表示されているので、バケット名[test.test.test.3]を押下します。
右上にある[プロパティ]を押下すると、右からウィンドウが出てきます。
[アクセス許可]→[バケットポリシーの追加]を押下します。
バケットポリシーエディターがポップアップして表示されるので以下を追記して[保存]を押下します。
バケットポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::test.test.test.3/*"
}
]
}
これでバケットポリシーの設定は完了です。
今回設定したポリシーは
test.test.test.3配下に存在するオブジェクトの取得をすべて許可する
という設定です。
S3にファイルをアップロードする
では最後にオブジェクトをアップロードします。
まずはindex.htmlを作成します。
以下の内容のindex.htmlを作成してください。
index.html
<html>
<body>
<p>Hello</p>
</body>
</html>
左上の[アップロード]を押下すると、アップロード画面がポップアップして表示されます。
ドラッグ&ドロップか、[ファイルを追加する]を押してindex.htmlを選択し、[アップロードの開始]を押下します。
右側に転送ステータスが表示され「完了」と表示されると、左側の一覧に表示されます。
これでオブジェクト(index.html)のアップロードは完了です。
S3の設定は以上です。
今回S3にアップロードしたindex.htmlをlambdaからアクセスして取得できるようにします。
lamdaの設定は次回。