version: "0.2"
title: Create An AWS Lambda Function
description: This wizard will create a new AWS Lambda function for you
plan:
basics:
shortname: Intro
description: Provide function name and runtime
values:
function_name:
type: prompt
description: Function name
runtime:
type: prompt
description: Select the Lambda runtime
choices:
- actual_value: python2.7
display: Python 2.7
- actual_value: python3.6
display: Python 3.6
- actual_value: python3.7
display: Python 3.7
- actual_value: nodejs4.3
display: Node.js 4.3
- actual_value: nodejs6.10
display: Node.js 6.10
- actual_value: nodejs8.10
display: Node.js 8.10
- actual_value: java8
display: Java 8
- actual_value: dotnetcore1.0
display: .NET Core 1.0 (C#)
- actual_value: dotnetcore2.0
display: .NET Core 2.0 (C#)
- actual_value: dotnetcore2.1
display: .NET Core 2.1 (C#)
- actual_value: go1.
display: Go 1.x
role:
shortname: Permissions
description: Provide Role to be used by Lmanbda function
values:
existing_roles:
type: apicall
operation: iam.ListRoles
params: {}
query: "sort_by(Roles[].{display: RoleName, actual_value: Arn}, &display)"
cache: true
role_arn:
type: prompt
description: Select the role to use
choices: existing_roles
handler:
shortname: Handler
description: Provide handler and code location
values:
handler:
type: prompt
description: Enter the handler for your function
zip_filename:
type: prompt
completer: file_completer
description: Enter location of your code zip file
preview:
shortname: Preview
description: Preview results
values:
preview_cli_command_value:
type: template
value: |
aws lambda create-function \
--function-name '{function_name}' \
--role '{role_arn}' \
--runtime '{runtime}' \
--handler '{handler}' \
--zip-file fileb://{zip_filename}
preview_cfn_template_value:
type: template
value: |
Resources:
{function_name}:
Type: "AWS::Lambda::Function"
Properties:
FunctionName: {function_name}
Runtime: {runtime}
Handler: {handler}
Role: {role_arn}
Code:
# Replace the below properties after uploading code zip file to S3
S3Bucket: REPLACE-WITH-BUCKET-NAME
S3Key: REPLACE-WITH-KEY-NAME
preview_value:
type: template
value: |
{%if {preview_type} == preview_cli_command %}
{preview_cli_command_value}
{% endif %}
{%if {preview_type} == preview_cfn_template %}
{preview_cfn_template_value}
{% endif %}
preview_type:
type: prompt
description: Select an preview format
choices:
- display: None
actual_value: preview_none
- display: AWS CLI command
actual_value: preview_cli_command
- display: AWS CloudFormation template
actual_value: preview_cfn_template
details:
value: preview_value
visible: True
description: "Preview"
__DONE__:
execute:
default:
- type: apicall
operation: lambda.CreateFunction
output_var: function_arn
query: FunctionArn
params:
FunctionName: "{function_name}"
Role: "{role_arn}"
Runtime: "{runtime}"
Handler: "{handler}"
Code:
ZipFile:
__wizard__:File:
path: "{zip_filename}"
__OUTPUT__:
value: |
Wizard successfully created Lambda Function:
Function name: {function_name}
Function ARN: {function_arn}
{% if {preview_type} == preview_cli_command %}
Steps to create function is equivalent to running the following sample AWS CLI commands:
{preview_cli_command_value}
{% endif %}
{% if {preview_type} == preview_cfn_template %}
Steps to create function is equivalent to deploying the following sample AWS CloudFormation template:
{preview_cfn_template_value}
{% endif %}