W tym artykule szczegółowo opisano konkretne zdarzenia usługi Event Grid, które tworzą sekwencję żądań-odpowiedź dla różnych operacji usługi Gridwich.
Zdarzenia usługi Gridwich
Potwierdzenie gridwich i błąd gridwich różnią się od innych zdarzeń Gridwich. Szczególnie:
- Potwierdzenie gridwich (ACK) wskazuje, że usługa Gridwich otrzymała, ale niekoniecznie przetworzyła żądanie w sekwencji request-ACK-Response.
- Każda operacja ma co najmniej jedno unikatowe zdarzenie odpowiedzi Powodzenie, ale prawie wszystkie operacje używają tego samego zdarzenia niepowodzenia gridwich do komunikowania się z niepowodzeniem.
Zdarzenia kodowania
Inicjowanie nowego zadania kodowania
Zdarzenie natychmiastowej odpowiedzi z każdego kodera, oprócz usługi ACK, jest zdarzeniem awarii lub wysłanego kodowania, które wskazuje pomyślne kolejkowanie zadania. Zdarzenia powiadomienia o postępie kodowania obsługują dalszy postęp.
Powiadomienia o postępie kodowania
Wszystkie kodery używają tego samego zestawu zdarzeń stanu powiadomień postępu.
Zdarzenia magazynu obiektów blob i kontenerów
Kontenery
Obiekty blob
Powiadomienia dotyczące obiektów blob
Klucze magazynu
Kontekst operacji
Gridwich akceptuje obiekt JSON operationContext
w ramach komunikatów żądania. Ogólnie rzecz biorąc, Gridwich powtarza odpowiedni obiekt w komunikatach odpowiedzi i nie jest zaniepokojony określoną wewnętrzną strukturą ani zawartością obiektu kontekstu.
Wyjątek polega na tym, że obiekt kontekstu odpowiedzi może mieć dodatkowe właściwości JSON w porównaniu z równoważnikiem żądania. Te dodatkowe właściwości są wewnętrzne dla Gridwich, a ich nazwy zawsze zaczynają się od znaku tyldy ~. Właściwości żądania są zawsze obecne w obiekcie kontekstu odpowiedzi.
Podobnie jak w normalnym formacie JSON, właściwości obiektu odpowiedzi mogą być wyświetlane w innej kolejności niż w obiekcie żądania.
Aby uzyskać więcej informacji na temat kontekstu operacji, zobacz Kontekst operacji w artykule Architektura gridwich.
Komunikaty usługi Event Grid
Aby uzyskać więcej informacji na temat przepływu komunikatów żądań, zobacz przepływ żądań architektury.
W poniższych opisach zdarzeń wartości właściwości JSON są zwykłymi typami ciągów, liczb lub wartości logicznych. Opisy używają następujących typów zawartości ciągów. Jeśli opis zawiera "nieprzezroczyste", zawartość i format wartości są dowolne.
GUID-string
, like"b621f33d-d01e-0002-7ae5-4008f006664e"
to 16-bajtowa wartość identyfikatora wypisana na 36 znaków (32 cyfry szesnastkowej i 4 kreski). Zwróć uwagę na brak nawiasów klamrowych. Wartość jest niewrażliwa na wielkość liter. Ten format odpowiada wynikowi Elementu System.GUID.ToString("D")..Topic-string
, na przykład"/subscriptions/5edeadbe-ef64-4022-a3aa-133bfef1d7a2/resourceGroups/gws-shared-rg-sb/providers/Microsoft.EventGrid/topics/gws-gws-egt-sb"
, jest ciągiem nieprzezroczystej zawartości.Subject-string
, na przykład"/blobServices/default/containers/telestreamoutput/blobs/db08122195b66be71db9e54ae04c58df/503220533TAGHD23976fps16x990266772067587.mxf"
, jest ciągiem nieprzezroczystej zawartości.EventType-string
, like"request.operation.requested"
jest zazwyczaj ciągiem formularza:{"request"|"response"}.operation[.qualifier]
.DataVersion-string
, na przykład"1.0"
, jest wskaźnikiem przechowywania wersji używanym przez procesory komunikatów do odróżnienia różnych ewolucji tej samej operacji. Gridwich wymaga tego pola. MetodaHandlesEvent
określa, które wersje może przetwarzać poszczególne programy obsługi usługi Event Grid.URL-string
to bezwzględny adres URL, który często wskazuje dzienniki Szczegółowe informacje aplikacji. Te ciągi są zwykle adresem URL sygnatury dostępu współdzielonego ze względu na wymagania dotyczące autoryzacji docelowej.StorageURL-string
to bezwzględny adres URL, który często wskazuje obiekt blob lub kontener usługi Azure Storage. Ten ciąg nie jest zwykle adresem URL sygnatury dostępu współdzielonego.StorageURL-SAS-string
to bezwzględny adres URL sygnatury dostępu współdzielonego, który często wskazuje obiekt blob lub kontener usługi Azure Storage.OperationContextObject
, na przykład{ "prodID": 10, "dc": "abc" }
, jest dowolnym obiektem JSON akceptowanym w żądaniach przychodzących i powtarzanym z powrotem w ramach zdarzeń odpowiedzi Gridwich.Metadata-Dictionary
jest słownikiem obiektów JSON typu ciąg-ciąg z parami name-value reprezentującymi metadane obiektu blob usługi Azure Storage.Encoder-Context
jest nieprzezroczystym obiektem JSON właściwości specyficznym dla określonego kodera.
Ogólna odpowiedź ACK usługi Gridwich
Funkcja Gridwich>Requester używa elementu ResponseAcknowledgeDTO.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"eventType": "request.blob.metadata.create"
},
"eventType": "response.acknowledge"
}
Wartość data.eventType
ciągu jest właściwością najwyższego poziomu eventType
ze zdarzenia Request. Na przykład w przypadku żądania data.eventType
analizy obiektów blob wartość ciągu torequest.blob.analysis.create
.
Ogólna odpowiedź na błąd usługi Gridwich
Gridwich Requester używa elementu ResponseFailureDTO.>
{
"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"
}
Zdarzenie niepowodzenia nie zawiera oryginalnej wartości żądania eventType
, ale zawiera kontekst operacji i nazwę programu obsługi, która przetwarzała żądanie. Właściwości log*
odnoszą się do informacji o problemie zarejestrowanych przez skonfigurowane wystąpienie aplikacji Szczegółowe informacje.
W przypadku ograniczonego zestawu operacji obiekt zdarzenia niepowodzenia znacznie różni się od poprzedniego komunikatu. Aby uzyskać więcej informacji, zobacz Roll storage keys (Rzutowanie kluczy magazynu).
Żądający prosi gridwich o umieszczenie niektórych metadanych w obiekcie blob
Obiekt Requester>Gridwich używa elementu RequestBlobMetadataCreateDTO.
{
"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"
}
Obiekt blobMetadata
jest obiektem właściwości o wartości ciągu reprezentujących wszystkie pary name-value żądanych metadanych obiektu blob.
Usługa Gridwich>Requester używa elementu ResponseBlobMetadataSuccessDTO.
{
"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"
}
Aby później pobrać bieżące metadane dla obiektu blob, zobacz Żądanie analizowania obiektu blob .
Żądający prosi gridwich o przeprowadzenie analizy obiektu blob za pośrednictwem informacji MediaInfo
Obiekt Requester>Gridwich używa elementu RequestBlobAnalysisCreateDTO.
{
"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"
}
Usługa Gridwich>Requester używa elementu ResponseBlobAnalysisSuccessDTO.
{
"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"
}
Zawartość analysisResults
obiektu nie jest określona. W bieżącym projekcie są to dane wyjściowe MediaInfo.
Wartość blobMetadata
jest > ciągiem dictionary.object właściwości ciąg-valued reprezentujących wszystkie pary name-value metadanych określonego obiektu blob.
Jak zwykle w usłudze Azure Storage nazwy elementów metadanych muszą być zgodne z regułami nazewnictwa identyfikatorów języka C#. Aby uzyskać więcej informacji, zobacz interfejs API REST usługi Azure SetBlobMetadata i reguły nazewnictwa języka C#.
Żądający prosi Gridwich o skopiowanie obiektu blob do nowego miejsca docelowego
Obiekt Requester>Gridwich używa obiektu RequestBlobCopyDTO.
{
"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"
}
Usługa Gridwich>Requester używa elementu ResponseBlobCopyScheduledDTO.
{
"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"
}
Gridwich informuje obiekt żądający o utworzeniu obiektu blob
Gridwich mógł utworzyć obiekt blob z dowolnego źródła, takiego jak wynik kopiowania, przybycie skrzynki odbiorczej lub wynik kodowania.
Funkcja Gridwich>Requester używa elementu ResponseBlobCreatedSuccessDTO.
{
"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"
}
Żądający prosi gridwich o usunięcie obiektu blob
Obiekt Requester>Gridwich używa obiektu RequestBlobDeleteDTO.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"blobUri": "StorageURL-string",
},
"eventType": "request.blob.delete"
}
Usługa Gridwich>Requester używa elementu ResponseBlobDeleteScheduledDTO.
{
"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"
}
Gridwich informuje obiekt żądający o usunięciu obiektu blob
Usunięcie obiektu blob może pochodzić z dowolnego źródła, takiego jak jawne żądanie od obiektu żądającego lub wynik operacji wewnętrznych.
Gridwich Requester używa metody ResponseBlobDeleteSuccessDTO.>
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"blobUri": "StorageURL-string"
},
"eventType": "response.blob.delete.success"
}
Żądający prosi Gridwich o zwrócenie adresu URL sygnatury dostępu współdzielonego zawartości wygasania czasu
Usługa Requester>Gridwich używa elementu RequestBlobSasUrlCreateDTO.
{
"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"
}
Usługa Gridwich>Requester używa elementu ResponseBlobSasUrlSuccessDTO.
{
"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"
}
Żądający prosi gridwich o kodowanie za pośrednictwem przepływu pracy CloudPort
Usługa Requester>Gridwich używa metody RequestCloudPortEncodeCreateDTO.
{
"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",
}
Żądający prosi Gridwicha o kodowanie za pomocą funkcji Flip
Obiekt Requester>Gridwich używa metody RequestFlipEncodeCreateDTO.
{
"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"
}
Przykład obiektu RequestFlipEncodeCreateDTO
{
"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"
}
Kodery Gridwich — typowe żądania zakończone powodzeniem odpowiedzi na wysyłanie
Gridwich Requester używa elementu ResponseEncodeDispatchedDTO.>
{
"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"
}
Jest <encodername>
to jeden z cloudport
elementów lub flip
.
Komunikaty o stanie asynchronicznego kodera Gridwich
Kodery Gridwich generują cztery rodzaje zdarzeń podczas kodowania lub na końcu kodowania:
- Zaplanowane
- Przetwarzanie
- Powodzenie
- Anulowany
Błąd żądania kodowania generuje zdarzenie niepowodzenia usługi Gridwich.
Zaplanowano stan kodowania
Gridwich Requester używa metody ResponseEncodeScheduledDTO.>
{
"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"
}
Przetwarzanie stanu kodowania
Gridwich Requester używa elementu ResponseEncodeProcessingDTO.>
{
"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"
}
Powodzenie stanu kodowania
Gridwich Requester używa metody ResponseEncodeSuccessDTO.>
{
"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"
}
Stan kodowania anulowany
Usługa Gridwich>Requester używa elementu ResponseEncodeCanceledDTO.
{
"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"
}
Żądający prosi gridwich o zmianę warstwy magazynowania obiektu blob
Obiekt Requester>Gridwich używa obiektu RequestBlobTierChangeDTO.
{
"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"
}
- Właściwość
accessTier
toHot
,Cool
lubArchive
. - Właściwość
rehydratePriority
toStandard
lubHigh
.
Usługa Gridwich>Requester używa elementu ResponseBlobTierChangeSuccessDTO
{
"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"
}
Żądający prosi gridwich o utworzenie kontenera obiektów blob
Żądanie zawiera nazwę konta magazynu i kontenera.
Usługa Requester>Gridwich używa elementu RequestContainerCreateDTO.
{
"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"
}
Usługa Gridwich>Requester używa elementu ResponseContainerCreatedSuccessDTO.
{
"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"
}
Żądający prosi gridwich o usunięcie kontenera obiektów blob
Żądanie zawiera nazwę konta magazynu i kontenera.
Usługa Requester>Gridwich używa elementu RequestContainerDeleteDTO.
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"storageAccountName": "string",
"containerName": "string"
},
"eventType": "request.blob.container.delete"
}
Usługa Gridwich>Requester używa elementu ResponseContainerDeleteSuccessDTO.
{
"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"
}
Żądający prosi gridwich o zmianę publicznego dostępu do kontenera
Żądanie zawiera nazwę kontenera Blob
i nazwę accessType
, BlobContainer
lub None
.
Usługa Requester>Gridwich używa elementu RequestContainerAccessChangeDTO.
{
"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"
}
Usługa Gridwich>Requester używa elementu ResponseContainerAccessChangeSuccessDTO.
{
"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"
}
Żądający prosi usługę Gridwich o rotację do nowego klucza magazynu
Rodzina Rollkey
zdarzeń różni się od innych w gridwich w tym, podczas gdy żądanie akceptuje operationContext
wartość, żadne z zdarzeń odpowiedzi nie zawiera.
Zdarzenia niepowodzenia nie są normalnym typem zdarzenia response.failure , ale zamiast tego mają wartość response.rollkey.storage.failure
typu .
Zdarzenia response.rollkey.storage.failure
niepowodzenia:
- Nie uwzględniaj żadnych właściwości danych dotyczących rejestrowania informacji o
log
normalnym wystąpieniu awarii. - Zawiera dodatkową właściwość danych o nazwie
error
zawierającą tekst komunikatu o błędzie. Inne błędy usługi Gridwich niosą ten tekst welogEventMessage
właściwości danych.
Te punkty odzwierciedlają bieżący stan aplikacji logiki platformy Azure, która wykonuje operację RollKey. Definicja aplikacji logiki znajduje się w pliku infrastructure/terraform/keyroller/main.tf Terraform.
Odpowiada keyName
nazwie klucza zdefiniowanej przez usługę Azure Storage w operacji Uzyskiwanie kluczy .
Gridwich obiektu żądającego>
{
"id": "GUID-string",
"topic": "Topic-string",
"subject": "Subject-string",
"dataVersion": "DataVersion-string",
"data": {
"operationContext": <OperationContextObject>,
"account": "storageAccountName",
"keyName": "key1"
},
"eventType": "request.rollkey.storage"
}
Gridwich>Requester
Success:
{ "id": "GUID-string", "topic": "Topic-string", "subject": "Subject-string", "dataVersion": "DataVersion-string", "data": { "account": "storageAccountName", "keyName": "key1" }, "eventType": "response.rollkey.storage.success" }
Awaria:
{ "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" }
Wyniki niepowodzenia tej operacji nie są tak kompletne, jak normalne błędy usługi Gridwich.
Następne kroki
Dokumentacja produktu:
- System multimediów w chmurze Gridwich
- Co to jest usługa Azure Blob Storage?
- Co to jest Azure Logic Apps?
Moduły microsoft Learn: