Ez a cikk a különböző Gridwich-műveletek kérelem-válasz sorozatát alkotó event Grid-eseményeket ismerteti.
Gridwich-események
A Gridwich-visszaigazolás és a Gridwich-hiba eltér a többi Gridwich-eseménytől. Ezek konkrétan a következők:
- A Gridwich Nyugtázás (ACK) azt jelzi, hogy a Gridwich megkapta, de nem feltétlenül feldolgozta a kérést egy Request-ACK-Response sorozatban.
- Minden művelet rendelkezik egy vagy több egyedi sikeres válaszeseménysel, de szinte minden művelet ugyanazt a Gridwich-hibaeseményt használja a hiba közléséhez.
Események kódolása
Új kódolási feladat kezdeményezése
Az egyes kódolók azonnali válaszeseménye az ACK-től eltekintve hiba vagy kódolással küldött esemény, amely a feladat sikeres sorba állítását jelzi. A kódolási folyamat értesítési eseményei kezelik a további előrehaladást.
A kódolási folyamat értesítései
Minden kódoló ugyanazt az állapotértesítési eseménykészletet használja.
Blob- és tárolótároló-események
Containers
Blobok
- Blob-metaadatok beállítása
- Blob másolása
- Blob törlése
- Blobelérési szint módosítása
- Blob SAS URL-címének lekérése
- Blob elemzése, például MediaInfo használatával
Blobértesítések
Tárkulcsok
Műveleti környezet
A Gridwich egy JSON-objektumot operationContext
fogad el a kérésüzenetek részeként. A Gridwich általában egy megfelelő objektumot visszhangoz a válaszüzenetekben, és nem foglalkozik a környezeti objektum adott belső szerkezetével vagy tartalmával.
A kivétel az, hogy a válaszkörnyezet objektuma további JSON-tulajdonságokkal rendelkezhet a kérés megfelelőjéhez képest. Ezek az extra tulajdonságok a Gridwich belső tulajdonságai, és a nevük mindig a tilde ~ karakterrel kezdődik. A kérés tulajdonságai mindig megtalálhatók a válaszkörnyezet objektumában.
A normál JSON-hoz hasonlóan a válaszobjektum tulajdonságai más sorrendben is megjelenhetnek, mint a kérelemobjektumban.
A műveleti környezettel kapcsolatos további információkért tekintse meg a Gridwich-architektúra cikk műveleti környezetét .
Event Grid-üzenetek
A kérés-válasz üzenetfolyamról további információt az architektúra kérési folyamatában talál.
Az alábbi eseményleírásokban a JSON tulajdonságértékek a szokásos sztring-, szám- vagy logikai típusúak. A leírások a következő sztring-tartalomtípusokat használják. Ha a leírás "átlátszatlan" szöveget tartalmaz, az érték tartalma és formátuma tetszőleges.
GUID-string
, mint"b621f33d-d01e-0002-7ae5-4008f006664e"
egy 16 bájtos azonosító értéke, amely 36 karakterre van írva (32 hexa számjegy, plusz 4 kötőjel). Figyelje meg a kapcsos zárójelek hiányát. Az érték nem érzékeny a kis- és nagybetűkre. Ez a formátum a System.GUID.ToString("D") eredményének felel meg.Topic-string
"/subscriptions/5edeadbe-ef64-4022-a3aa-133bfef1d7a2/resourceGroups/gws-shared-rg-sb/providers/Microsoft.EventGrid/topics/gws-gws-egt-sb"
például egy átlátszatlan tartalom sztringje.Subject-string
"/blobServices/default/containers/telestreamoutput/blobs/db08122195b66be71db9e54ae04c58df/503220533TAGHD23976fps16x990266772067587.mxf"
például egy átlátszatlan tartalom sztringje.EventType-string
, mint"request.operation.requested"
általában egy sztring az űrlap:{"request"|"response"}.operation[.qualifier]
.DataVersion-string
például"1.0"
egy verziószámozási jelző, amelyet az üzenetfeldolgozók használnak ugyanannak a műveletnek a különböző evolúcióinak megkülönböztetésére. A Gridwichnek szüksége van erre a mezőre. AHandlesEvent
metódus határozza meg, hogy az egyes Event Grid-kezelők mely verziókat tudják feldolgozni.URL-string
egy abszolút URL-cím, amely gyakran az Alkalmazás Elemzések naplókra mutat. Ezek a sztringek általában SAS URL-címek, a célengedélyezési követelmények miatt.StorageURL-string
Egy abszolút URL- cím, amely gyakran egy Azure Storage-blobra vagy -tárolóra mutat. Ez a sztring általában nem SAS URL-cím.StorageURL-SAS-string
egy abszolút SAS URL-cím, amely gyakran egy Azure Storage-blobra vagy -tárolóra mutat.OperationContextObject
például{ "prodID": 10, "dc": "abc" }
egy tetszőleges JSON-objektum, amelyet a rendszer elfogad a bejövő kérelmeken, és a Gridwich-válaszesemények részeként visszaköszön.Metadata-Dictionary
egy sztring–sztring típusú JSON-objektumszótár, amely az Azure Storage Blob metaadatait képviselő név-érték párokkal rendelkezik.Encoder-Context
egy adott kódolóra jellemző tulajdonságok átlátszatlan JSON-objektuma.
Gridwich általános ACK-válasz
A Gridwich>Requester a ResponseAcknowledgeDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"eventType": "request.blob.metadata.create"
},
"eventType": "response.acknowledge"
}
A data.eventType
sztringérték a Kérés esemény legfelső szintű eventType
tulajdonsága. Blobelemzési kérelem esetén például a sztring data.eventType
értéke.request.blob.analysis.create
Gridwich általános hibaválasz
A Gridwich>Requester a ResponseFailureDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"logEventId": 30001,
"logEventMessage": "the message text for eventId 30001",
"logRecordId": "GUID-string",
"logRecordUrl": "URL-string", // AppInsight URL to the logRecordId
"eventHandlerClassName": "string",
"handlerId": "GUID-string"
},
"eventType": "response.failure"
}
A hibaesemény nem tartalmazza az eredeti kérés eventType
értékét, de tartalmazza a műveletkörnyezetet és a kérést feldolgozó kezelő nevét. A log*
tulajdonságok a konfigurált alkalmazás által Elemzések rögzített problémainformációkhoz kapcsolódnak.
Korlátozott műveletek esetén a hibaesemény-objektum jelentősen eltér az előző üzenettől. További információ: Tárolókulcsok rollálása.
A kérelmező megkéri a Gridwichet, hogy helyezzen el néhány metaadatot egy blobra
A Requester>Gridwich a RequestBlobMetadataCreateDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"blobUri": "StorageURL-string",
"blobMetadata": <Metadata-Dictionary>
},
"eventType": "request.blob.metadata.create"
}
Ez blobMetadata
a sztringértékű tulajdonságok objektuma, amely a kívánt blob metaadatainak összes név-érték párját képviseli.
A Gridwich-kérelmező a ResponseBlobMetadataSuccessDTO-t használja.>
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"blobUri": "StorageURL-string",
"blobMetadata": <Metadata-Dictionary>
},
"eventType": "response.blob.metadata.success"
}
Ha később le szeretné kérni egy blob aktuális metaadatait, tekintse meg az Elemzési blob kérést.
A kérelmező megkéri a Gridwichet, hogy végezzen elemzést egy blobról a MediaInfo-on keresztül
A Requester>Gridwich a RequestBlobAnalysisCreateDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"blobUri": "StorageURL-string",
"analyzerSpecificData": {
"mediaInfo": {
"commandLineOptions": {
"Complete": "1",
"Output": "JSON"
}
}
}
},
"eventType": "request.blob.analysis.create"
}
A Gridwich-kérelmező> a ResponseBlobAnalysisSuccessDTO függvényt használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"blobUri": "StorageURL-string",
"blobMetadata": <Metadata-Dictionary>,
"analysisResults": <Analysis-Result-Object>
},
"eventType": "response.blob.analysis.success"
}
Az analysisResults
objektum tartalma nincs megadva. Az aktuális projektben ez a MediaInfo kimenete.
Az blobMetadata
érték egy sztringalapú > szótár.objektum, amely a megadott blob metaadatainak összes név-érték párját jelöli.
Az Azure Storage-ban megszokott módon a metaadatelemek nevének meg kell felelnie a C# azonosító elnevezési szabályainak. További információkért tekintse meg az Azure SetBlobMetadata REST API-t és a C#-elnevezési szabályokat.
A kérelmező megkéri a Gridwichet, hogy másolja a blobot egy új helyre
A Requester>Gridwich a RequestBlobCopyDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"sourceUri": "StorageURL-string",
"destinationUri": "StorageURL-string"
},
"eventType": "request.blob.copy"
}
A Gridwich-kérelmező a ResponseBlobCopyScheduledDTO-t használja.>
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"sourceUri": "URL-string",
"blobMetadata": <Metadata-Dictionary>,
"destinationUri": "StorageURL-string"
},
"eventType": "response.blob.copy.scheduled"
}
A Gridwich közli a kérelmezővel, hogy létrehozott egy blobot
A Gridwich bármilyen forrásból létrehozhatta a blobot, például egy másolási eredményt, a beérkezett üzenetek érkezését vagy az eredmény kódolását.
A Gridwich>Requester a ResponseBlobCreatedSuccessDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"blobUri": "StorageURL-string",
"blobMetadata": <Metadata-Dictionary>
},
"eventType": "response.blob.created.success"
}
A kérelmező megkéri a Gridwichet, hogy töröljön egy blobot
A Requester>Gridwich a RequestBlobDeleteDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"blobUri": "StorageURL-string",
},
"eventType": "request.blob.delete"
}
A Gridwich-kérelmező a ResponseBlobDeleteScheduledDTO-t használja.>
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"blobUri": "StorageURL-string",
"blobMetadata": <Metadata-Dictionary>
},
"eventType": "response.blob.delete.scheduled"
}
A Gridwich tájékoztatja a kérelmezőt, hogy törölt egy blobot
A blob törlése bármilyen forrásból származhat, például egy kérelmező kifejezett kérése vagy belső műveletek eredménye.
A Gridwich>Requester a ResponseBlobDeleteSuccessDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"blobUri": "StorageURL-string"
},
"eventType": "response.blob.delete.success"
}
A kérelmező megkéri a Gridwichet, hogy adjon vissza egy idő-lejárati tartalom SAS URL-címét
A Requester>Gridwich a RequestBlobSasUrlCreateDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"blobUri": "StorageURL-string",
"secToLive": 1200
},
"eventType": "request.blob.sas-url.create"
}
A Gridwich-kérelmező a ResponseBlobSasUrlSuccessDTO-t használja.>
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"sasUrl": "StorageURL-SAS-string"
},
"eventType": "response.blob.sas-url.success"
}
A kérelmező felkéri a Gridwichet, hogy kódoljon a CloudPort-munkafolyamaton keresztül
A Requester>Gridwich a RequestCloudPortEncodeCreateDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"inputs": [
{"blobUri": "StorageURL-string" }
],
"outputContainer": "https://<storageaccountname>.blob.core.windows.net/<containername>/",
"workflowName": "TestWorkflow2",
"parameters": [ { "prop1": "value1" } ],
"secToLive": 18000
},
"eventType": "request.encode.cloudport.create",
}
A kérelmező arra kéri a Gridwichet, hogy tükrözésen keresztül kódoljon
A Requester>Gridwich a RequestFlipEncodeCreateDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"inputs": [
{"blobUri": "StorageURL-string" }
],
"outputContainer": "StorageURL-string", // of the Storage container
"factoryName": "gws-dev-flip",
"profiles": "h264",
"parameters": [ { "prop1": "value1" } ],
"secToLive": 18000
},
"eventType": "request.encode.flip.create"
}
Példa a RequestFlipEncodeCreateDTO-ra
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": { "progId": 1234 },
"inputs": [
{
"blobUri": "https://gws-sa1.blob.core.windows.net/Vid0001Container/input.mp4"
}
],
"outputContainer": "https://gws-sa22out.blob.core.windows.net/Out0004/",
"factoryName": "gws-dev-flip",
"profiles": "h264",
"parameters": [ { "someProperty1": "someValue1" } ],
"secToLive": 18000
},
"eventType": "request.encode.flip.create"
}
Gridwich-kódolók gyakori kérése sikeres küldési válasz
A Gridwich>Requester a ResponseEncodeDispatchedDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"encoderContext": <EncoderContext>,
"workflowJobName": "CloudPort or Flip assigned job name for workflow instance."
},
"eventType": "response.encode.<encodername>.dispatched"
}
Az <encodername>
egyik cloudport
vagy flip
.
Gridwich-kódoló aszinkron állapotüzenetei
A Gridwich-kódolók négyféle eseményt hoznak létre a kódolás során vagy végén:
- Ütemezett
- Feldolgozás
- Sikeres művelet
- Visszavont
A kódolási kérések hibája gridwichi hibaeseményt hoz létre.
Kódolási állapot ütemezett
A Gridwich>Requester a ResponseEncodeScheduledDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"encoderContext": <EncoderContext>,
"workflowJobName": "CloudPort or Flip assigned job name for workflow instance."
},
"eventType": "response.encode.<encodername>.scheduled"
}
Kódolási állapotfeldolgozás
A Gridwich>Requester a ResponseEncodeProcessingDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"encoderContext": <EncoderContext>,
"workflowJobName": "CloudPort or Flip assigned job name for workflow instance.",
"currentStatus": "string",
"percentComplete": 50,
},
"eventType": "response.encode.<encodername>.processing"
}
Kódolási állapot sikeres
A Gridwich>Requester a ResponseEncodeSuccessDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,,
"encoderContext": <EncoderContext>,
"workflowJobName": "CloudPort or Flip assigned job name for workflow instance.",
"outputs":[
{ "blobUri": "StorageURL-string" }
]
},
"eventType": "response.encode.<encodername>.success"
}
A kódolás állapota megszakadt
A Gridwich>Requester a ResponseEncodeCanceledDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"encoderContext": <EncoderContext>,
"workflowJobName": "CloudPort or Flip assigned job name for workflow instance."
},
"eventType": "response.encode.<encodername>.canceled"
}
A kérelmező megkéri a Gridwichet, hogy módosítsa a blob tárolási szintjét
A Requester>Gridwich a RequestBlobTierChangeDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"blobUri": "StorageURL-string",
"accessTier": "string",
"rehydratePriority": "string"
},
"eventType": "request.blob.tier.change"
}
- A
accessTier
tulajdonság azHot
,Cool
vagyArchive
. - A
rehydratePriority
tulajdonság vagyStandard
High
.
A Gridwich-kérelmező> a ResponseBlobTierChangeSuccessDTO-t használja
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"blobUri": "StorageURL-string",
"accessTier": "string",
"rehydratePriority": "string"
},
"eventType":"response.blob.tier.success"
}
A kérelmező megkéri a Gridwichet, hogy hozzon létre egy blobtárolót
A kérés megadja a tárfiókot és a tároló nevét.
A Requester>Gridwich a RequestContainerCreateDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"storageAccountName": "string", // e.g. mySA1
"containerName": "string" // e.g. mycontainer
},
"eventType": "request.blob.container.create"
}
A Gridwich-kérelmező a ResponseContainerCreatedSuccessDTO-t használja.>
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"storageAccountName": "string",
"containerName": "string"
},
"eventType": "response.blob.container.create.success"
}
A kérelmező megkéri a Gridwichet, hogy töröljön egy blobtárolót
A kérés megadja a tárfiókot és a tároló nevét.
A Requester>Gridwich a RequestContainerDeleteDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"storageAccountName": "string",
"containerName": "string"
},
"eventType": "request.blob.container.delete"
}
A Gridwich-kérelmező a ResponseContainerDeleteSuccessDTO-t használja.>
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"storageAccountName": "string",
"containerName": "string"
},
"eventType": "response.blob.container.delete.success"
}
A kérelmező felkéri a Gridwichet, hogy módosítsa a tároló nyilvános hozzáférését
A kérés megadja a tároló nevét és egy accessType
Blob
, BlobContainer
vagy None
.
A Requester>Gridwich a RequestContainerAccessChangeDTO-t használja.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"storageAccountName": "string",
"containerName": "string",
"accessType": "string"
},
"eventType": "request.blob.container.access.change"
}
A Gridwich-kérelmező a ResponseContainerAccessChangeSuccessDTO-t használja.>
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"storageAccountName": "string",
"containerName": "string",
"accessType": "string"
},
"eventType": "response.blob.container.access.change.success"
}
A kérelmező megkéri a Gridwichet, hogy váltson egy új tárkulcsra
Az Rollkey
eseménycsalád abban különbözik a Gridwich többi elemétől, hogy bár a kérés elfogad egy operationContext
értéket, a válaszesemények egyike sem tartalmazza azt.
A hibaesemények nem a normál response.failure eseménytípushoz tartoznak, hanem a következő típusúak response.rollkey.storage.failure
: .
A response.rollkey.storage.failure
hibaesemények:
- Ne adja meg a normál hibaesemények naplózási adatainak adattulajdonságait
log
. - Tartalmaz egy további, hibaüzenetet tartalmazó adattulajdonságot
error
. Más Gridwich-hibák is hordozzák ezt a szöveget azlogEventMessage
adattulajdonságon.
Ezek a pontok a RollKey műveletet végrehajtó Azure Logic App aktuális állapotát tükrözik. A logikai alkalmazás definíciója az infrastruktúra/terraform/keyroller/main.tf Terraform fájlban található.
Az keyName
Azure Storage által a Kulcsok lekérése műveletben definiált kulcsnévnek felel meg.
>Kérelmező Gridwich
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"account": "storageAccountName",
"keyName": "key1"
},
"eventType": "request.rollkey.storage"
}
Gridwich-kérelmező>
Success:
{ "id": "GUID-string", "topic": "Topic-string", "subject": "Subject-string", "dataVersion": "DataVersion-string", "data": { "account": "storageAccountName", "keyName": "key1" }, "eventType": "response.rollkey.storage.success" }
Hiba:
{ "id": "GUID-string", "topic": "Topic-string", "subject": "Subject-string", "dataVersion": "1.0", "data": { "account": "storageAccountName1", "keyName": "key1", "error": "error message text" }, "eventType": "response.rollkey.storage.failure" }
A művelet sikertelenségi eredményei nem olyan teljesek, mint a normál Gridwich-hibák.
Következő lépések
Termékdokumentáció:
Microsoft Learn-modulok: