Dela via


Konfigurera loggning och anslutning med Azure Functions-utlösaren för Azure Cosmos DB

GÄLLER FÖR: NoSQL

I den här artikeln beskrivs avancerade konfigurationsalternativ som du kan ange när du använder Azure Functions-utlösaren för Azure Cosmos DB.

Aktivera utlösarspecifika loggar

Azure Functions-utlösaren för Azure Cosmos DB använder ändringsflödesprocessorbiblioteket internt, och biblioteket genererar en uppsättning hälsologgar som kan användas för att övervaka interna åtgärder i felsökningssyfte.

Hälsologgarna beskriver hur Azure Functions-utlösaren för Azure Cosmos DB fungerar vid försök till åtgärder vid belastningsutjämning, initiering och bearbetning.

Aktivera loggning

Om du vill aktivera loggning när du använder Azure Functions-utlösaren för Azure Cosmos DB letar du upp host.json filen i ditt Azure Functions-projekt eller Azure Functions-app och konfigurerar den loggningsnivå som krävs. Aktivera spårningarna för Host.Triggers.CosmosDB enligt följande exempel:

{
  "version": "2.0",
  "logging": {
    "fileLoggingMode": "debugOnly",
    "logLevel": {
      "Host.Triggers.CosmosDB": "Warning"
    }
  }
}

När Azure-funktionen har distribuerats med den uppdaterade konfigurationen visas Azure Functions-utlösaren för Azure Cosmos DB-loggar som en del av dina spårningar. Du kan visa loggarna i din konfigurerade loggningsprovider under kategorinHost.Triggers.CosmosDB.

Vilken typ av loggar genereras?

När det är aktiverat finns det fyra nivåer av logghändelser som kommer att genereras:

  • Fel:

    • När det finns ett okänt eller kritiskt fel i ändringsflödesbearbetningen som påverkar rätt utlösarfunktionalitet.
  • Varning!

    • När din funktionsanvändarkod hade ett ohanterat undantag – Det finns en lucka i funktionskoden och funktionen inte är motståndskraftig mot fel eller ett serialiseringsfel (för C# Functions kan den råa json-filen inte deserialiseras till den valda C#-typen).
    • När det finns tillfälliga anslutningsproblem som hindrar utlösaren från att interagera med Azure Cosmos DB-kontot. Utlösaren försöker igen upprepade gånger med dessa tillfälliga anslutningsfel, men om de fortsätter under en längre tid kan det bero på ett nätverksproblem. Du kan aktivera spårningar på felsökningsnivå för att hämta diagnostiken från den underliggande Azure Cosmos DB SDK:en.
  • Information:

    • När ett lån tas till en annan instans – Under initieringen och när funktionen skalar kan lånen balanseras om till en annan instans. Om du har anpassat förvärv- eller förfallointervallen kan det också indikera att värdena kan vara olämpliga (förfallointervallet är kortare än förnyelseintervallet).
  • Felsöka:

    • När ett lån förvärvas av en instans börjar den aktuella instansen bearbeta ändringsflödet för lånet.
    • När ett lån släpps av en instans – Den aktuella instansen har slutat bearbeta ändringsflödet för lånet.
    • När nya ändringar levereras från utlösaren till funktionskoden – Hjälper till att felsöka situationer när funktionskoden kan ha fel och du inte är säker på om du får ändringar eller inte.
    • För spårningar som är Varning och Fel läggs diagnostikinformation från underliggande Azure Cosmos DB SDK till för felsökning.

Du kan också se källkoden för att se fullständig information.

Sök i loggarna

Kör följande fråga för att fråga loggarna som genereras av Azure Functions-utlösaren för Azure Cosmos DB i Azure Application Insights Analytics:

traces
| where customDimensions.Category == "Host.Triggers.CosmosDB"

Konfigurera anslutningsprincipen

Det finns två anslutningslägen – direktläge och gatewayläge. Mer information om dessa anslutningslägen finns i artikeln om anslutningslägen . Gateway används som standard för att upprätta alla anslutningar på Azure Functions-utlösaren för Azure Cosmos DB. Det kanske dock inte är det bästa alternativet för prestandadrivna scenarier.

Ändra anslutningsläge och protokoll

Det finns två viktiga konfigurationsinställningar för att konfigurera klientanslutningsprincipen – anslutningsläget och anslutningsprotokollet. Du kan ändra standardanslutningsläget och protokollet som används av Azure Functions-utlösaren för Azure Cosmos DB och alla Azure Cosmos DB-bindningar). Om du vill ändra standardinställningarna måste du leta upp host.json filen i azure functions-projektet eller Azure Functions-appen och lägga till följande extra inställning:

{
  "cosmosDB": {
    "connectionMode": "Direct",
    "protocol": "Tcp"
  }
}

Där connectionMode måste ha önskat anslutningsläge (direkt eller gateway) och protocol önskat anslutningsprotokoll (Tcp för direktläge eller Https för gatewayläge).

Om ditt Azure Functions-projekt fungerar med Azure Functions V1-körningen har konfigurationen en liten namnskillnad. Du bör använda documentDB i stället för cosmosDB:

{
  "documentDB": {
    "connectionMode": "Direct",
    "protocol": "Tcp"
  }
}

Anpassa användaragenten

Azure Functions-utlösaren för Azure Cosmos DB utför begäranden till tjänsten som ska återspeglas i din övervakning. Du kan anpassa användaragenten som används för begäranden från en Azure-funktion genom att ändra userAgentSuffix i de host.jsonextra inställningarna:

{
  "cosmosDB": {
    "userAgentSuffix": "MyUniqueIdentifier"
  }
}

Kommentar

När du är värd för din funktionsapp i en förbrukningsplan har varje instans en gräns för hur många Socket-anslutningar som den kan underhålla. När du arbetar i Direct/TCP-läge skapas, av design, fler anslutningar som kan nå förbrukningsplanens gräns. I så fall kan du antingen använda Gateway-läget eller istället drifta din funktionsapp i en Premium-plan eller en dedikerad (App Service)-plan.

Nästa steg