Exemplo n.º 1
0
    def _test_sqs_to_lamdba_to_sqs(self):
        queue_1 = Queue('unit_tests_temp_queue__1').create()
        queue_2 = Queue('unit_tests_temp_queue__2').create()
        lambda_obj = Lambda_Package('osbot_aws.lambdas.pocs.send_event_data_to_queue')   #.update_with_root_folder()
        payload = {'queue_url': queue_2.url(), 'message': 'test 123'}

        #queue_1.attributes_update({'VisibilityTimeout': '61'}) # needs to be bigger than lambda timeout

        queue_1_arn  = queue_1.attributes().get('QueueArn')
        function_arn = lambda_obj._lambda.function_Arn()
        #Dev.pprint(lambda_obj.role_arn)            # needed to add the extra priv to pull SQS messages

        #result = lambda_obj._lambda.boto_lambda().list_event_source_mappings(EventSourceArn=queue_1_arn)
        # result = lambda_obj._lambda.boto_lambda().create_event_source_mapping(
        #     EventSourceArn=queue_1_arn,
        #     FunctionName=function_arn,
        #     Enabled=True,
        #     BatchSize=1
        # )

        queue_1.push('some message 1')
        queue_1.push('some message 2')
        queue_1.push('some message 3')
        queue_1.push('some message 4')
        #lambda_obj.invoke(payload)
        sleep(2)

        Dev.pprint(queue_2.pull())
        Dev.pprint(queue_2.pull())
        Dev.pprint(queue_2.pull())
        Dev.pprint(queue_2.pull())

        queue_1.delete()
        queue_2.delete()
Exemplo n.º 2
0
    def test_lambda_write_to_queue(self):
        queue_name  = 'unit_tests_temp_queue'                       # Queue(queue_name).create()
        lambda_name = 'osbot_aws.lambdas.dev.write_queue'
        message     = 'this is a message sent from an lambda function...'
        queue       = Queue(queue_name)
        queue_url   = queue.url()
        payload     = {'queue_url': queue_url, 'message': message}

        lambda_obj  = Lambda_Package(lambda_name)

        assert lambda_obj.invoke(payload) == {'status': 'ok'}
        assert Queue(queue_name).pull()   == message