Transform native python function into AWS CDK Custom Resources.
from aws_cdk_lambdecor import aws_lambda
from aws_cdk import core as cdk
app = cdk.App()
stack = cdk.Stack(app, 'HelloLambdecor')
@aws_lambda(stack)
def greet():
return 'hello'
# invoke the function just like a regular function
greeting = greet()
# return value is a token that can be used later on
cdk.CfnOutput(stack, 'Greeting', value=greeting)
app.synth()
You can also use tokens:
from aws_cdk_lambdecor import aws_lambda
from aws_cdk import core as cdk
from aws_cdk import s3
from aws_cdk import aws_apigateway as apigateway
app = cdk.App()
stack = cdk.Stack(app, 'HelloLambdecor')
@aws_lambda(stack)
def ping(url):
http = urllib3.PoolManager()
r = http.request('GET', url)
return r.status
api = apigateway.LambdaRestApi(...)
status = ping(api.url)
cdk.CfnOutput(stack, 'Status', value=status)
app.synth()
The Custom Resource is created with the Python3.6 Lambda Runtime
The following modules are pre-imported into the lambda environment:
json
urllib3
To use any other module, you would need to do an inline import.
pip install aws-cdk-lambdecor
- Support customizing all properties of the CDK Lambda Function (i.e runtime, memory, environment...)
- Pre-import additional common libraries.
- Implicit CDK scope creation to support CDK applications consisting of just these lambda functions.
- Implicit creation of Stack output.
- Command line invocation of function that runs
cdk deploy
and parses the stack output. (i.eresult=$(aws-cdk-lamdecor invoke func.py)
)