Sdílet prostřednictvím


Publikování událostí do vlastních témat Azure Event Gridu pomocí přístupových klíčů

Tento článek popisuje, jak publikovat událost do vlastního tématu pomocí přístupového klíče. Zobrazuje formát dat příspěvku a události. Smlouva o úrovni služeb (SLA) se vztahuje pouze na příspěvky, které odpovídají očekávanému formátu.

Poznámka:

Ověřování Microsoft Entra poskytuje vynikající podporu ověřování, než kterou nabízí přístupový klíč nebo ověřování tokenu sdíleného přístupového podpisu (SAS). Při ověřování Microsoft Entra se identita ověřuje u zprostředkovatele identity Microsoft Entra. Jako vývojář nebudete muset zpracovávat klíče v kódu, pokud používáte ověřování Microsoft Entra. Získáte také výhody ze všech funkcí zabezpečení integrovaných do platformy Microsoft Identity Platform, jako je podmíněný přístup, které vám můžou pomoct zlepšit postoj k zabezpečení vaší aplikace. Další informace naleznete v tématu Ověřování klientů publikování pomocí Microsoft Entra ID.

Koncový bod

Při odesílání HTTP POST do vlastního tématu použijte formát identifikátoru URI: https://<topic-endpoint>?api-version=2018-01-01. Platný identifikátor URI je například: https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01. Pokud chcete získat koncový bod vlastního tématu pomocí Azure CLI, použijte:

Koncový bod tématu najdete na kartě Přehled na stránce Téma Event Gridu na webu Azure Portal.

Snímek obrazovky znázorňující stránku tématu Event Gridu na webu Azure Portal se zvýrazněným koncovým bodem tématu

Do požadavku zahrňte hodnotu aeg-sas-key hlavičky, která obsahuje klíč pro ověřování. Například platná hodnota záhlaví je aeg-sas-key: xxxxxxxxxxxxxxxxxxxxxxx. Pokud chcete získat klíč vlastního tématu pomocí Azure CLI, použijte:

Pokud chcete získat přístupový klíč pro vlastní téma, vyberte kartu Přístupové klíče na stránce Téma Event Gridu na webu Azure Portal.

Snímek obrazovky znázorňující kartu Přístupové klíče na stránce tématu Event Gridu na webu Azure Portal

Data událostí

U vlastních témat obsahují data nejvyšší úrovně stejná pole jako standardní události definované prostředky. Jednou z těchto vlastností je data vlastnost, která obsahuje vlastnosti jedinečné pro vlastní téma. Jako vydavatel události určíte vlastnosti daného datového objektu. Toto je schéma:

[
  {
    "id": string,    
    "eventType": string,
    "subject": string,
    "eventTime": string-in-date-time-format,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string
  }
]

Popis těchto vlastností najdete ve schématu událostí služby Azure Event Grid. Když klient odesílá události do tématu Event Gridu, může mít pole celkovou velikost až 1 MB. Maximální povolená velikost události je také 1 MB. Události nad 64 kB se účtují v přírůstcích po 64 kB. Když klient obdrží události v dávce, maximální povolený počet událostí je 5 000 na dávku.

Například platné schéma dat událostí je:

[{
  "id": "1807",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2017-08-10T21:03:07+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0"
}]

Odeslání ukázkové události

Tato část ukazuje, jak odeslat ukázkovou událost do vlastního tématu.

  1. Na webu Azure Portal spusťte Cloud Shell.

  2. V Cloud Shellu spusťte příkazy z Azure PowerShellu nebo Azure CLI v relaci Bash nebo PowerShellu .

    Snímek obrazovky znázorňující Cloud Shell na webu Azure Portal

Response

Po publikování do koncového bodu tématu obdržíte odpověď. Odpověď je standardní kód odpovědi HTTP. Mezi běžné odpovědi patří:

Výsledek Response
Success 200 OK
Data událostí mají nesprávný formát 400 – Chybný požadavek
Neplatný přístupový klíč 401 – Neautorizováno
Nesprávný koncový bod 404 – Nenalezeno
Pole nebo událost překračuje limity velikosti. 413 Příliš velká datová část

V případě chyb má text zprávy následující formát:

{
    "error": {
        "code": "<HTTP status code>",
        "message": "<description>",
        "details": [{
            "code": "<HTTP status code>",
            "message": "<description>"
    }]
  }
}