diff --git a/example-projects/counter-demo/aws-lambda/invoke-function.py b/example-projects/counter-demo/aws-lambda/invoke-function.py new file mode 100644 index 0000000..67ba095 --- /dev/null +++ b/example-projects/counter-demo/aws-lambda/invoke-function.py @@ -0,0 +1,41 @@ +import boto3 +import json + +################################################################################################ +# +# Configuration Parameters +# +################################################################################################ + +region = 'eu-central-1' +functionName = 'cloudcomp-counter-lambda-demo' + + +################################################################################################ +# +# boto3 code +# +################################################################################################ + + +client = boto3.setup_default_session(region_name=region) +lClient = boto3.client('lambda') + + +print("Invoking function...") +print("------------------------------------") +try: + response = lClient.invoke( + FunctionName=functionName, + Payload='{ "input": "1" }' + ) +except lClient.exceptions.ResourceNotFoundException: + print('Function not available. No need to delete it.') + +streamingBody = response['Payload'] +result = streamingBody.read() + +print(json.dumps(response, indent=4, sort_keys=True, default=str)) + +print('Payload:\n' + str(result)) + diff --git a/example-projects/counter-demo/aws-lambda/lambda_function.py b/example-projects/counter-demo/aws-lambda/lambda_function.py new file mode 100644 index 0000000..254fbbd --- /dev/null +++ b/example-projects/counter-demo/aws-lambda/lambda_function.py @@ -0,0 +1,42 @@ +# import json +import base64 +import boto3 + + +def lambda_handler(event, context): + s3_client = boto3.client('s3') + response = s3_client.get_object(Bucket='vertsys-counter', Key='eu-central-1') + + counter = int(response['Body'].read().decode('utf-8')) + + debug = "" + incr = 0 + if 'body' in event: + body = str(base64.b64decode(event['body']).decode("utf-8")) + if body.startswith('input'): + incr = int(body.rsplit('=')[1]) + elif 'input' in event: + incr = int(event['input']) + + if incr is not 0: + counter = counter + incr + response = s3_client.put_object(Bucket='vertsys-counter', Key='eu-central-1', Body=str(counter)) + + output = ('
HTML-Output: ' + str(counter) + '
\n' + '\n' + # '