Szerkesztés

Megosztás a következőn keresztül:


Gridwich-kérés-válaszüzenetek

Azure Logic Apps
Azure Storage

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

Blob- és tárolótároló-események

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-stringpé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. A HandlesEvent metódus határozza meg, hogy az egyes Event Grid-kezelők mely verziókat tudják feldolgozni.
  • URL-stringegy 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.
  • OperationContextObjectpé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 az Hot, Coolvagy Archive.
  • A rehydratePriority tulajdonság vagy StandardHigh.

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 accessTypeBlob, BlobContainervagy 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 az logEventMessage 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: