def test_send_signature_credential(self, variables, eventgrid_topic_key, eventgrid_topic_endpoint): expiration_date_utc = dt.datetime.now(UTC()) + timedelta(hours=1) signature = generate_sas(eventgrid_topic_endpoint, eventgrid_topic_key, expiration_date_utc) credential = AzureSasCredential(signature) client = EventGridPublisherClient(eventgrid_topic_endpoint, credential) eg_event = EventGridEvent(subject="sample", data={"sample": "eventgridevent"}, event_type="Sample.EventGrid.Event", data_version="2.0") client.send(eg_event)
def test_generate_sas_adds_https_appends_api_events(): expiration_date_utc = dt.datetime.now(UTC()) + timedelta(hours=1) http_endpoint = "https://topic.eventgrid.endpoint" signature = generate_sas(http_endpoint, "eventgrid_topic_primary_key", expiration_date_utc) assert "%2Fapi%2Fevents" in signature
def test_generate_sas_adds_https_if_not_exists(): expiration_date_utc = dt.datetime.now(UTC()) + timedelta(hours=1) http_endpoint = "topic.eventgrid.endpoint" signature = generate_sas(http_endpoint, "eventgrid_topic_primary_key", expiration_date_utc) assert signature.startswith("r=https")
def test_generate_sas_fails_with_http(): expiration_date_utc = dt.datetime.now(UTC()) + timedelta(hours=1) http_endpoint = "http://topic.eventgrid.endpoint" with pytest.raises(ValueError): signature = generate_sas(http_endpoint, "eventgrid_topic_primary_key", expiration_date_utc)
# Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- """ FILE: sample_generate_sas.py DESCRIPTION: These samples demonstrate creating a shared access signature for eventgrid. USAGE: python sample_generate_sas.py Set the environment variables with your own values before running the sample: 1) EG_ACCESS_KEY - The access key of your eventgrid account. 2) EG_TOPIC_HOSTNAME - The topic hostname. Typically it exists in the format "<YOUR-TOPIC-NAME>.<REGION-NAME>.eventgrid.azure.net". """ # [START generate_sas] import os from azure.eventgrid import generate_sas from datetime import datetime, timedelta topic_key = os.environ["EG_ACCESS_KEY"] endpoint = os.environ["EG_TOPIC_HOSTNAME"] #represents the expiration date for sas expiration_date_utc = datetime.utcnow() + timedelta(hours=10) signature = generate_sas(endpoint, topic_key, expiration_date_utc) # [END generate_sas] print(signature)