LoginSignup
1
1

More than 5 years have passed since last update.

apexを利用してAWS LambdaでS3にファイルがアップロードされたhookを利用する場合(準備編)

Posted at

apexが便利すぎるのでGoで書いてapexでLambdaへデプロイして
適当にやらせるのにハマっている。S3に上がったファイルを読み込んで何かやるための
下準備としてこんな感じの値が取れるので、aws-sdk-gos3.GetObjectInputを利用して
ファイルを読み込んだりする

package main

import (
    "encoding/json"
    "log"

    "github.com/apex/go-apex"
)

func main() {

    apex.HandleFunc(func(event json.RawMessage, ctx *apex.Context) (interface{}, error) {
        data, err := event.MarshalJSON()
        if err != nil {
            log.Fatal(err)
        }
        log.Println(string(data))

        return nil, nil
    })
}

// 2016/08/03 07:08:26
// {
//     "Records": [
//         {
//             "eventVersion": "2.0",
//             "eventSource": "aws:s3",
//             "awsRegion": "ap-northeast-1",
//             "eventTime": "2016-08-03T07:08:25.726Z",
//             "eventName": "ObjectCreated:Put",
//             "userIdentity": {
//                 "principalId": "AWS:XXXXXXXXXXXXXXXXXXXXX"
//             },
//             "requestParameters": {
//                 "sourceIPAddress": "192.0.2.1"
//             },
//             "responseElements": {
//                 "x-amz-request-id": "XXXXXXXXXXXXXXXX",
//                 "x-amz-id-2": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
//             },
//             "s3": {
//                 "s3SchemaVersion": "1.0",
//                 "configurationId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
//                 "bucket": {
//                     "name": "BUCKET_NAME",
//                     "ownerIdentity": {
//                         "principalId": "XXXXXXXXXXXXXX"
//                         "principalId": "A2XB359WQOLGWM"
//                     },
//                     "arn": "arn:aws:s3:::BUCKET_NAME"
//                 },
//                 "object": {
//                     "key": "FILE_NAME",
//                     "size": SIZE,
//                     "eTag": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
//                     "eTag": "e3ab69a36d84838ad2824fe34033368b",
//                     "sequencer": "XXXXXXXXXXXXXXXXXX"
//                 }
//             }
//         }
//     ]
// }
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1