apexが便利すぎるのでGoで書いてapexでLambdaへデプロイして
適当にやらせるのにハマっている。S3に上がったファイルを読み込んで何かやるための
下準備としてこんな感じの値が取れるので、aws-sdk-go
のs3.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"
// }
// }
// }
// ]
// }