Samouczek języka JavaScript: przekazywanie i analizowanie pliku za pomocą Azure Functions i usługi Blob Storage

Z tego samouczka dowiesz się, jak przekazać obraz do Azure Blob Storage i przetworzyć go przy użyciu Azure Functions, przetwarzanie obrazów i cosmos DB. Dowiesz się również, jak zaimplementować wyzwalacze i powiązania funkcji platformy Azure w ramach tego procesu. Razem te usługi analizują przekazany obraz zawierający tekst, wyodrębniają z niego tekst, a następnie przechowują tekst w wierszu bazy danych w celu późniejszej analizy lub innych celów.

Azure Blob Storage to wysoce skalowalne rozwiązanie magazynu obiektów firmy Microsoft dla chmury. Usługa Blob Storage jest przeznaczona do przechowywania obrazów i dokumentów, plików multimedialnych przesyłania strumieniowego, zarządzania kopiami zapasowymi i archiwizowania danych oraz wiele innych. Więcej informacji na temat usługi Blob Storage można uzyskać na stronie przeglądu.

Ostrzeżenie

W tym samouczku użyto publicznie dostępnego magazynu, aby uprościć proces ukończenia tego samouczka. Anonimowy dostęp publiczny stanowi zagrożenie bezpieczeństwa. Dowiedz się, jak skorygować to ryzyko.

Usługa Azure Cosmos DB to w pełni zarządzana baza danych NoSQL i relacyjna baza danych do tworzenia nowoczesnych aplikacji.

Azure Functions to rozwiązanie bezserwerowe, które umożliwia pisanie i uruchamianie małych bloków kodu jako wysoce skalowalnych, bezserwerowych, opartych na zdarzeniach funkcji. Więcej informacji na temat Azure Functions można uzyskać na stronie przeglądu.

Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Przekazywanie obrazów i plików do usługi Blob Storage
  • Używanie wyzwalacza zdarzeń funkcji platformy Azure do przetwarzania danych przekazanych do usługi Blob Storage
  • Analizowanie obrazu przy użyciu usług AI platformy Azure
  • Zapisywanie danych w usłudze Cosmos DB przy użyciu powiązań wyjściowych funkcji platformy Azure

Diagram architektoniczny przedstawiający obiekt blob obrazu jest dodawany do usługi Blob Storage, a następnie analizowany przez funkcję platformy Azure z analizą wstawioną do usługi Cosmos DB.

Wymagania wstępne

Tworzenie konta magazynu i kontenera

Pierwszym krokiem jest utworzenie konta magazynu, które będzie przechowywać przekazane dane obiektu blob, które w tym scenariuszu będą obrazami zawierającymi tekst. Konto magazynu oferuje kilka różnych usług, ale ten samouczek korzysta tylko z usługi Blob Storage.

  1. W Visual Studio Code wybierz klawisze Ctrl + Shift + P, aby otworzyć paletę poleceń.

  2. Wyszukaj usługę Azure Storage: Utwórz konto magazynu (zaawansowane).

  3. Użyj poniższej tabeli, aby utworzyć zasób magazynu.

    Ustawienie Wartość
    Nazwa Wprowadź wartość msdocsstoragefunction lub coś podobnego.
    Grupa zasobów Utwórz utworzoną wcześniej grupę msdocs-storage-function zasobów.
    Hostowanie statyczne sieci Web Nie.
  4. W Visual Studio Code wybierz pozycję Shift + Alt + A, aby otworzyć eksploratora platformy Azure.

  5. Rozwiń sekcję Magazyn , rozwiń węzeł subskrypcji i poczekaj na utworzenie zasobu.

Tworzenie kontenera w Visual Studio Code

  1. Nadal w Eksploratorze Azure za pomocą nowego zasobu usługi Storage, rozwiń zasób, aby wyświetlić węzły.
  2. Kliknij prawym przyciskiem myszy pozycję Kontenery obiektów blob i wybierz pozycję Utwórz kontener obiektów blob.
  3. Wprowadź nazwę images. Spowoduje to utworzenie prywatnego kontenera.

Zmiana z prywatnego na publiczny kontener w Azure Portal

Ta procedura oczekuje kontenera publicznego. Aby zmienić konfigurację, wprowadź zmianę w Azure Portal.

  1. Kliknij prawym przyciskiem myszy zasób magazynu w Eksploratorze Azure i wybierz polecenie Otwórz w portalu.
  2. W sekcji Magazyn danych wybierz pozycję Kontenery.
  3. Znajdź kontener, imagesi wybierz ... (wielokropek) na końcu wiersza.
  4. Wybierz pozycję Zmień poziom dostępu.
  5. Wybierz pozycję Obiekt blob (anonimowy dostęp do odczytu dla obiektów blob tylko wtedy wybierz przycisk OK.
  6. Wróć do Visual Studio Code.

Pobieranie parametrów połączenia w Visual Studio Code

  1. W Visual Studio Code wybierz pozycję Shift + Alt + A, aby otworzyć eksploratora platformy Azure.
  2. Kliknij prawym przyciskiem myszy zasób magazynu i wybierz polecenie Kopiuj parametry połączenia.
  3. wklej to gdzieś, aby później użyć.
  4. Zanotuj również nazwę msdocsstoragefunction konta magazynu do późniejszego użycia.

Tworzenie usługi Azure AI Vision

Następnie utwórz konto usługi Azure AI Vision, które będzie przetwarzać przekazane pliki. Usługa Vision jest częścią usług Azure AI i oferuje różne funkcje wyodrębniania danych z obrazów. Więcej informacji na temat usługi Azure AI Vision można uzyskać na stronie przeglądu.

  1. Na pasku wyszukiwania w górnej części portalu wyszukaj pozycję Komputer i wybierz wynik z etykietą Przetwarzanie obrazów.

  2. Na stronie Przetwarzanie obrazów wybierz pozycję + Utwórz.

  3. Na stronie Tworzenie przetwarzanie obrazów wprowadź następujące wartości:

    • Subskrypcja: wybierz żądaną subskrypcję.
    • Grupa zasobów: użyj utworzonej msdocs-storage-function wcześniej grupy zasobów.
    • Region: wybierz region, który znajduje się najbliżej Ciebie.
    • Nazwa: wprowadź w nazwie .msdocscomputervision
    • Warstwa cenowa: wybierz pozycję Bezpłatna , jeśli jest dostępna, w przeciwnym razie wybierz pozycję Standardowa S1.
    • Zaznacz pole Powiadomienie o odpowiedzialnej sztucznej inteligencji , jeśli zgadzasz się na warunki

    Zrzut ekranu przedstawiający sposób tworzenia nowej usługi przetwarzanie obrazów.

  4. Wybierz pozycję Przejrzyj i utwórz u dołu. Na platformie Azure trwa chwilę, aby zweryfikować wprowadzone informacje. Po zweryfikowaniu ustawień wybierz pozycję Utwórz, a platforma Azure rozpocznie aprowizowanie usługi przetwarzanie obrazów, co może chwilę potrwać.

  5. Po zakończeniu operacji wybierz pozycję Przejdź do zasobu.

Pobieranie kluczy przetwarzanie obrazów

Następnie musimy znaleźć klucz tajny i adres URL punktu końcowego dla usługi przetwarzanie obrazów do użycia w naszej aplikacji funkcji platformy Azure.

  1. Na stronie przeglądu przetwarzanie obrazów wybierz pozycję Klucze i punkt końcowy.

  2. Na stronie Klucze i punkt końcowy skopiuj wartość Klucz 1 i wartości punktu końcowego , a następnie wklej je w celu późniejszego użycia. Punkt końcowy powinien być w formacie https://YOUR-RESOURCE-NAME.cognitiveservices.azure.com/

Zrzut ekranu przedstawiający sposób pobierania kluczy i punktu końcowego adresu URL dla usługi przetwarzanie obrazów.

Tworzenie konta usługi Cosmos DB

Utwórz konto usługi Cosmos DB, aby przechowywać analizę plików. Usługa Azure Cosmos DB to w pełni zarządzana baza danych NoSQL i relacyjna baza danych do tworzenia nowoczesnych aplikacji. Więcej informacji na temat usługi Cosmos DB i jej interfejsów API pomocy technicznej dla kilku różnych branżowych baz danych.

Chociaż ten samouczek określa interfejs API podczas tworzenia zasobu, powiązania funkcji platformy Azure dla usługi Cosmos DB są konfigurowane w taki sam sposób dla wszystkich interfejsów API usługi Cosmos DB.

  1. Na pasku wyszukiwania w górnej części portalu wyszukaj pozycję Azure Cosmos DB i wybierz wynik.

  2. Na stronie Azure Cosmos DB wybierz pozycję + Utwórz. Wybierz pozycję Azure Cosmos DB for NoSQL z listy opcji interfejsu API.

  3. Na stronie Tworzenie usługi Cosmos DB wprowadź następujące wartości:

    • Subskrypcja: wybierz żądaną subskrypcję.
    • Grupa zasobów: użyj utworzonej msdocs-storage-function wcześniej grupy zasobów.
    • Region: wybierz ten sam region co grupa zasobów.
    • Nazwa: wprowadź w nazwie .msdocscosmosdb
    • Warstwa cenowa: wybierz pozycję Bezpłatna , jeśli jest dostępna, w przeciwnym razie wybierz pozycję Standardowa S1.
  4. Wybierz pozycję Przejrzyj i utwórz u dołu. Platforma Azure poświęć chwilę na zweryfikowanie wprowadzonych informacji. Po zweryfikowaniu ustawień wybierz pozycję Utwórz, a platforma Azure rozpocznie aprowizowanie usługi przetwarzanie obrazów, co może chwilę potrwać.

  5. Po zakończeniu operacji wybierz pozycję Przejdź do zasobu.

  6. Wybierz pozycję Data Explorer, a następnie wybierz pozycję Nowy kontener.

  7. Utwórz nową bazę danych i kontener z następującymi ustawieniami:

    • Utwórz nowy identyfikator bazy danych: StorageTutorial.
    • Wprowadź nowy identyfikator kontenera: analysis.
    • Wprowadź klucz partycji: /type.
  8. Pozostaw pozostałe ustawienia domyślne i wybierz przycisk OK.

Pobieranie parametrów połączenia usługi Cosmos DB

Pobierz parametry połączenia dla konta usługi Cosmos DB do użycia w naszej aplikacji funkcji platformy Azure.

  1. Na stronie Przegląd usługi Cosmos DB wybierz pozycję Klucze.

  2. Na stronie Klucze skopiuj podstawowe parametry połączenia do późniejszego użycia.

Pobieranie i konfigurowanie przykładowego projektu

Kod funkcji platformy Azure używany w tym samouczku można znaleźć w tym repozytorium GitHub w podkatalogu JavaScript-v4 . Możesz również sklonować projekt przy użyciu poniższego polecenia.

git clone https://github.com/Azure-Samples/msdocs-storage-bind-function-service.git \
cd msdocs-storage-bind-function-service/javascript-v4 \
code .

Przykładowy projekt wykonuje następujące zadania:

  • Pobiera zmienne środowiskowe w celu nawiązania połączenia z kontem magazynu, przetwarzanie obrazów i usługą Cosmos DB
  • Akceptuje przekazany plik jako parametr obiektu blob
  • Analizuje obiekt blob przy użyciu usługi przetwarzanie obrazów
  • Wstawia przeanalizowany tekst obrazu jako obiekt JSON do usługi Cosmos DB przy użyciu powiązań wyjściowych

Po pobraniu i otwarciu projektu istnieje kilka podstawowych pojęć, które należy zrozumieć:

Pojęcie Przeznaczenie
Funkcja Funkcja platformy Azure jest definiowana zarówno przez kod funkcji, jak i powiązania. Znajdują się one w pliku ./src/functions/process-blobs.js.
Wyzwalacze i powiązania Wyzwalacze i powiązania wskazują, że dane, które są oczekiwane do lub poza funkcją oraz które usługi będą wysyłać lub odbierać te dane.

Wyzwalacze i powiązania używane w tym samouczku do przyspieszenia procesu programowania przez usunięcie konieczności pisania kodu w celu nawiązania połączenia z usługami.

Wyzwalacz obiektu blob usługi Input Storage

Kod określający, że funkcja jest wyzwalana po przekazaniu obiektu blob do kontenera images . Funkcja jest wyzwalana na dowolnej nazwie obiektu blob, w tym w folderach hierarchicznych.


// ...preceding code removed for brevity

app.storageBlob('process-blob-image', { 
    path: 'images/{name}',                // Storage container name: images, Blob name: {name}
    connection: 'StorageConnection',      // Storage account connection string
    handler: async (blob, context) => {

// ... function code removed for brevity
  • app.storageBlob — wyzwalacz wejściowy obiektu blob usługi Storage służy do powiązania funkcji ze zdarzeniem przekazywania w usłudze Blob Storage. Wyzwalacz ma dwa wymagane parametry:
    • path: ścieżka wyzwalacza obserwuje zdarzenia. Ścieżka zawiera nazwęimages kontenera i podstawianie zmiennej dla nazwy obiektu blob. Ta nazwa obiektu blob jest pobierana z name właściwości .
    • {name}: nazwa przekazanego obiektu blob. Użycie parametru blob to nazwa parametru dla obiektu blob przychodzącego do funkcji. Nie zmieniaj wartości blob.
    • connection: parametry połączenia konta magazynu. Wartość StorageConnection jest zgodna z nazwą w pliku podczas tworzenia lokalnego local.settings.json .

Wyzwalacz danych wyjściowych usługi Cosmos DB

Po zakończeniu działania funkcji funkcja używa zwróconego obiektu jako danych do wstawiania do usługi Cosmos DB.


// ... function definition ojbect
app.storageBlob('process-blob-image', { 
    
        // removed for brevity    
        
        // Data to insert into Cosmos DB
        const id = uuidv4().toString();
        const analysis = await analyzeImage(blobUrl);
        
        // `type` is the partition key 
        const dataToInsertToDatabase = {
                id,
                type: 'image',
                blobUrl,
                blobSize: blob.length,
                analysis,
                trigger: context.triggerMetadata
            }

        return dataToInsertToDatabase;
    }),

    // Output binding for Cosmos DB
    return: output.cosmosDB({
        connection: 'CosmosDBConnection',
        databaseName:'StorageTutorial',
        containerName:'analysis'
    })
});

W przypadku kontenera w tym artykule wymagane są następujące właściwości:

  • id: identyfikator wymagany do utworzenia nowego wiersza w usłudze Cosmos DB.

  • /type: klucz partycji określony za pomocą kontenera został utworzony.

  • output.cosmosDB — wyzwalacz danych wyjściowych usługi Cosmos DB służy do wstawiania wyniku funkcji do usługi Cosmos DB.

    • connection: parametry połączenia konta magazynu. Wartość StorageConnection jest zgodna z nazwą w local.settings.json pliku.
    • databaseName: baza danych cosmos DB do nawiązania połączenia.
    • containerName: nazwa tabeli do zapisania przeanalizowanej wartości tekstowej obrazu zwróconej przez funkcję. Tabela musi już istnieć.

Kod funkcji platformy Azure

Poniżej znajduje się pełny kod funkcji.

const { app, input, output } = require('@azure/functions');
const { v4: uuidv4 } = require('uuid');
const { ApiKeyCredentials } = require('@azure/ms-rest-js');
const { ComputerVisionClient } = require('@azure/cognitiveservices-computervision');
const sleep = require('util').promisify(setTimeout);

const STATUS_SUCCEEDED = "succeeded";
const STATUS_FAILED = "failed"

const imageExtensions = ["jpg", "jpeg", "png", "bmp", "gif", "tiff"];

async function analyzeImage(url) {

    try {

        const computerVision_ResourceKey = process.env.ComputerVisionKey;
        const computerVision_Endpoint = process.env.ComputerVisionEndPoint;

        const computerVisionClient = new ComputerVisionClient(
            new ApiKeyCredentials({ inHeader: { 'Ocp-Apim-Subscription-Key': computerVision_ResourceKey } }), computerVision_Endpoint);

        const contents = await computerVisionClient.analyzeImage(url, {
            visualFeatures: ['ImageType', 'Categories', 'Tags', 'Description', 'Objects', 'Adult', 'Faces']
        });

        return contents;

    } catch (err) {
        console.log(err);
    }
}
app.storageBlob('process-blob-image', { 
    path: 'images/{name}',
    connection: 'StorageConnection',
    handler: async (blob, context) => {

        context.log(`Storage blob 'process-blob-image' url:${context.triggerMetadata.uri}, size:${blob.length} bytes`);

        const blobUrl = context.triggerMetadata.uri;
        const extension = blobUrl.split('.').pop();

        if(!blobUrl) {
            // url is empty
            return;
        } else if (!extension || !imageExtensions.includes(extension.toLowerCase())){
            // not processing file because it isn't a valid and accepted image extension
            return;
        } else {
            //url is image
            const id = uuidv4().toString();
            const analysis = await analyzeImage(blobUrl);
            
            // `type` is the partition key 
            const dataToInsertToDatabase = {
                    id,
                    type: 'image',
                    blobUrl,
                    blobSize: blob.length,
                    ...analysis,
                    trigger: context.triggerMetadata
                }

            return dataToInsertToDatabase;
        }

        
    },
    return: output.cosmosDB({
        connection: 'CosmosDBConnection',
        databaseName:'StorageTutorial',
        containerName:'analysis'
    })
});

Ten kod pobiera również podstawowe wartości konfiguracji ze zmiennych środowiskowych, takich jak parametry połączenia usługi Blob Storage i klucz przetwarzanie obrazów. Te zmienne środowiskowe są dodawane do środowiska funkcji platformy Azure po jej wdrożeniu.

Funkcja domyślna używa również drugiej metody o nazwie AnalyzeImage. Ten kod używa punktu końcowego adresu URL i klucza konta przetwarzanie obrazów, aby wysłać żądanie przetwarzanie obrazów w celu przetworzenia obrazu. Żądanie zwraca cały tekst odnaleziony na obrazie. Ten tekst jest zapisywany w usłudze Cosmos DB przy użyciu powiązania wychodzącego.

Konfigurowanie ustawień lokalnych

Aby uruchomić projekt lokalnie, wprowadź zmienne środowiskowe w ./local.settings.json pliku. Wypełnij wartości symboli zastępczych wartościami zapisanymi wcześniej podczas tworzenia zasobów platformy Azure.

Mimo że kod funkcji platformy Azure działa lokalnie, łączy się z usługami opartymi na chmurze dla usługi Storage, a nie przy użyciu lokalnych emulatorów.

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "AzureWebJobsStorage": "",
    "StorageConnection": "STORAGE-CONNECTION-STRING",
    "StorageAccountName": "STORAGE-ACCOUNT-NAME",
    "StorageContainerName": "STORAGE-CONTAINER-NAME",
    "ComputerVisionKey": "COMPUTER-VISION-KEY",
    "ComputerVisionEndPoint":  "COMPUTER-VISION-ENDPOINT",
    "CosmosDBConnection": "COSMOS-DB-CONNECTION-STRING"
  }
}

