def test_from_json_storage(): cloud_storage_dict = """{ "id":"a0517898-9fa4-4e70-b4a3-afda1dd68672", "source":"/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-account}", "data":{ "api":"PutBlockList", "client_request_id":"6d79dbfb-0e37-4fc4-981f-442c9ca65760", "request_id":"831e1650-001e-001b-66ab-eeb76e000000", "e_tag":"0x8D4BCC2E4835CD0", "content_type":"application/octet-stream", "content_length":524288, "blob_type":"BlockBlob", "url":"https://oc2d2817345i60006.blob.core.windows.net/oc2d2817345i200097container/oc2d2817345i20002296blob", "sequencer":"00000000000004420000000000028963", "storage_diagnostics":{"batchId":"b68529f3-68cd-4744-baa4-3c0498ec19f0"} }, "type":"Microsoft.Storage.BlobCreated", "time":"2021-02-18T20:18:10.581147898Z", "specversion":"1.0" }""" obj = MockQueueMessage(content=cloud_storage_dict) event = CloudEvent.from_json(obj) assert event.data == { "api":"PutBlockList", "client_request_id":"6d79dbfb-0e37-4fc4-981f-442c9ca65760", "request_id":"831e1650-001e-001b-66ab-eeb76e000000", "e_tag":"0x8D4BCC2E4835CD0", "content_type":"application/octet-stream", "content_length":524288, "blob_type":"BlockBlob", "url":"https://oc2d2817345i60006.blob.core.windows.net/oc2d2817345i200097container/oc2d2817345i20002296blob", "sequencer":"00000000000004420000000000028963", "storage_diagnostics":{"batchId":"b68529f3-68cd-4744-baa4-3c0498ec19f0"} }
def test_from_json_eh(): obj = MockEventhubData( body=MockEhBody() ) event = CloudEvent.from_json(obj) assert event.id == "f208feff-099b-4bda-a341-4afd0fa02fef" assert event.data == "Eventhub"
def test_from_json(): json_str = '{"id": "de0fd76c-4ef4-4dfb-ab3a-8f24a307e033", "source": "https://egtest.dev/cloudcustomevent", "data": {"team": "event grid squad"}, "type": "Azure.Sdk.Sample", "time": "2020-08-07T02:06:08.11969Z", "specversion": "1.0"}' event = CloudEvent.from_json(json_str) assert event.data == {"team": "event grid squad"} assert event.time.year == 2020 assert event.time.month == 8 assert event.time.day == 7 assert event.time.hour == 2
def test_from_json_sb(): obj = MockServiceBusReceivedMessage( body=MockBody(), message_id='3f6c5441-5be5-4f33-80c3-3ffeb6a090ce', content_type='application/cloudevents+json; charset=utf-8', time_to_live=datetime.timedelta(days=14), delivery_count=13, enqueued_sequence_number=0, enqueued_time_utc=datetime.datetime(2021, 7, 22, 22, 27, 41, 236000), expires_at_utc=datetime.datetime(2021, 8, 5, 22, 27, 41, 236000), sequence_number=11219, lock_token='233146e3-d5a6-45eb-826f-691d82fb8b13' ) event = CloudEvent.from_json(obj) assert event.id == "f208feff-099b-4bda-a341-4afd0fa02fef" assert event.data == "ServiceBus"
FILE: consume_cloud_events_from_storage_queue.py DESCRIPTION: These samples demonstrate receiving events from a Storage Queue. USAGE: python consume_cloud_events_from_storage_queue.py Set the environment variables with your own values before running the sample: 1) STORAGE_QUEUE_CONN_STR: The connection string to the Storage account 3) STORAGE_QUEUE_NAME: The name of the storage queue. """ from azure.core.messaging import CloudEvent from azure.storage.queue import QueueServiceClient, BinaryBase64DecodePolicy import os import json # all types of CloudEvents below produce same DeserializedEvent connection_str = os.environ['AZURE_STORAGE_CONNECTION_STRING'] queue_name = os.environ['STORAGE_QUEUE_NAME'] with QueueServiceClient.from_connection_string(connection_str) as qsc: payload = qsc.get_queue_client( queue=queue_name, message_decode_policy=BinaryBase64DecodePolicy()).peek_messages( max_messages=32) ## deserialize payload into a list of typed Events events = [CloudEvent.from_json(msg) for msg in payload] for event in events: print(type(event)) ## CloudEvent
def on_event(partition_context, event): dict_event = CloudEvent.from_json(event) print("data: {}\n".format(dict_event.data))