ローカル環境でサーバレス開発をしています。タイトルのエラーから二日間くらい抜け出せません。
知見のある方、助言のほどよろしくお願いします。
やりたいこと
以上のlocal環境でDBにデータを登録したい。
環境
- SAM
- DynamoDB local (Docker)
- Golang
- API Gatewai
- Lambda
現象
- タイムアウトになりLambda response must be valid jsonになる。
- デバックすると、DB接続の部分で失敗してる模様
- sam, API Gatewayを使用せずgo, DynamoDBのみで実行するとデータ登録に成功出来ます。
- 以上からGoとDBの接続方法は間違っていない。
- APIgateway → Lambdaで動かすとDBの登録処理が出来ない。
コード
func handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) { sess := session.Must(session.NewSession(&aws.Config{ Region: aws.String("ap-northeast-1"), Endpoint: aws.String("http://localhost:8000"), Credentials: credentials.NewStaticCredentials("tekitou", "tekitou", ""), })) db := dynamodb.New(sess) param, err := db.PutItem(&dynamodb.PutItemInput{ TableName: aws.String("user"), Item: map[string]*dynamodb.AttributeValue{ "LoginId": { S : aws.String("sato"), }, "Password": { S : aws.String("sato"), }, "UserName": { S : aws.String("sato"), }, }, }) fmt.Println(param) if err != nil { return response(http.StatusBadRequest, "db err"), nil } return response(http.StatusOK, string("OK")), nil }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。