Bibliotecas da Grade de Eventos para PythonEvent Grid libraries for Python
A Grade de Eventos do Azure é um serviço de roteamento de eventos inteligente totalmente gerenciado que permite um consumo de eventos uniforme usando um modelo do tipo publicar-assinar.Azure Event Grid is a fully-managed intelligent event routing service that allows for uniform event consumption using a publish-subscribe model.
Saiba mais sobre a Grade de Eventos do Azure e começar a usar o tutorial de eventos do armazenamento de Blobs do Azure.Learn more about Azure Event Grid and get started with the Azure Blob storage event tutorial.
Publicar SDKPublish SDK
Autentique, crie, manipule e publique tópicos usando a Grade de Eventos do Azure para publicação de SDK.Authenticate, create, handle, and publish events to topics using the Azure Event Grid publish SDK.
InstalaçãoInstallation
Instale o pacote com pip:Install the package with pip:
pip install azure-eventgrid
ExemploExample
O código a seguir publica um evento para um tópico.The following code publishes an event to a topic. Você pode recuperar a chave do tópico e o ponto de extremidade por meio do Portal do Azure ou através da CLI do 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 GerenciamentoManagement SDK
Crie, atualize ou exclua instâncias da Grade de Eventos, tópicos e assinaturas com o SDK de gerenciamento.Create, update, or delete Event Grid instances, topics, and subscriptions with the management SDK.
InstalaçãoInstallation
Instale o pacote com pip:Install the package with pip:
pip install azure-mgmt-eventgrid
ExemploExample
O exemplo a seguir cria um tópico personalizado e assina um ponto de extremidade para o tópico.The following creates a custom topic and subscribes an endpoint to the topic. Em seguida, o código envia um evento para o tópico através de HTTPS.The code then sends an event to the topic through HTTPS. O RequestBin é uma ferramenta de terceiros de software livre que permite criar um ponto de extremidade e exibir as solicitações enviadas a ele.RequestBin is an open source, third-party tool that enables you to create an endpoint, and view requests that are sent to it. Vá para RequestBine clique em Criar um RequestBin.Go to RequestBin, and click Create a RequestBin. Copie a URL do compartimento, pois você precisará dela para assinar o tópico.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)
Navegue até a URL de RequestBin criada anteriormente para ver os eventos que acabamos de enviar.Browse to the RequestBin URL created earlier to see the event just sent.
Limpar recursosClean up resources
az group delete --name gridResourceGroup
Saiba maisLearn more
Receber eventos usando o SDK de Grade de EventosReceive events using the Event Grid SDK