Modifier

Partager via


Bibliothèques Event Grid pour PythonEvent Grid libraries for Python

Azure Event Grid est un service de routage d’événement intelligent et entièrement géré qui permet une consommation d’événements uniforme à l’aide d’un modèle publication-abonnement.Azure Event Grid is a fully-managed intelligent event routing service that allows for uniform event consumption using a publish-subscribe model.

En savoir plus sur Azure Event Grid et la prise en main avec le didacticiel des événements de stockage d’objets Blob Azure.Learn more about Azure Event Grid and get started with the Azure Blob storage event tutorial.

Kit de développement logiciel de publicationPublish SDK

Authentifiez, créez et gérez et publiez des événements dans des rubriques à l’aide du kit de développement logiciel de publication de Azure Event Grid.Authenticate, create, handle, and publish events to topics using the Azure Event Grid publish SDK.

InstallationInstallation

Installez le package avec pip :Install the package with pip:

pip install azure-eventgrid

ExemplesExample

Le code suivant publie un événement dans une rubrique.The following code publishes an event to a topic. Vous pouvez récupérer la clé de la rubrique et le point de terminaison à partir du portail Azure ou via Azure CLI :You can retrieve the topic key and endpoint through the Azure Portal or through the Azure CLI:

endpoint=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name <topic_name> -g gridResourceGroup --query "key1" --output tsv)
from datetime import datetime
from azure.eventgrid import EventGridClient
from msrest.authentication import TopicCredentials

def publish_event(self):

        credentials = TopicCredentials(
            self.settings.EVENT_GRID_KEY
        )
        event_grid_client = EventGridClient(credentials)
        event_grid_client.publish_events(
            "your-endpoint-here",
            events=[{
                'id' : "dbf93d79-3859-4cac-8055-51e3b6b54bea",
                'subject' : "Sample subject",
                'data': {
                    'key': 'Sample Data'
                },
                'event_type': 'SampleEventType',
                'event_time': datetime(2018, 5, 2),
                'data_version': 1
            }]
        )

Kit de développement logiciel (SDK) de gestionManagement SDK

Créez, mettez à jour et supprimez des instances, des rubriques et des abonnements Event Grid avec le kit de développement logiciel de gestion.Create, update, or delete Event Grid instances, topics, and subscriptions with the management SDK.

InstallationInstallation

Installez le package avec pip :Install the package with pip:

pip install azure-mgmt-eventgrid

ExemplesExample

La commande suivante crée une rubrique personnalisée et abonne un point de terminaison à la rubrique.The following creates a custom topic and subscribes an endpoint to the topic. Le code envoie ensuite un événement à la rubrique via le protocole HTTPS.The code then sends an event to the topic through HTTPS. RequestBin est un outil tiers en open-source qui vous permet de créer un point de terminaison et d’afficher les requêtes qui lui sont envoyées.RequestBin is an open source, third-party tool that enables you to create an endpoint, and view requests that are sent to it. Accédez à RequestBin, puis cliquez sur Créer un RequestBin.Go to RequestBin, and click Create a RequestBin. Copiez l’URL du fichier bin, dont vous avez besoin pour vous abonner à la rubrique.Copy the bin URL, because you need it when subscribing to the topic.

from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.eventgrid import EventGridManagementClient
import requests

RESOURCE_GROUP_NAME = 'gridResourceGroup'
TOPIC_NAME = 'gridTopic1234'
LOCATION = 'westus2'
SUBSCRIPTION_ID = 'YOUR_SUBSCRIPTION_ID'
SUBSCRIPTION_NAME = 'gridSubscription'
REQUEST_BIN_URL = 'YOUR_REQUEST_BIN_URL'

# create resource group
resource_client = ResourceManagementClient(credentials, SUBSCRIPTION_ID)
resource_client.resource_groups.create_or_update(
    RESOURCE_GROUP_NAME,
    {
        'location': LOCATION
    }
)

event_client = EventGridManagementClient(credentials, SUBSCRIPTION_ID)

# create a custom topic
event_client.topics.create_or_update(RESOURCE_GROUP_NAME, TOPIC_NAME, LOCATION)

# subscribe to a topic
scope = '/subscriptions/'+SUBSCRIPTION_ID+'/resourceGroups/'+RESOURCE_GROUP_NAME+'/providers/Microsoft.EventGrid/topics/'+TOPIC_NAME
event_client.event_subscriptions.create(scope, SUBSCRIPTION_NAME,
    {
        'destination': {
            'endpoint_url': REQUEST_BIN_URL
        }
    }
)

# send an event to topic
# get endpoint url
url = event_client.event_subscriptions.get_full_url(scope, SUBSCRIPTION_NAME).endpoint_url
# get key
key = event_client.topics.list_shared_access_keys(RESOURCE_GROUP_NAME,TOPIC_NAME).key1
headers = {'aeg-sas-key': key}
s = requests.get('https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/event-grid/customevent.json')
r = requests.post(url, data=s, headers=headers)
print(r.status_code)
print(r.content)

Accédez à l’URL RequestBin créée précédemment pour voir l’événement envoyé.Browse to the RequestBin URL created earlier to see the event just sent.

Supprimer des ressourcesClean up resources

az group delete --name gridResourceGroup

En savoir plusLearn more

Recevoir des événements avec le kit de développement logiciel Event GridReceive events using the Event Grid SDK