Tworzenie aplikacji Azure Functions

Teraz możesz przystąpić do wdrażania aplikacji na platformie Azure przy użyciu rozszerzenia Visual Studio Code.

  1. W Visual Studio Code wybierz pozycję Shift + Alt + A, aby otworzyć eksploratora platformy Azure.

  2. W sekcji Funkcje znajdź i kliknij prawym przyciskiem myszy subskrypcję, a następnie wybierz pozycję Utwórz aplikację funkcji na platformie Azure (zaawansowane).

  3. Użyj poniższej tabeli, aby utworzyć zasób funkcji.

    Ustawienie Wartość
    Nazwa Wprowadź wartość msdocsprocessimage lub coś podobnego.
    Stos środowiska uruchomieniowego Wybierz wersję Node.js LTS .
    Model programowania Wybierz pozycję v4.
    System operacyjny Wybierz pozycję Linux.
    Grupa zasobów Wybierz utworzoną wcześniej grupę msdocs-storage-function zasobów.
    Lokalizacja Wybierz ten sam region co grupa zasobów.
    Typ planu Wybierz pozycję Zużycie.
    Azure Storage Wybierz utworzone wcześniej konto usługi magazynu.
    Application Insights Pomiń na razie.
  4. Platforma Azure aprowizuje żądane zasoby, co potrwa kilka chwil.

Wdrażanie aplikacji Azure Functions

  1. Po zakończeniu poprzedniego procesu tworzenia zasobów kliknij prawym przyciskiem myszy nowy zasób w sekcji Funkcje eksploratora platformy Azure, a następnie wybierz pozycję Wdróż w aplikacji funkcji.
  2. Jeśli zostanie wyświetlony monit Czy na pewno chcesz wdrożyć..., wybierz pozycję Wdróż.
  3. Po zakończeniu procesu zostanie wyświetlone powiadomienie z wyborem, które obejmuje ustawienia przekazywania. Wybierz tę opcję. Spowoduje to skopiowanie wartości z pliku local.settings.json do aplikacji funkcji platformy Azure. Jeśli powiadomienie zniknęło, zanim będzie można go wybrać, przejdź do następnej sekcji.

Dodawanie ustawień aplikacji dla usługi Storage i przetwarzanie obrazów

Jeśli w powiadomieniu wybrano pozycję Przekaż ustawienia , pomiń tę sekcję.

Funkcja platformy Azure została pomyślnie wdrożona, ale nie może jeszcze nawiązać połączenia z kontem magazynu i przetwarzanie obrazów usług. Prawidłowe klucze i parametry połączenia należy najpierw dodać do ustawień konfiguracji aplikacji Azure Functions.

  1. Znajdź zasób w sekcji Funkcje eksploratora platformy Azure, kliknij prawym przyciskiem myszy pozycję Ustawienia aplikacji i wybierz pozycję Dodaj nowe ustawienie.

  2. Wprowadź nowe ustawienie aplikacji dla następujących wpisów tajnych. Skopiuj i wklej wartości wpisów tajnych z projektu lokalnego local.settings.json w pliku.

    Ustawienie
    StorageConnection
    StorageAccountName
    StorageContainerName
    ComputerVisionKey
    ComputerVisionEndPoint
    CosmosDBConnection

Wszystkie wymagane zmienne środowiskowe, aby połączyć naszą funkcję platformy Azure z różnymi usługami, są teraz dostępne.

Przekazywanie obrazu do usługi Blob Storage

Teraz możesz przetestować naszą aplikację! Możesz przekazać obiekt blob do kontenera, a następnie sprawdzić, czy tekst na obrazie został zapisany w usłudze Cosmos DB.

  1. W Eksploratorze platformy Azure w Visual Studio Code znajdź i rozwiń zasób usługi Storage w sekcji Storage.
  2. Rozwiń węzeł Kontenery obiektów blob i kliknij prawym przyciskiem myszy nazwę kontenera, imagesa następnie wybierz pozycję Przekaż pliki.
  3. W folderze images znajduje się kilka przykładowych obrazów znajdujących się w katalogu głównym przykładowego projektu do pobrania lub możesz użyć jednego z własnych.
  4. W katalogu Destination zaakceptuj wartość /domyślną .
  5. Poczekaj, aż pliki zostaną przekazane i wyświetlone w kontenerze.

Wyświetlanie analizy tekstu obrazu

Następnie możesz sprawdzić, czy przekazywanie wyzwoliło funkcję platformy Azure, a tekst na obrazie został przeanalizowany i zapisany w usłudze Cosmos DB prawidłowo.

  1. W Visual Studio Code w Eksploratorze Azure w węźle usługi Azure Cosmos DB wybierz zasób i rozwiń go, aby znaleźć bazę danych StorageTutorial.

  2. Rozwiń węzeł bazy danych.

  3. Kontener analizy powinien być teraz dostępny. Wybierz węzeł Dokumenty kontenera, aby wyświetlić podgląd danych wewnątrz. Powinien zostać wyświetlony wpis dla przetworzonego tekstu obrazu przekazanego pliku.

    {
        "id": "3cf7d6f0-a362-421e-9482-3020d7d1e689",
        "type": "image",
        "blobUrl": "https://msdocsstoragefunction.blob.core.windows.net/images/presentation.png",
        "blobSize": 1383614,
        "analysis": {  ... details removed for brevity ...
            "categories": [],
            "adult": {},
            "imageType": {},
            "tags": [],
            "description": {},
            "faces": [],
            "objects": [],
            "requestId": "eead3d60-9905-499c-99c5-23d084d9cac2",
            "metadata": {},
            "modelVersion": "2021-05-01"
        },
        "trigger": { 
            "blobTrigger": "images/presentation.png",
            "uri": "https://msdocsstorageaccount.blob.core.windows.net/images/presentation.png",
            "properties": {
                "lastModified": "2023-07-07T15:32:38+00:00",
                "createdOn": "2023-07-07T15:32:38+00:00",
                "metadata": {},
                ... removed for brevity ...
                "contentLength": 1383614,
                "contentType": "image/png",
                "accessTier": "Hot",
                "accessTierInferred": true,
            },
            "metadata": {},
            "name": "presentation.png"
        },
        "_rid": "YN1FAKcZojEFAAAAAAAAAA==",
        "_self": "dbs/YN1FAA==/colls/YN1FAKcZojE=/docs/YN1FAKcZojEFAAAAAAAAAA==/",
        "_etag": "\"7d00f2d3-0000-0700-0000-64a830210000\"",
        "_attachments": "attachments/",
        "_ts": 1688743969
    }
    

Gratulacje! Udało Ci się przetwarzać obraz przekazany do usługi Blob Storage przy użyciu Azure Functions i przetwarzanie obrazów.

Rozwiązywanie problemów

Skorzystaj z poniższej tabeli, aby rozwiązać problemy podczas tej procedury.

Problem Rozwiązanie
await computerVisionClient.read(url); błędy z Only absolute URLs are supported Upewnij się, że punkt ComputerVisionEndPoint końcowy ma format https://YOUR-RESOURCE-NAME.cognitiveservices.azure.com/.

Czyszczenie zasobów

Jeśli nie zamierzasz nadal korzystać z tej aplikacji, możesz usunąć utworzone zasoby, usuwając grupę zasobów.

  1. Wybierz pozycję Grupy zasobów w eksploratorze platformy Azure
  2. Znajdź i kliknij prawym przyciskiem myszy grupę msdocs-storage-function zasobów z listy.
  3. Wybierz pozycję Usuń. Proces usuwania grupy zasobów może potrwać kilka minut.

Przykładowy kod

Następne kroki