Editar

Compartir a través de


Bibliotecas de Event Grid para PythonEvent Grid libraries for Python

Azure Event Grid es un servicio de enrutamiento de eventos inteligente completamente administrado que permite el consumo de eventos uniforme mediante un modelo de publicación-suscripción.Azure Event Grid is a fully-managed intelligent event routing service that allows for uniform event consumption using a publish-subscribe model.

Para más información acerca de Azure Event Grid y empezar a trabajar con el tutorial de eventos de Azure Blob Storage.Learn more about Azure Event Grid and get started with the Azure Blob storage event tutorial.

SDK de publicaciónPublish SDK

Puede autenticar, crear, controlar y publicar eventos en temas con el SDK de publicación de Azure Event Grid.Authenticate, create, handle, and publish events to topics using the Azure Event Grid publish SDK.

InstalaciónInstallation

Instale el paquete con pip:Install the package with pip:

pip install azure-eventgrid

EjemploExample

El código siguiente publica un evento en un tema.The following code publishes an event to a topic. Puede recuperar la clave del tema y el punto de conexión desde Azure Portal o a través de la CLI de Azure: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
            }]
        )

SDK de administraciónManagement SDK

El SDK de administración permite crear, actualizar y eliminar instancias, temas y suscripciones de Event Grid.Create, update, or delete Event Grid instances, topics, and subscriptions with the management SDK.

InstalaciónInstallation

Instale el paquete con pip:Install the package with pip:

pip install azure-mgmt-eventgrid

EjemploExample

A continuación se crea un tema personalizado y se suscribe un punto de conexión al tema.The following creates a custom topic and subscribes an endpoint to the topic. El código, a continuación, envía un evento al tema a través de HTTPS.The code then sends an event to the topic through HTTPS. RequestBin es una herramienta de código abierto de terceros que le permite crear un punto de conexión y ver las solicitudes que se envían a él.RequestBin is an open source, third-party tool that enables you to create an endpoint, and view requests that are sent to it. Vaya a RequestBin y haga clic en Create a RequestBin (Crear RequestBin).Go to RequestBin, and click Create a RequestBin. Copie la dirección URL de la ubicación, la necesitará para suscribirse al tema.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)

Vaya a la dirección URL de RequestBin creada anteriormente para ver los eventos que acabamos de enviar.Browse to the RequestBin URL created earlier to see the event just sent.

Limpieza de recursosClean up resources

az group delete --name gridResourceGroup

Más informaciónLearn more

Recepción de eventos mediante el SDK de Event GridReceive events using the Event Grid SDK