Udostępnij za pośrednictwem


Łączenie funkcji z usługą Azure Storage przy użyciu programu Visual Studio

Usługa Azure Functions umożliwia łączenie usług platformy Azure i innych zasobów z funkcjami bez konieczności pisania własnego kodu integracji. Te powiązania, które reprezentują zarówno dane wejściowe, jak i wyjściowe, są deklarowane w definicji funkcji. Dane z powiązań są podawane do funkcji jako parametry. Wyzwalacz to specjalny typ powiązania wejściowego. Chociaż funkcja ma tylko jeden wyzwalacz, może mieć wiele powiązań wejściowych i wyjściowych. Aby dowiedzieć się więcej, zobacz Pojęcia dotyczące wyzwalaczy i powiązań usługi Azure Functions.

W tym artykule pokazano, jak używać programu Visual Studio do łączenia funkcji utworzonej w poprzednim artykule Szybki start z usługą Azure Storage. Powiązanie wyjściowe dodawane do tej funkcji zapisuje dane z żądania HTTP do komunikatu w kolejce usługi Azure Queue Storage.

Większość powiązań wymaga przechowywanego parametry połączenia używanego przez usługę Functions do uzyskiwania dostępu do powiązanej usługi. Aby ułatwić korzystanie z konta magazynu utworzonego za pomocą aplikacji funkcji. Połączenie z tym kontem jest już przechowywane w ustawieniu aplikacji o nazwie AzureWebJobsStorage.

Wymagania wstępne

Przed rozpoczęciem tego artykułu musisz:

  • Ukończ część 1 przewodnika Szybki start programu Visual Studio.
  • Zainstaluj Eksplorator usługi Azure Storage. Eksplorator usługi Storage to narzędzie, które służy do sprawdzania komunikatów kolejki generowanych przez powiązanie wyjściowe. Eksplorator usługi Storage jest obsługiwana w systemach operacyjnych macOS, Windows i Linux.
  • Zaloguj się do subskrypcji platformy Azure z poziomu programu Visual Studio.

Pobieranie ustawień aplikacji funkcji

W poprzednim artykule Szybki start utworzono aplikację funkcji na platformie Azure wraz z wymaganym kontem usługi Storage. Parametry połączenia dla tego konta jest bezpiecznie przechowywana w ustawieniach aplikacji na platformie Azure. W tym artykule zapisujesz komunikaty w kolejce usługi Storage na tym samym koncie. Aby nawiązać połączenie z kontem usługi Storage podczas lokalnego uruchamiania funkcji, musisz pobrać ustawienia aplikacji do pliku local.settings.json .

  1. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz polecenie Opublikuj.

  2. Na karcie Publikowanie w obszarze Hosting rozwiń trzy kropki (...) i wybierz pozycję Zarządzaj ustawieniami usługi aplikacja systemu Azure.

    Edytowanie ustawień aplikacji

  3. W obszarze AzureWebJobsStorage skopiuj wartość ciągu zdalnego do lokalizacji Lokalnej, a następnie wybierz przycisk OK.

Powiązanie magazynu, które używa AzureWebJobsStorage ustawienia dla połączenia, może teraz łączyć się z usługą Queue Storage podczas uruchamiania lokalnego.

Rejestrowanie rozszerzeń do wiązania

Ponieważ używasz powiązania wyjściowego usługi Queue Storage, przed uruchomieniem projektu potrzebne jest rozszerzenie Powiązania magazynu. Z wyjątkiem wyzwalaczy HTTP i czasomierza powiązania są implementowane jako pakiety rozszerzeń.

  1. W menu Narzędzia wybierz pozycję NuGet Menedżer pakietów> Menedżer pakietów Konsola.

  2. W konsoli uruchom następujące polecenie Install-Package , aby zainstalować rozszerzenia magazynu:

    Install-Package Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
    

Teraz możesz dodać powiązanie danych wyjściowych magazynu do projektu.

Dodawanie powiązania danych wyjściowych

W projekcie języka C# powiązania są definiowane jako atrybuty powiązania w metodzie funkcji. Określone definicje zależą od tego, czy aplikacja działa w procesie (biblioteka klas języka C#), czy w izolowanym procesie roboczym.

Otwórz plik projektu HttpExample.cs i dodaj następującą MultiResponse klasę:

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public HttpResponseData HttpResponse { get; set; }
}

Klasa MultiResponse umożliwia zapisywanie w kolejce magazynu o nazwie outqueue i komunikat o powodzeniu HTTP. Do kolejki można wysłać wiele komunikatów, ponieważ QueueOutput atrybut jest stosowany do tablicy ciągów.

Właściwość Connection ustawia parametry połączenia dla konta magazynu. W takim przypadku można pominąć Connection , ponieważ używasz już domyślnego konta magazynu.

Dodawanie kodu korzystającego z powiązania danych wyjściowych

Po zdefiniowaniu powiązania można użyć name powiązania, aby uzyskać do niego dostęp jako atrybut w podpisie funkcji. Za pomocą powiązania wyjściowego nie trzeba używać kodu zestawu SDK usługi Azure Storage do uwierzytelniania, pobierania odwołania do kolejki ani zapisywania danych. Powiązanie danych wyjściowych środowiska uruchomieniowego i kolejki usługi Functions wykonuje te zadania.

Zastąp istniejącą HttpExample klasę następującym kodem:

    [Function("HttpExample")]
    public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req,
        FunctionContext executionContext)
    {
        var logger = executionContext.GetLogger("HttpExample");
        logger.LogInformation("C# HTTP trigger function processed a request.");

        var message = "Welcome to Azure Functions!";

        var response = req.CreateResponse(HttpStatusCode.OK);
        response.Headers.Add("Content-Type", "text/plain; charset=utf-8");
        response.WriteString(message);

        // Return a response to both HTTP trigger and storage output binding.
        return new MultiResponse()
        {
            // Write a single message.
            Messages = new string[] { message },
            HttpResponse = response
        };
    }
}

Lokalne uruchamianie funkcji

  1. Aby uruchomić funkcję, naciśnij F5 w programie Visual Studio. Może być konieczne włączenie wyjątku zapory, aby narzędzia mogły obsługiwać żądania HTTP. Poziomy autoryzacji nigdy nie są wymuszane podczas lokalnego uruchamiania funkcji.

  2. Skopiuj adres URL funkcji z danych wyjściowych środowiska uruchomieniowego usługi Azure Functions.

    Lokalne środowisko uruchomieniowe platformy Azure

  3. Wklej adres URL żądania HTTP na pasku adresu przeglądarki i uruchom żądanie. Na poniższej ilustracji przedstawiono odpowiedź w przeglądarce na lokalne żądanie GET zwrócone przez funkcję:

    Odpowiedź hosta localhost funkcji wyświetlona w przeglądarce

  4. Aby zatrzymać debugowanie, naciśnij Shift+F5 w programie Visual Studio.

Nowa kolejka o nazwie outqueue jest tworzona na koncie magazynu przez środowisko uruchomieniowe usługi Functions po pierwszym użyciu powiązania wyjściowego. Użyjesz Eksplorator usługi Storage, aby sprawdzić, czy kolejka została utworzona wraz z nowym komunikatem.

Łączenie Eksploratora usługi Storage z kontem

Pomiń tę sekcję, jeśli masz już zainstalowaną Eksplorator usługi Azure Storage i połączono ją z kontem platformy Azure.

  1. Uruchom narzędzie Eksplorator usługi Azure Storage, wybierz ikonę połączenia po lewej stronie, a następnie wybierz pozycję Dodaj konto.

    Zrzut ekranu przedstawiający sposób dodawania konta platformy Azure do Eksplorator usługi Microsoft Azure Storage.

  2. W oknie dialogowym Łączenie wybierz pozycję Dodaj konto platformy Azure, wybierz środowisko platformy Azure, a następnie wybierz pozycję Zaloguj się....

    Zrzut ekranu przedstawiający okno logowania do konta platformy Azure.

Po pomyślnym zalogowaniu się do konta zobaczysz wszystkie subskrypcje platformy Azure skojarzone z twoim kontem. Wybierz subskrypcję i wybierz pozycję Otwórz Eksploratora.

Sprawdzanie kolejki wyjściowej

  1. W Eksplorator usługi Storage rozwiń węzeł Kolejki, a następnie wybierz kolejkę o nazwie outqueue.

    Kolejka zawiera komunikat utworzony za pomocą powiązania danych wyjściowych kolejki po uruchomieniu funkcji wyzwalanej przez protokół HTTP. Jeśli funkcja została wywołana przy użyciu domyślnego elementu name o wartości Azure, komunikat w kolejce to Nazwa przekazana do funkcji: Azure.

    Zrzut ekranu przedstawiający komunikat kolejki wyświetlany w Eksplorator usługi Azure Storage.

  2. Uruchom ponownie funkcję, wyślij kolejne żądanie i zostanie wyświetlony nowy komunikat w kolejce.

Teraz nadszedł czas na ponowne opublikowanie zaktualizowanej aplikacji funkcji na platformie Azure.

Ponowne wdrażanie i weryfikowanie zaktualizowanej aplikacji

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt, a następnie wybierz pozycję Publikuj, aby ponownie opublikować projekt na platformie Azure.

  2. Po zakończeniu wdrażania możesz ponownie użyć przeglądarki do przetestowania ponownie wdrożonej funkcji. Tak jak wcześniej, dołącz ciąg &name=<yourname> zapytania do adresu URL.

  3. Ponownie wyświetl komunikat w kolejce magazynu, aby sprawdzić, czy powiązanie wyjściowe ponownie generuje nowy komunikat w kolejce.

Czyszczenie zasobów

Inne przewodniki Szybki start w tej kolekcji bazują na tym przewodniku. Jeśli planujesz pracę z kolejnymi przewodnikami Szybki start, samouczkami lub z dowolną usługą utworzoną w tym przewodniku Szybki start, nie usuwaj zasobów.

Zasoby na platformie Azure dotyczą aplikacji funkcji, funkcji, kont magazynu i tak dalej. Są one grupowane w grupy zasobów i można usunąć wszystkie elementy w grupie, usuwając grupę.

Utworzono zasoby, aby ukończyć te przewodniki Szybki start. Opłaty za te zasoby mogą być naliczane w zależności od stanu konta i cen usług. Jeśli nie potrzebujesz już tych zasobów, oto jak możesz je usunąć:

  1. W witrynie Azure Portal przejdź do strony Grupa zasobów.

    Aby przejść do tej strony ze strony aplikacji funkcji, wybierz kartę Przegląd , a następnie wybierz link w obszarze Grupa zasobów.

    Zrzut ekranu przedstawiający wybieranie grupy zasobów do usunięcia ze strony aplikacji funkcji.

    Aby uzyskać dostęp do tej strony z pulpitu nawigacyjnego, wybierz pozycję Grupy zasobów, a następnie wybierz grupę zasobów użytą w tym artykule.

  2. Na stronie Grupa zasobów przejrzyj listę uwzględnionych zasobów i sprawdź, czy są to te, które chcesz usunąć.

  3. Wybierz pozycję Usuń grupę zasobów i postępuj zgodnie z instrukcjami.

    Usunięcie może potrwać kilka minut. Po jego zakończeniu przez kilka sekund będzie widoczne powiadomienie. Możesz również wybrać ikonę dzwonka w górnej części strony, aby wyświetlić powiadomienie.

Następne kroki

Zaktualizowano funkcję wyzwalaną przez protokół HTTP, aby zapisywać dane w kolejce usługi Storage. Aby dowiedzieć się więcej na temat tworzenia funkcji, zobacz Tworzenie usługi Azure Functions przy użyciu programu Visual Studio.

Następnie należy włączyć monitorowanie usługi Application Insights dla aplikacji funkcji: