lambda:deploy-functions

Full name:

br.com.ingenieux:lambda-maven-plugin:1.5.6:deploy-functions

Description:

Represents the AWS Lambda Deployment Process, which means:

  • Parsing the function-definition file
  • For each declared function, tries to update the function
  • if the function is missing, create it
  • Otherwise, compare the function definition with the expected parameters, and changes the function configuration if needed

Attributes:

  • Requires a Maven project to be executed.

Required Parameters

Name Type Since Description
<defaultMemorySize> Integer - AWS Lambda Default Memory Size, in MB (used when missing in function definition)
Default value is: 128.
User property is: lambda.default.memorySize.
<defaultRole> String -

AWS Lambda Default IAM Role (used when missing in function definition)

Allows wildcards like '*' and '?' - will be looked up upon when deploying


Default value is: arn:aws:iam::*:role/lambda_basic_execution.
User property is: lambda.default.role.
<defaultTimeout> Integer - AWS Lambda Default Timeout, in seconds (used when missing in function definition)
Default value is: 5.
User property is: lambda.default.timeout.
<definitionFile> File -

Definition File

Consists of a JSON file array as such:

[ {
  "name": "AWS Function Name",
  "handler": "AWS Function Handler ref",
  "timeout": 5,
  "memorySize": 128,
  "role": "aws role"
}
]

Where:

  • Name is the AWS Lambda Function Name
  • Handler is the Handler Ref (for Java, it is classname::functionName)
  • Timeout is the timeout
  • memorySize is the memory
  • Role is the AWS Service Role

Of those, only name and handler are obligatory.


Default value is: ${project.build.outputDirectory}/META-INF/lambda-definitions.json.
User property is: lambda.definition.file.
<s3Url> String - Lambda Function URL on S3, e.g. s3://somebucket/object/key/path.zip
Default value is: ${beanstalk.lastUploadedS3Object}.
User property is: lambda.s3url.
<session> MavenSession - (no description)
Default value is: ${session}.

Optional Parameters

Name Type Since Description
<credentialId> String - The credential id (on ~/.aws/credentials file) to use)
Default value is: default.
User property is: beanstalker.credentialId.
<curProject> MavenProject - (no description)
User property is: project.
<deployAliases> Boolean - Publish a new function version?
Default value is: false.
User property is: lambda.deploy.aliases.
<deployPublish> Boolean - Publish a new function version?
Default value is: false.
User property is: lambda.deploy.publish.
<ignoreExceptions> boolean - Ignore Exceptions?
Default value is: false.
User property is: beanstalker.ignoreExceptions.
<regionName> String -

Service region e.g. "us-east-1"

See this list for reference.


User property is: beanstalker.region.
<securityGroupIds> List - Security Group Ids
User property is: lambda.deploy.securityGroupIds.
<serverId> String - The server id in maven settings.xml to use for AWS Services Credentials (accessKey / secretKey)
Default value is: aws.amazon.com.
User property is: beanstalker.serverId.
<subnetIds> List - Subnet Ids
User property is: lambda.deploy.subnetIds.
<verbose> boolean - Verbose Logging?
Default value is: false.
User property is: beanstalker.verbose.

Parameter Details

<credentialId>

The credential id (on ~/.aws/credentials file) to use)
  • Type: java.lang.String
  • Required: No
  • User Property: beanstalker.credentialId
  • Default: default

<curProject>

(no description)
  • Type: org.apache.maven.project.MavenProject
  • Required: No
  • User Property: project

<defaultMemorySize>

AWS Lambda Default Memory Size, in MB (used when missing in function definition)
  • Type: java.lang.Integer
  • Required: Yes
  • User Property: lambda.default.memorySize
  • Default: 128

<defaultRole>

AWS Lambda Default IAM Role (used when missing in function definition)

Allows wildcards like '*' and '?' - will be looked up upon when deploying

  • Type: java.lang.String
  • Required: Yes
  • User Property: lambda.default.role
  • Default: arn:aws:iam::*:role/lambda_basic_execution

<defaultTimeout>

AWS Lambda Default Timeout, in seconds (used when missing in function definition)
  • Type: java.lang.Integer
  • Required: Yes
  • User Property: lambda.default.timeout
  • Default: 5

<definitionFile>

Definition File

Consists of a JSON file array as such:

[ {
  "name": "AWS Function Name",
  "handler": "AWS Function Handler ref",
  "timeout": 5,
  "memorySize": 128,
  "role": "aws role"
}
]

Where:

  • Name is the AWS Lambda Function Name
  • Handler is the Handler Ref (for Java, it is classname::functionName)
  • Timeout is the timeout
  • memorySize is the memory
  • Role is the AWS Service Role

Of those, only name and handler are obligatory.

  • Type: java.io.File
  • Required: Yes
  • User Property: lambda.definition.file
  • Default: ${project.build.outputDirectory}/META-INF/lambda-definitions.json

<deployAliases>

Publish a new function version?
  • Type: java.lang.Boolean
  • Required: No
  • User Property: lambda.deploy.aliases
  • Default: false

<deployPublish>

Publish a new function version?
  • Type: java.lang.Boolean
  • Required: No
  • User Property: lambda.deploy.publish
  • Default: false

<ignoreExceptions>

Ignore Exceptions?
  • Type: boolean
  • Required: No
  • User Property: beanstalker.ignoreExceptions
  • Default: false

<regionName>

Service region e.g. "us-east-1"

See this list for reference.

  • Type: java.lang.String
  • Required: No
  • User Property: beanstalker.region

<s3Url>

Lambda Function URL on S3, e.g. s3://somebucket/object/key/path.zip
  • Type: java.lang.String
  • Required: Yes
  • User Property: lambda.s3url
  • Default: ${beanstalk.lastUploadedS3Object}

<securityGroupIds>

Security Group Ids
  • Type: java.util.List
  • Required: No
  • User Property: lambda.deploy.securityGroupIds

<serverId>

The server id in maven settings.xml to use for AWS Services Credentials (accessKey / secretKey)
  • Type: java.lang.String
  • Required: No
  • User Property: beanstalker.serverId
  • Default: aws.amazon.com

<session>

(no description)
  • Type: org.apache.maven.execution.MavenSession
  • Required: Yes
  • Default: ${session}

<subnetIds>

Subnet Ids
  • Type: java.util.List
  • Required: No
  • User Property: lambda.deploy.subnetIds

<verbose>

Verbose Logging?
  • Type: boolean
  • Required: No
  • User Property: beanstalker.verbose
  • Default: false