All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.lambda.invoke.LambdaFunction Maven / Gradle / Ivy

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
Show newest version
/*
 * Copyright 2015-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.lambda.invoke;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.apache.commons.logging.LogFactory;

import com.amazonaws.services.lambda.model.InvocationType;
import com.amazonaws.services.lambda.model.InvokeRequest;
import com.amazonaws.services.lambda.model.LogType;

/**
 * An annotation that marks methods of an interface that are meant to be proxied to remote code
 * running on AWS Lambda. Methods may accept zero or one arguments, and may return zero or one
 * values. Inputs and outputs will be converted to/from JSON using the Jackson {@code ObjectMapper}.
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface LambdaFunction {

    /**
     * The name of the Lambda function to invoke for this annotated method. If not explicitly set,
     * the name of the interface method is used.
     * 

* * public interface LambdaFunctions { * * @LambdaFunction(functionName="ActualFunctionName") void notTheRealFunctionName(); } * @see InvokeRequest#setFunctionName(String) */ String functionName() default ""; /** * The type of invocation to use. If unspecified, defaults to {@code RequestResponse}. If a * {@code logType} of anything other than {@code None} is specified, the invocation type may * only be set to {@code RequestResponse}. *

* * public interface LambdaFunctions { * * @LambdaFunction(functionName="DoIt") void doIt(); * @LambdaFunction(functionName="DoIt", invocationType=InvocationType.Event) void * doItAsynchronously(); * @LambdaFunction(functionName="DoIt", invocationType=InvocationType.DryRun) void dryRunIt(); } * * @see InvokeRequest#setInvocationType(InvocationType) */ InvocationType invocationType() default InvocationType.RequestResponse; /** * The type of log to request from the service. If unspecified, no logs will be requested. If * specified, the invocation type may only be set to {@code RequestResponse}. *

* When specified, the log information returned by the Lambda function will be emitted to the * JCL log for the interface class at the {@code INFO} level. * * @see InvokeRequest#setLogType(LogType) * @see LogFactory#getLog(Class) */ LogType logType() default LogType.None; }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy