def __init__(self, scope: Stack): super().__init__( scope=scope, id=f'{TestingStack.global_prefix()}TestingFunction3', code=Code.from_inline( 'import urllib3\n' 'from jose import jwk, jwt\n' 'from jose.utils import base64url_decode\n' 'from b_lambda_layer_common import api_gateway\n' 'from b_lambda_layer_common import exceptions\n' 'from b_lambda_layer_common import util\n' 'from b_lambda_layer_common.ssm.ssm_parameter import SSMParameter\n' 'import boto3\n' 'import botocore\n' '\n\n' 'def handler(*args, **kwargs):\n' ' SSMParameter("TestSSMParam")\n\n' ' return dict(\n' ' Boto3Version=boto3.__version__,\n' ' BotocoreVersion=botocore.__version__,\n' ' )' '\n'), handler='index.handler', # Ensure Python 3.8 matches everywhere. runtime=Runtime.PYTHON_3_8, layers=[ Layer(scope=scope, name=f'{TestingStack.global_prefix()}TestingLayer3', dependencies={ 'python-jose': PackageVersion.from_string_version('3.3.0') }) ])
def __init__(self, scope: Stack): super().__init__( scope=scope, id=f'{TestingStack.global_prefix()}TestingFunction1', code=Code.from_inline( 'from b_lambda_layer_common import api_gateway\n' 'from b_lambda_layer_common import exceptions\n' 'from b_lambda_layer_common import ssm\n' 'from b_lambda_layer_common import util\n' 'import boto3\n' 'import botocore\n' '\n\n' 'def handler(*args, **kwargs):\n' ' return dict(\n' ' Boto3Version=boto3.__version__,\n' ' BotocoreVersion=botocore.__version__,\n' ' )' '\n'), handler='index.handler', # Ensure Python 3.8 matches everywhere. runtime=Runtime.PYTHON_3_8, layers=[ Layer(scope=scope, name=f'{TestingStack.global_prefix()}TestingLayer1', dependencies={ 'boto3': PackageVersion.from_string_version('1.16.35'), 'botocore': PackageVersion.from_string_version('1.19.35'), }) ])
def __init__(self, scope: Construct): super().__init__(scope=scope) function = Function( scope=self, id=f'{self.global_prefix()}TestingFunction', code=Code.from_inline( 'from b_lambda_layer_common import api_gateway\n' 'from b_lambda_layer_common import exceptions\n' 'from b_lambda_layer_common import ssm\n' 'from b_lambda_layer_common import util\n' 'import boto3\n' 'import botocore\n' '\n\n' 'def handler(*args, **kwargs):\n' ' return dict(\n' ' Boto3Version=boto3.__version__,\n' ' BotocoreVersion=botocore.__version__,\n' ' )' '\n'), handler='index.handler', runtime=Runtime.PYTHON_3_6, layers=[ Layer(scope=self, name=f'{self.global_prefix()}TestingLayer', dependencies={ 'boto3': PackageVersion.from_string_version('1.16.35'), 'botocore': PackageVersion.from_string_version('1.19.35'), }) ]) self.add_output(self.LAMBDA_FUNCTION_NAME_KEY, value=function.function_name) # Create another function that is not using boto3. Function( scope=self, id=f'{self.global_prefix()}TestingFunction2', code=Code.from_inline('def handler(*args, **kwargs): return 200'), handler='index.handler', runtime=Runtime.PYTHON_3_6, layers=[ Layer(scope=self, name=f'{self.global_prefix()}TestingLayer2') ])
def __init__(self, scope: Stack): super().__init__( scope=scope, id=f'{TestingStack.global_prefix()}TestingFunction2', code=Code.from_inline('def handler(*args, **kwargs): return 200'), handler='index.handler', runtime=Runtime.PYTHON_3_6, layers=[Layer(scope=scope, name=f'{TestingStack.global_prefix()}TestingLayer2')] )
def __init__(self, scope: Stack): super().__init__(scope=scope, id=f'TestingStack', stack_name=f'TestingStack') Function(scope=self, id='TestingFunction', code=Code.from_inline('def handler(): return "Hello World!"'), handler='index.handler', runtime=Runtime.PYTHON_3_6, layers=[TwilioLayer(self, 'TestingTwilioLayer')])
def __init__(self, scope: Stack): super().__init__( scope=scope, id=f'{TestingStack.global_prefix()}TestingFunction4', code=Code.from_inline( 'from b_lambda_layer_common.util.skip_invocation import skip_invocation\n' '\n\n' '@skip_invocation(determinator="heartbeat")\n' 'def handler(event, context):\n' ' return event' ), handler='index.handler', runtime=Runtime.PYTHON_3_6, layers=[Layer(scope=scope, name=f'{TestingStack.global_prefix()}TestingLayer4')] )
def mock_lambda_init( self, scope: constructs.Construct, id: builtins.str, *, code: Code, handler: builtins.str, runtime: Runtime, **kwargs ) -> None: # overriding the code will prevent building with docker (a long running operation) # override the runtime for now, as well, to support inline code props = FunctionProps( code=Code.from_inline("return"), handler=handler, runtime=Runtime.PYTHON_3_7, **kwargs ) jsii.create(Function, self, [scope, id, props])
def __init__(self, scope: core.Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) bucket = Bucket( scope=self, id='WorkshopBucketWithCDK', bucket_name='cloudvisor-workshop-bucket-with-cdk' ) function = Function( scope=self, id='WorkshopFunctionWithCDK', function_name='WorkshopFunctionWithCDK', runtime=Runtime.PYTHON_3_6, handler='index.handler', code=Code.from_inline('def handler(*args, **kwargs): print(args); return 200') ) bucket.add_object_created_notification(LambdaDestination(function))
def test_FUNC_hash_WITH_valid_parameters_EXPECT_hash_created(): """ Test that hashing is consistent and works as expected. :return: No return. """ stack = Stack(App(), 'TestStack') integration = LambdaIntegration( scope=stack, integration_name='TestIntegration', api=CfnApi(stack, 'TestApi'), lambda_function=Function( stack, 'TestLambdaFunction', code=Code.from_inline('def handler(*args, **kwargs): return 123'), handler='index.handler', runtime=Runtime.PYTHON_3_6)) assert integration.hash == 'ab93cecc508e529c3791ba48a1275deec88cdd6b43a7e1d443906df48fa300e4'
def __init__(self, scope: Stack, prefix: str) -> None: stack_name = f'{prefix}ExampleStack' super().__init__(scope, id=stack_name, stack_name=stack_name) lambda_name = f'{prefix}ExampleLambdaFunction' self.function = Function( scope=self, id=lambda_name, function_name=lambda_name, handler='index.handler', runtime=Runtime.PYTHON_3_6, code=Code.from_inline('def handler(*args, **kwargs): ' ' return {' ' "isBase64Encoded": False,' ' "statusCode": 200,' ' "headers": { },' ' "body": "Hello from lambda function!"' '}')) api_name = f'{prefix}ExampleRestApi' self.api = LambdaRestApi(self, api_name, handler=self.function)
def __init__(self, scope: Construct): super().__init__(scope=scope) prefix = TestingManager.get_global_prefix() api = CfnApi( scope=self, id=f'{prefix}Api', description='Sample API.', name=f'{prefix}Api', protocol_type='HTTP' ) stage = CfnStage( scope=self, id=f'{prefix}Stage', api_id=api.ref, stage_name='prod', auto_deploy=False, description='Test description.' ) function = Function( scope=self, id=f'{prefix}TestFunction', function_name=f'{prefix}TestFunction', code=Code.from_inline( 'def handler(*args, **kwargs):\n' ' return {\n' ' "isBase64Encoded": False,\n' ' "statusCode": 200,\n' ' "headers": {},\n' ' "body": "{\\"message\\": \\"success\\"}"\n' ' }\n' ), handler='index.handler', runtime=Runtime.PYTHON_3_6, ) integration = CfnIntegration( scope=self, id=f'{TestingManager.get_global_prefix()}LambdaIntegration', api_id=api.ref, integration_type='AWS_PROXY', integration_uri=( f'arn:aws:apigateway:{self.region}:lambda:path/2015-03-31' f'/functions/{function.function_arn}/invocations' ), description='Sample lambda proxy integration.', payload_format_version='1.0' ) CfnRoute( scope=self, id=f'{prefix}SampleRoute', api_id=api.ref, route_key='GET /test', target=f'integrations/{integration.ref}' ) backend = StageDeploymentSingletonFunction(self, 'DeploymentBackend') # Make some deployments. StageDeploymentResource(self, 'C1', backend, api.ref, stage.stage_name, 'Sample1.') StageDeploymentResource(self, 'C2', backend, api.ref, stage.stage_name, 'Sample2.') StageDeploymentResource(self, 'C3', backend, api.ref, stage.stage_name, 'Sample3.') StageDeploymentResource(self, 'C4', backend, api.ref, stage.stage_name, 'Sample4.') StageDeploymentResource(self, 'C5', backend, api.ref, stage.stage_name, 'Sample5.') self.add_output('ApiId', api.ref) self.add_output('StageName', stage.stage_name)