apigatewayproxyevt

package
v0.0.0-...-e888a5e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 29, 2017 License: Apache-2.0 Imports: 1 Imported by: 7

README

Amazon API Gateway Proxy Events

Back to Home Go Doc AWS Doc

This package allows you write AWS Lambda functions as the back end of your API through the AWS Lambda proxy integration.

Quick Hands-On

For step by step instructions on how to author your AWS Lambda function code in Go, see eawsy/aws-lambda-go-shim.

go get -u -d github.com/eawsy/aws-lambda-go-event/...
package main

import (
	"log"

	"github.com/eawsy/aws-lambda-go-event/service/lambda/runtime/event/apigatewayproxyevt"
	"github.com/eawsy/aws-lambda-go-core/service/lambda/runtime"
)

func Handle(evt *apigatewayproxyevt.Event, ctx *runtime.Context) (interface{}, error) {
	log.Println(evt)
	return nil, nil
}

Documentation

Overview

Package apigatewayproxyevt allows you write AWS Lambda functions as the back end of your API through the AWS Lambda proxy integration.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Event

type Event struct {
	// The incoming request HTTP method name.
	// Valid values include: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and
	// PUT.
	HTTPMethod string

	// The incoming request HTTP headers.
	// Duplicate entries are not supported.
	Headers map[string]string

	// The resource path with raw placeholders as defined in
	// Amazon API Gateway.
	Resource string

	// The incoming request path parameters corresponding to the resource
	// path placeholders values as defined in Resource.
	PathParameters map[string]string

	// The real path corresponding to the path parameters injected into the
	// Resource placeholders.
	Path string

	// The incoming request query string parameters.
	// Duplicate entries are not supported.
	QueryStringParameters map[string]string

	// If used with Amazon API Gateway binary support, it represents the
	// Base64 encoded binary data from the client.
	// Otherwise it represents the raw data from the client.
	Body string

	// A flag to indicate if the applicable request payload is Base64
	// encoded.
	IsBase64Encoded bool

	// The name-value pairs defined as configuration attributes associated
	// with the deployment stage of the API.
	StageVariables map[string]string

	// The contextual information associated with the API call.
	RequestContext *RequestContext
}

Event represents an Amazon API Gateway Proxy Event.

func (*Event) GoString

func (e *Event) GoString() string

GoString returns the string representation.

func (*Event) String

func (e *Event) String() string

String returns the string representation.

type Identity

type Identity struct {
	// The API owner key associated with the API.
	APIKey string

	// The AWS account ID associated with the request.
	AccountID string

	// The User Agent of the API caller.
	UserAgent string

	// The source IP address of the TCP connection making the request to
	// Amazon API Gateway.
	SourceIP string

	// The Amazon Access Key associated with the request.
	AccessKey string

	// The principal identifier of the caller making the request.
	// It is same as the User and interchangeable.
	Caller string

	// The principal identifier of the user making the request.
	// It is same as the Caller and interchangeable.
	User string

	// The Amazon Resource Name (ARN) of the effective user identified after
	// authentication.
	UserARN string

	// The Amazon Cognito identity ID of the caller making the request.
	// Available only if the request was signed with Amazon Cognito
	// credentials.
	CognitoIdentityID string

	// The Amazon Cognito identity pool ID of the caller making the request.
	// Available only if the request was signed with Amazon Cognito
	// credentials.
	CognitoIdentityPoolID string

	// The Amazon Cognito authentication type of the caller making the
	// request. Available only if the request was signed with Amazon Cognito
	// credentials.
	CognitoAuthenticationType string

	// The Amazon Cognito authentication provider used by the caller making
	// the request. Available only if the request was signed with
	// Amazon Cognito credentials.
	CognitoAuthenticationProvider string
}

Identity provides identity information about the API caller.

type RequestContext

type RequestContext struct {
	// The identifier Amazon API Gateway assigns to the API.
	APIID string

	// The identifier Amazon API Gateway assigns to the resource.
	ResourceID string

	// An automatically generated ID for the API call.
	RequestID string

	// The incoming request HTTP method name.
	// Valid values include: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and
	// PUT.
	HTTPMethod string

	// The resource path as defined in Amazon API Gateway.
	ResourcePath string

	// The AWS account ID associated with the API.
	AccountID string

	// The deployment stage of the API call (for example, Beta or Prod).
	Stage string

	// The API caller identification information.
	Identity *Identity

	// If used with Amazon Cognito, it represents the claims returned from
	// the Amazon Cognito user pool after the method caller is successfully
	// authenticated.
	// If used with Amazon API Gateway custom authorizer, it represents the
	// specified key-value pair of the context map returned from the custom
	// authorizer AWS Lambda function.
	Authorizer map[string]string `json:"-"`
}

RequestContext provides contextual information about an Amazon API Gateway Proxy event.

func (*RequestContext) MarshalJSON

func (rc *RequestContext) MarshalJSON() ([]byte, error)

MarshalJSON reverts the effect of type aliasing and struct embedding used during the marshalling step to make the pattern seamless.

func (*RequestContext) UnmarshalJSON

func (rc *RequestContext) UnmarshalJSON(data []byte) error

UnmarshalJSON interprets data as a RequestContext with a special authorizer. It then leverages type aliasing and struct embedding to fill RequestContext with an usual map[string]string.

type Response

type Response struct {
	// A flag to indicate if the applicable request payload is Base64
	// encoded.
	IsBase64Encoded bool `json:"isBase64Encoded"`

	// The outgoing HTTP status code.
	StatusCode int `json:"statusCode"`

	// The outgoing request HTTP headers.
	Headers map[string]string `json:"headers"`

	// If used with IsBase64Encoded flag true, it represents the Base64 encoded
	// binary data. Otherwise it represents the raw data.
	Body string `json:"body"`
}

Response represents an API Gateway Lambda Proxy response format.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL