amazonka-lambda-1.3.0: Amazon Lambda SDK.

Copyright(c) 2013-2015 Brendan Hay
LicenseMozilla Public License, v. 2.0.
MaintainerBrendan Hay <brendan.g.hay@gmail.com>
Stabilityauto-generated
Portabilitynon-portable (GHC extensions)
Safe HaskellNone
LanguageHaskell2010

Network.AWS.Lambda.Invoke

Contents

Description

Invokes a specified Lambda function.

This operation requires permission for the 'lambda:InvokeFunction' action.

See: AWS API Reference for Invoke.

Synopsis

Creating a Request

invoke Source

Arguments

:: Text

iFunctionName

-> Invoke 

Creates a value of Invoke with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

Request Lenses

iInvocationType :: Lens' Invoke (Maybe InvocationType) Source

By default, the Invoke API assumes "RequestResponse" invocation type. You can optionally request asynchronous execution by specifying "Event" as the InvocationType. You can also use this parameter to request AWS Lambda to not execute the function but do some verification, such as if the caller is authorized to invoke the function and if the inputs are valid. You request this by specifying "DryRun" as the InvocationType. This is useful in a cross-account scenario when you want to verify access to a function without running it.

iPayload :: Lens' Invoke (Maybe ByteString) Source

JSON that you want to provide to your Lambda function as input.

Note: This Lens automatically encodes and decodes Base64 data, despite what the AWS documentation might say. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This Lens accepts and returns only raw unencoded data.

iLogType :: Lens' Invoke (Maybe LogType) Source

You can set this optional parameter to "Tail" in the request only if you specify the InvocationType parameter with value "RequestResponse". In this case, AWS Lambda returns the base64-encoded last 4 KB of log data produced by your Lambda function in the 'x-amz-log-results' header.

iClientContext :: Lens' Invoke (Maybe Text) Source

Using the ClientContext you can pass client-specific information to the Lambda function you are invoking. You can then process the client information in your Lambda function as you choose through the context variable. For an example of a ClientContext JSON, go to PutEvents in the Amazon Mobile Analytics API Reference and User Guide.

The ClientContext JSON must be base64-encoded.

iFunctionName :: Lens' Invoke Text Source

The Lambda function name.

You can specify an unqualified function name (for example, "Thumbnail") or you can specify Amazon Resource Name (ARN) of the function (for example, "arn:aws:lambda:us-west-2:account-id:function:ThumbNail"). AWS Lambda also allows you to specify only the account ID qualifier (for example, "account-id:Thumbnail"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

Destructuring the Response

invokeResponse Source

Creates a value of InvokeResponse with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

data InvokeResponse Source

Upon success, returns an empty response. Otherwise, throws an exception.

See: invokeResponse smart constructor.

Response Lenses

irsFunctionError :: Lens' InvokeResponse (Maybe Text) Source

Indicates whether an error occurred while executing the Lambda function. If an error occurred this field will have one of two values; Handled or Unhandled. Handled errors are errors that are reported by the function while the Unhandled errors are those detected and reported by AWS Lambda. Unhandled errors include out of memory errors and function timeouts. For information about how to report an Handled error, see Programming Model.

irsLogResult :: Lens' InvokeResponse (Maybe Text) Source

It is the base64-encoded logs for the Lambda function invocation. This is present only if the invocation type is "RequestResponse" and the logs were requested.

irsPayload :: Lens' InvokeResponse (Maybe ByteString) Source

It is the JSON representation of the object returned by the Lambda function. In This is present only if the invocation type is "RequestResponse".

In the event of a function error this field contains a message describing the error. For the Handled errors the Lambda function will report this message. For Unhandled errors AWS Lambda reports the message.

Note: This Lens automatically encodes and decodes Base64 data, despite what the AWS documentation might say. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This Lens accepts and returns only raw unencoded data.

irsStatusCode :: Lens' InvokeResponse Int Source

The HTTP status code will be in the 200 range for successful request. For the "RequestResonse" invocation type this status code will be 200. For the "Event" invocation type this status code will be 202. For the "DryRun" invocation type the status code will be 204.