Functies verbinden met Azure Storage met behulp van Visual Studio
Met Azure Functions kunt u Azure-services en andere resource verbinden met services zonder dat u zelf integratiecode moet schrijven. Deze zogenaamde bindingen, die zowel invoer als uitvoer vertegenwoordigen, worden gedeclareerd binnen de functiedefinitie. Gegevens van bindingen worden als parameters doorgegeven aan de functie. Een trigger is een speciaal type invoerbinding. Hoewel een functie slechts één trigger heeft, kan deze meerdere invoer- en uitvoerbindingen hebben. Zie Azure Functions triggers and bindings concepts (Concepten van Azure Functions-triggers en -bindingen) voor meer informatie.
In dit artikel leest u hoe u Visual Studio gebruikt om verbinding te maken met Azure Storage, met behulp van de functie die u hebt gemaakt in het vorige quickstart-artikel. De uitvoerbinding die u aan deze functie toevoegt, schrijft gegevens van een HTTP-aanvraag naar een bericht in een Azure Queue Storage-wachtrij.
Voor de meeste bindingen is een opgeslagen verbindingsreeks vereist die Functions gebruikt om toegang te krijgen tot de gebonden service. Om het eenvoudiger te maken, gebruikt u het Storage-account dat u hebt gemaakt met uw functie-app. De verbinding met dit account is al opgeslagen in een app-instelling met de naam AzureWebJobsStorage
.
Vereisten
Voordat u aan dit artikel begint, moet u het volgende doen:
- Deel 1 van de quickstart over Visual Studio voltooien.
- Azure Storage Explorer installeren. Storage Explorer is een hulpprogramma dat u gebruikt om wachtrijberichten te onderzoeken die zijn gegenereerd door uw uitvoerbinding. Storage Explorer wordt ondersteund op macOS-, Windows- en Linux-besturingssystemen.
- Aanmelden bij uw Azure-abonnement vanuit Visual Studio.
De instellingen voor functie-apps downloaden
In het vorige snelstartgids-artikelhebt u een functie-app gemaakt in Azure, met het vereiste Storage-account. De verbindingsreeks voor dit account wordt veilig opgeslagen in de app-instellingen in Azure. In dit artikel schrijft u berichten naar een opslagwachtrij in hetzelfde account. Als u verbinding wilt maken met uw Storage-account wanneer u de functie lokaal uitvoert, moet u de app-instellingen downloaden naar het bestand local.settings.json.
Klik in Solution Explorer met de rechtermuisknop op het project en selecteer Publiceren.
Vouw op het tabblad Publiceren onder Hosting de drie puntjes (...) uit en selecteer Azure-app Service-instellingen beheren.
Kopieer onder AzureWebJobsStorage de tekenreekswaarde bij Extern naar Lokaal en selecteer vervolgens OK.
De opslagbinding, die gebruikmaakt van de instelling AzureWebJobsStorage
voor de verbinding, kan nu verbinding maken met uw Queue Storage-wachtrij wanneer deze lokaal wordt uitgevoerd.
Binding-extensies registreren
Omdat u een Queue Storage-uitvoerbinding gebruikt, moet u de extensie voor Storage-bindingen hebben geïnstalleerd voordat u het project uitvoert. Met uitzondering van HTTP- en timertriggers worden bindingen geïmplementeerd als uitbreidingspakketten.
Selecteer in het menu Hulpprogramma’s de optie NuGet Package Manager>Package Manager Console.
Voer in de-console de volgende Install-Package-opdracht uit om de Storage-extensies te installeren:
Install-Package Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
Nu kunt u de Storage-uitvoerbinding toevoegen aan uw project.
Een uitvoerbinding toevoegen
In een C#-project worden de bindingen gedefinieerd als bindingskenmerken voor de functiemethode. Specifieke definities zijn afhankelijk van of uw app in proces (C#-klassebibliotheek) of in een geïsoleerd werkproces wordt uitgevoerd.
Open het HttpExample.cs projectbestand en voeg de volgende MultiResponse
klasse toe:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public HttpResponseData HttpResponse { get; set; }
}
Met de MultiResponse
klasse kunt u schrijven naar een opslagwachtrij met de naam outqueue
en een HTTP-succesbericht. Er kunnen meerdere berichten naar de wachtrij worden verzonden omdat het QueueOutput
kenmerk wordt toegepast op een tekenreeksmatrix.
Met Connection
de eigenschap wordt het verbindingsreeks voor het opslagaccount ingesteld. In dit geval kunt u weglaten Connection
omdat u al het standaardopslagaccount gebruikt.
Code toevoegen die gebruikmaakt van de uitvoerbinding
Nadat de binding is gedefinieerd, kunt u de name
van de binding gebruiken om deze te openen als een kenmerk in de functie handtekening. Als u een uitvoerbinding gebruikt, hoeft u niet de Azure Storage SDK-code te gebruiken voor verificatie, het ophalen van een wachtrijverwijzing of het schrijven van gegevens. Deze taken worden voor u verwerkt via Functions-runtime en Queue Storage-uitvoerbinding.
Vervang de bestaande HttpExample
klasse door de volgende code:
[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
};
}
}
De functie lokaal uitvoeren
Druk op F5 in Visual Studio om uw functie uit te voeren. Mogelijk moet u ook een firewall-uitzondering maken, zodat de hulpprogramma's HTTP-aanvragen kunnen afhandelen. Er worden geen autorisatieniveaus afgedwongen wanneer u een functie lokaal uitvoert.
Kopieer de URL van uw functie vanuit de uitvoer van de Azure Functions-runtime.
Plak de URL voor de HTTP-aanvraag in de adresbalk van uw browser en voer de aanvraag uit. In de afbeelding hieronder ziet u de reactie in de browser op de lokale GET-aanvraag die door de functie wordt geretourneerd:
Als u de foutopsporing wilt stoppen, drukt u op Shift+F5 in Visual Studio.
Wanneer de uitvoerbinding voor het eerst wordt gebruikt, wordt er door de runtime van Functions een nieuwe wachtrij met de naam outqueue
gemaakt in uw opslagaccount. U gebruikt Storage Explorer om te controleren of de wachtrij is gemaakt met het nieuwe bericht.
Storage Explorer verbinden met uw account
Sla deze sectie over als u Azure Storage Explorer al hebt geïnstalleerd en verbonden met uw Azure-account.
Voer het hulpprogramma Azure Storage Explorer uit, selecteer het verbindingspictogram aan de linkerkant en selecteer Een account toevoegen.
Kies in het dialoogvenster Verbinding maken een Azure-account toevoegen, kies uw Azure-omgeving en selecteer vervolgens Aanmelden....
Nadat u zich hebt aangemeld bij uw account, ziet u alle Azure-abonnementen die zijn gekoppeld aan uw account. Kies uw abonnement en selecteer Open Explorer.
De uitvoerwachtrij controleren
Vouw in Storage Explorer het knooppunt Wachtrijen uit en selecteer vervolgens de wachtrij met de naam outqueue.
De wachtrij bevat het bericht dat met de Queue Storage-uitvoerbinding is gemaakt toen u de met HTTP geactiveerde functie hebt uitgevoerd. Als u de functie hebt aangeroepen met de standaardwaarde
name
van Azure, is het wachtrijbericht Naam is doorgegeven aan de functie: Azure.Voer de functie opnieuw uit, verzend een andere aanvraag en u ziet een nieuw bericht in de wachtrij.
Nu is het tijd om de bijgewerkte functie-app opnieuw te publiceren naar Azure.
De bijgewerkte app opnieuw implementeren en verifiëren
Klik in Solution Explorer met de rechtermuisknop op het project en selecteer Publiceren. Kies vervolgens Publiceren om het project opnieuw te publiceren naar Azure.
Als de implementatie is voltooid, kunt u de browser nogmaals gebruiken om de opnieuw geïmplementeerde functie te testen. Zoals eerder, moet u de queryreeks
&name=<yourname>
toevoegen aan de URL.Bekijk het bericht in de opslagwachtrij om te controleren of de uitvoerbinding opnieuw een nieuw bericht in de wachtrij genereert.
Resources opschonen
Andere Quick Starts in deze verzameling zijn op deze Quick Start gebaseerd. Als u van plan bent om te werken met volgende quickstarts, zelfstudies of met een van de services die u in deze quickstart hebt gemaakt, moet u de resources niet opschonen.
Resources verwijst in Azure naar functie-apps, functies, opslagaccounts,enzovoort. Deze zijn gegroepeerd in resourcegroepen. U kunt alle resources in een groep verwijderen door de groep zelf te verwijderen.
U hebt resources gemaakt om deze quickstarts te voltooien. Mogelijk wordt u gefactureerd voor deze resources, afhankelijk van uw accountstatus en serviceprijzen. Als u de resources niet meer nodig hebt, kunt u ze als volgt verwijderen:
Ga in Azure Portal naar de pagina Resourcegroep.
Als u naar die pagina wilt gaan op de pagina van de functie-app, selecteert u het tabblad Overzicht en selecteert u vervolgens de koppeling onder Resourcegroep.
Selecteer Resourcegroepen en selecteer vervolgens de resourcegroep die u voor dit artikel hebt gebruikt om naar die pagina te gaan.
Bekijk op de pagina Resourcegroep de lijst met opgenomen resources, en controleer of dit de resources zijn die u wilt verwijderen.
Selecteer Resourcegroep verwijderen en volg de instructies.
Het verwijderen kan enkele minuten duren. Wanneer dit is voltooid, verschijnt een aantal seconden een melding in beeld. U kunt ook het belpictogram bovenaan de pagina selecteren om de melding te bekijken.
Volgende stappen
U hebt uw HTTP-geactiveerde functie bijgewerkt om gegevens naar een opslagwachtrij te schrijven. Als u meer wilt lezen over het ontwikkelen van functies, raadpleegt u Azure Functions ontwikkelen met Visual Studio.
Vervolgens moet u bewaking met Application Insights inschakelen voor uw functie-app: