[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FD28D2ZHB9CBW3ES9NXBMP":3,"skill-same:01M6FD28D2ZHB9CBW3ES9NXBMP":47},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M6FD28D2ZHB9CBW3ES9NXBMP","azure-eventgrid-py",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft\u002Fskills\u002Fazure-eventgrid-py\u002FSKILL.md",[],[18,19],"azure","azure eventgrid py","2026-11-10 10:12:30",false,"# Azure Event Grid SDK for Python\n\nEvent routing service for building event-driven applications with pub\u002Fsub semantics.\n\n## Installation\n\n```bash\npip install azure-eventgrid azure-identity\n```\n\n## Environment Variables\n\n```bash\nEVENTGRID_TOPIC_ENDPOINT=https:\u002F\u002F\u003Ctopic-name>.\u003Cregion>.eventgrid.azure.net\u002Fapi\u002Fevents\nEVENTGRID_NAMESPACE_ENDPOINT=https:\u002F\u002F\u003Cnamespace>.\u003Cregion>.eventgrid.azure.net\n```\n\n## Authentication\n\n```python\nfrom azure.identity import DefaultAzureCredential\nfrom azure.eventgrid import EventGridPublisherClient\n\ncredential = DefaultAzureCredential()\nendpoint = \"https:\u002F\u002F\u003Ctopic-name>.\u003Cregion>.eventgrid.azure.net\u002Fapi\u002Fevents\"\n\nclient = EventGridPublisherClient(endpoint, credential)\n```\n\n## Event Types\n\n| Format | Class | Use Case |\n|--------|-------|----------|\n| Cloud Events 1.0 | `CloudEvent` | Standard, interoperable (recommended) |\n| Event Grid Schema | `EventGridEvent` | Azure-native format |\n\n## Publish CloudEvents\n\n```python\nfrom azure.eventgrid import EventGridPublisherClient, CloudEvent\nfrom azure.identity import DefaultAzureCredential\n\nclient = EventGridPublisherClient(endpoint, DefaultAzureCredential())\n\n# Single event\nevent = CloudEvent(\n    type=\"MyApp.Events.OrderCreated\",\n    source=\"\u002Fmyapp\u002Forders\",\n    data={\"order_id\": \"12345\", \"amount\": 99.99}\n)\nclient.send(event)\n\n# Multiple events\nevents = [\n    CloudEvent(\n        type=\"MyApp.Events.OrderCreated\",\n        source=\"\u002Fmyapp\u002Forders\",\n        data={\"order_id\": f\"order-{i}\"}\n    )\n    for i in range(10)\n]\nclient.send(events)\n```\n\n## Publish EventGridEvents\n\n```python\nfrom azure.eventgrid import EventGridEvent\nfrom datetime import datetime, timezone\n\nevent = EventGridEvent(\n    subject=\"\u002Fmyapp\u002Forders\u002F12345\",\n    event_type=\"MyApp.Events.OrderCreated\",\n    data={\"order_id\": \"12345\", \"amount\": 99.99},\n    data_version=\"1.0\"\n)\n\nclient.send(event)\n```\n\n## Event Properties\n\n### CloudEvent Properties\n\n```python\nevent = CloudEvent(\n    type=\"MyApp.Events.ItemCreated\",      # Required: event type\n    source=\"\u002Fmyapp\u002Fitems\",                 # Required: event source\n    data={\"key\": \"value\"},                 # Event payload\n    subject=\"items\u002F123\",                   # Optional: subject\u002Fpath\n    datacontenttype=\"application\u002Fjson\",   # Optional: content type\n    dataschema=\"https:\u002F\u002Fschema.example\",  # Optional: schema URL\n    time=datetime.now(timezone.utc),      # Optional: timestamp\n    extensions={\"custom\": \"value\"}         # Optional: custom attributes\n)\n```\n\n### EventGridEvent Properties\n\n```python\nevent = EventGridEvent(\n    subject=\"\u002Fmyapp\u002Fitems\u002F123\",            # Required: subject\n    event_type=\"MyApp.ItemCreated\",        # Required: event type\n    data={\"key\": \"value\"},                 # Required: event payload\n    data_version=\"1.0\",                    # Required: schema version\n    topic=\"\u002Fsubscriptions\u002F...\u002Ftopics\u002F...\", # Optional: auto-set\n    event_time=datetime.now(timezone.utc)  # Optional: timestamp\n)\n```\n\n## Async Client\n\n```python\nfrom azure.eventgrid.aio import EventGridPublisherClient\nfrom azure.identity.aio import DefaultAzureCredential\n\nasync def publish_events():\n    credential = DefaultAzureCredential()\n    \n    async with EventGridPublisherClient(endpoint, credential) as client:\n        event = CloudEvent(\n            type=\"MyApp.Events.Test\",\n            source=\"\u002Fmyapp\",\n            data={\"message\": \"hello\"}\n        )\n        await client.send(event)\n\nimport asyncio\nasyncio.run(publish_events())\n```\n\n## Namespace Topics (Event Grid Namespaces)\n\nFor Event Grid Namespaces (pull delivery):\n\n```python\nfrom azure.eventgrid.aio import EventGridPublisherClient\n\n# Namespace endpoint (different from custom topic)\nnamespace_endpoint = \"https:\u002F\u002F\u003Cnamespace>.\u003Cregion>.eventgrid.azure.net\"\ntopic_name = \"my-topic\"\n\nasync with EventGridPublisherClient(\n    endpoint=namespace_endpoint,\n    credential=DefaultAzureCredential()\n) as client:\n    await client.send(\n        event,\n        namespace_topic=topic_name\n    )\n```\n\n## Best Practices\n\n1. **Use CloudEvents** for new applications (industry standard)\n2. **Batch events** when publishing multiple events\n3. **Include meaningful subjects** for filtering\n4. **Use async client** for high-throughput scenarios\n5. **Handle retries** — Event Grid has built-in retry\n6. **Set appropriate event types** for routing and filtering\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fmicrosoft\u002Fskills\u002Fazure-eventgrid-py",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill azure-eventgrid-py",{"tool":39,"command":40},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill azure-eventgrid-py",{"tool":42,"command":43},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill azure-eventgrid-py","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft\u002Fskills\u002Fazure-eventgrid-py\u002FSKILL.md",true,[],[48,62,72,81,87,94],{"skillNo":49,"name":50,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":58,"publishedAt":20},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[53],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[59,60,61],"model","model hierarchy","model hierarchy skill",{"skillNo":63,"name":64,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":68,"publishedAt":20},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[67],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},[69,70,71],"MCP","zoom","zoom mcp",{"skillNo":73,"name":74,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":20},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[78,79,80,70],"sdk","zoom apps sdk","apps",{"skillNo":82,"name":83,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":20},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[83],{"skillNo":88,"name":89,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":93,"publishedAt":20},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[92],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},[89],{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":20},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[96]]