API Gateway の AWS 統合メモ

DynamoDB GetItem

統合リクエストのマッピングテンプレート

PUT GetItem

{
    "TableName": "テーブル名",
    "Key": {
        "プライマリキー名": {"S": "$input.params('リクエストパラメータ名')"}
    }
}

統合レスポンスのマッピングテンプレート

雑にレスポンス返すならこのような形

#set($item = $input.path('$.Item'))
{
#foreach($param in $item.keySet())
  $param : ${item.get($param).S}
#end
}

ヘッダにアサインしたいときは

integration.response.body.Item.hoge.fuga.S

SQS SendMessage

メソッドリクエスト

  • SQS/region
  • パスの上書き: ${AWSAccountID}/${QueueName}

統合リクエストの QueryStrings 設定

  • MessageBody: method.request.querystring.message_body
  • Action: ‘SendMessage’
---
swagger: "2.0"
info:
  version: "2019-05-05T00:04:30Z"
  title: "AWSIntegrationAPI"
host: "....."
basePath: "/Prod"
schemes:
- "https"
paths:
  /sqs/item:
    post:
      produces:
      - "application/json"
      parameters:
      - name: "message_body"
        in: "query"
        required: true
        type: "string"
      responses:
        200:
          description: "200 response"
          schema:
            $ref: "#/definitions/Empty"
      x-amazon-apigateway-integration:
        credentials: "...."
        uri: "...."
        responses:
          default:
            statusCode: "200"
        requestParameters:
          integration.request.querystring.MessageBody: "method.request.querystring.message_body"
          integration.request.querystring.Action: "'SendMessage'"
        passthroughBehavior: "when_no_templates"
        httpMethod: "POST"
        type: "aws"
definitions:
  Empty:
    type: "object"
    title: "Empty Schema"

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください