Dela via


Ansluta funktioner till Azure Storage med Visual Studio

Med Azure Functions kan du ansluta Azure-tjänster och andra resurser till funktioner utan att behöva skriva din egen integreringskod. Dessa bindningar, som representerar både indata och utdata, deklareras i funktionsdefinitionen. Data från bindningar skickas som parametrar till funktionen. En utlösare är en särskild typ av indatabindning. Även om en funktion bara har en utlösare kan den ha flera indata- och utdatabindningar. Mer information finns i Azure Functions-utlösare och bindningar.

Den här artikeln visar hur du använder Visual Studio för att ansluta funktionen som du skapade i föregående snabbstartsartikel till Azure Storage. Den utdatabindning som du lägger till i den här funktionen skriver data från HTTP-begäran till ett meddelande i en Azure Queue-lagringskö.

De flesta bindningar kräver en lagrad niska veze som Functions använder för att komma åt den bundna tjänsten. För att göra det enklare använder du lagringskontot som du skapade med funktionsappen. Anslutningen till det här kontot lagras redan i en appinställning med namnet AzureWebJobsStorage.

Förutsättningar

Innan du börjar den här artikeln måste du:

  • Slutför del 1 av Visual Studio-snabbstarten.
  • Installera Azure Storage Explorer. Storage Explorer är ett verktyg som du använder för att undersöka kömeddelanden som genereras av utdatabindningen. Storage Explorer stöds på macOS-, Windows- och Linux-baserade operativsystem.
  • Logga in på din Azure-prenumeration från Visual Studio.

Ladda ned inställningarna för funktionsappen

I föregående snabbstartsartikel skapade du en funktionsapp i Azure tillsammans med det lagringskonto som krävs. Niska veze för det här kontot lagras på ett säkert sätt i appinställningarna i Azure. I den här artikeln skriver du meddelanden till en lagringskö i samma konto. Om du vill ansluta till lagringskontot när du kör funktionen lokalt måste du ladda ned appinställningarna till local.settings.json-filen.

  1. I Solution Explorer högerklickar du på projektet och väljer Publicera.

  2. På fliken Publicera under Värd expanderar du de tre punkterna (...) och väljer Hantera Azure App Service-inställningar.

    Redigera programinställningarna

  3. Under AzureWebJobsStorage kopierar du värdet fjärrsträng till Lokal och väljer sedan OK.

Lagringsbindningen, som använder AzureWebJobsStorage inställningen för anslutningen, kan nu ansluta till kölagringen när den körs lokalt.

Registrera bindningstillägg

Eftersom du använder en utdatabindning för kölagring behöver du tillägget Lagringsbindningar installerat innan du kör projektet. Förutom HTTP- och timerutlösare implementeras bindningar som tilläggspaket.

  1. På menyn Verktyg väljer du NuGet Upravljač za pakete> Upravljač za pakete Console.

  2. I -konsolen kör du följande Install-Package-kommando för att installera lagringstilläggen:

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

Nu kan du lägga till bindningen för lagringsutdata i projektet.

Lägg till en utdatabindning

I ett C#-projekt definieras bindningarna som bindningsattribut för funktionsmetoden. Specifika definitioner beror på om din app körs i processen (C#-klassbiblioteket) eller i en isolerad arbetsprocess.

Öppna HttpExample.cs-projektfilen och lägg till följande MultiResponse klass:

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

Med MultiResponse klassen kan du skriva till en lagringskö med namnet outqueue och ett HTTP-meddelande. Flera meddelanden kan skickas till kön eftersom QueueOutput attributet tillämpas på en strängmatris.

Egenskapen Connection anger niska veze för lagringskontot. I det här fallet kan du utelämna Connection eftersom du redan använder standardlagringskontot.

Lägg till kod som använder utdatabindning

När bindningen har definierats kan du använda name bindningen för att komma åt den som ett attribut i funktionssignaturen. Genom att använda en utdatabindning behöver du inte använda Azure Storage SDK-koden för autentisering, hämta en köreferens eller skriva data. Functions runtime- och köutdatabindning utför dessa uppgifter åt dig.

Ersätt den befintliga HttpExample klassen med följande kod:

    [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
        };
    }
}

Kör funktionen lokalt

  1. Om du vill köra funktionen trycker du på F5 i Visual Studio. Du kan behöva aktivera ett brandväggsfel så att verktygen kan hantera HTTP-begäranden. Auktoriseringsnivåer tillämpas aldrig när du kör en funktion lokalt.

  2. Kopiera URL:en för funktionen från dina Azure Functions-utdata.

    Lokal Azure-körningsmiljö

  3. Klistra in URL:en för HTTP-begäran i webbläsarens adressfält och kör begäran. Följande bild visar svaret i webbläsaren på den lokala GET-begäran som returneras av funktionen:

    Svar för funktion-localhost i webbläsaren

  4. Om du vill sluta felsöka trycker du på Skift+F5 i Visual Studio.

En ny kö med namnet outqueue skapas i ditt lagringskonto av Functions-körningen när utdatabindningen först används. Du använder Storage Explorer för att kontrollera att kön har skapats tillsammans med det nya meddelandet.

Anslut Storage Explorer till ditt konto

Hoppa över det här avsnittet om du redan har installerat Azure Storage Explorer och anslutit det till ditt Azure-konto.

  1. Kör Azure Storage Explorer-verktyget, välj anslutningsikonen till vänster och välj Lägg till ett konto.

    Skärmbild av hur du lägger till ett Azure-konto i Microsoft Azure Storage Explorer.

  2. I dialogrutan Anslut väljer du Lägg till ett Azure-konto, väljer din Azure-miljö och sedan Logga in....

    Skärmbild av inloggningen till ditt Azure-kontofönster.

När du har loggat in på ditt konto ser du alla Azure-prenumerationer som är associerade med ditt konto. Välj din prenumeration och välj Öppna utforskaren.

Granska utdatakö

  1. Expandera noden Köer i Storage Explorer och välj sedan kön med namnet outqueue.

    Kön innehåller meddelandet som köutdatabindningen skapade när du körde den HTTP-utlösta funktionen. Om du startade en funktion med standardvärdet name för Azure så är kömeddelandet Name passed to the function: Azure (Namn som skickats till funktionen: Azure).

    Skärmbild av kömeddelandet som visas i Azure Storage Explorer.

  2. Kör funktionen igen, skicka en annan begäran och du ser ett nytt meddelande i kön.

Nu är det dags att publicera om den uppdaterade funktionsappen till Azure.

Distribuera om och verifiera den uppdaterade appen

  1. I Istraživač rešenja högerklickar du på projektet och väljer Publicera och väljer sedan Publicera för att publicera om projektet till Azure.

  2. När distributionen är klar kan du använda webbläsaren igen för att testa den omdistribuerade funktionen. Precis som tidigare lägger du till frågesträngen &name=<yourname> i URL:en.

  3. Visa återigen meddelandet i lagringskön för att kontrollera att utdatabindningen återigen genererar ett nytt meddelande i kön.

Rensa resurser

De andra snabbstarterna i den här samlingen bygger på den här snabbstarten. Om du planerar att arbeta med efterföljande snabbstarter, självstudier eller med någon av de tjänster som du har skapat i den här snabbstarten ska du inte rensa resurserna.

Resurser i Azure avser funktionsappar, funktioner, lagringskonton och så vidare. De är grupperade i resursgrupper och du kan ta bort allt i en grupp genom att ta bort gruppen.

Du har skapat resurser för att slutföra de här snabbstarterna. Du kan debiteras för dessa resurser, beroende på kontostatus och tjänstpriser. Om du inte behöver resurserna längre så visar vi hur du tar bort dem här:

  1. Gå till sidan Resursgrupp i Azure Portal.

    Om du vill komma till den sidan från funktionsappsidan väljer du fliken Översikt och väljer sedan länken under Resursgrupp.

    Skärmbild som visar hur du väljer den resursgrupp som ska tas bort från funktionsappsidan.

    För att komma till den sidan från instrumentpanelen väljer du Resursgrupper och sedan den resursgrupp som du använde för den här artikeln.

  2. På sidan Resursgrupp granskar du listan över inkluderade resurser och kontrollerar att det är de som du vill ta bort.

  3. Välj Ta bort resursgrupp och följ anvisningarna.

    Borttagningen kan ta några minuter. När du är färdig visas ett meddelande i några sekunder. Du kan även välja klockikonen högst upp på sidan för att se meddelandet.

Nästa steg

Du har uppdaterat din HTTP-utlösta funktion för att skriva data till en lagringskö. Mer information om hur du utvecklar funktioner finns i Utveckla Azure Functions med Visual Studio.

Därefter bör du aktivera Application Insights-övervakning för din funktionsapp: