Zelfstudie: Python-functie met Azure Queue Storage als trigger
In deze zelfstudie leert u hoe u een Python-functie configureert met Opslagwachtrij als trigger door de volgende taken uit te voeren.
- Gebruik Visual Studio Code om een Python-functieproject te maken.
- Gebruik Visual Studio Code om de functie lokaal uit te voeren.
- Gebruik de Azure CLI om een verbinding te maken tussen Azure Function en Storage Queue met Service Connector.
- Visual Studio gebruiken om uw functie te implementeren.
Een overzicht van de onderdelen van het functieproject in deze zelfstudie:
Projectonderdeel | Selectie/oplossing |
---|---|
Bronservice | Azure-functie |
Doelservice | Azure-opslagwachtrij |
Functiebinding | Opslagwachtrij als trigger |
Type lokale projectverificatie | Verbindingsreeks |
Verificatietype cloudfunctie | Verbindingsreeks |
Waarschuwing
Microsoft raadt u aan de veiligste verificatiestroom te gebruiken die beschikbaar is. De verificatiestroom die in deze procedure wordt beschreven, vereist een zeer hoge mate van vertrouwen in de toepassing en brengt risico's met zich mee die niet aanwezig zijn in andere stromen. U moet deze stroom alleen gebruiken wanneer andere veiligere stromen, zoals beheerde identiteiten, niet haalbaar zijn.
Vereisten
- Installeer Visual Studio Code op een van de ondersteunde platforms.
- De Azure CLI. U kunt deze gebruiken in Azure Cloud Shell of lokaal installeren.
- Een Azure Storage-account en een opslagwachtrij. Als u geen Azure Storage hebt, maakt u er een.
- In deze handleiding wordt ervan uitgegaan dat u de basisconcepten kent die worden weergegeven in de Ontwikkelaarshandleiding van Azure Functions en hoe u verbinding maakt met services in Functions.
Een Python-functieproject maken
Volg de zelfstudie om een lokaal Azure Functions-project te maken en geef de volgende informatie op bij de prompts:
Prompt | Selectie |
---|---|
Een taal selecteren | Kies Python . (v1 programmeertaalmodel) |
Een Python-interpreter selecteren om een virtuele omgeving te maken | Kies de gewenste Python-interpreter. Als er geen optie wordt weergegeven, typt u het volledige pad naar uw binaire Python-bestand. |
Selecteer een sjabloon voor de eerste functie van uw project | Kies Azure Queue Storage trigger . |
Geef een functienaam op | Voer QueueStorageTriggerFunc in. |
Instelling selecteren in 'local.settings.json' | Kies Create new local app settings , waarmee u uw opslagaccount kunt selecteren en de wachtrijnaam kunt opgeven die werkt als de trigger. |
U hebt een Python-functieproject gemaakt met Azure Storage Queue als trigger. Het lokale project maakt verbinding met Azure Storage met behulp van de verbindingsreeks die in het local.settings.json
bestand zijn opgeslagen. Ten slotte kan de main
functie in __init__.py
het bestand van de functie de verbindingsreeks gebruiken met behulp van de functiebinding die in het function.json
bestand is gedefinieerd.
De functie lokaal uitvoeren
Volg de zelfstudie om de functie lokaal uit te voeren en de trigger te verifiëren.
- Selecteer het opslagaccount dat u hebt gekozen bij het maken van de Azure Function-resource als u wordt gevraagd verbinding te maken met opslag. Deze waarde wordt gebruikt voor de runtime van Azure Function en is niet noodzakelijkerwijs hetzelfde als het opslagaccount dat u voor de trigger gebruikt.
- Als u de functie lokaal wilt starten, drukt u op
<kbd>
F5</kbd>
of selecteert u het pictogram Uitvoeren en fouten opsporen in de activiteitenbalk aan de linkerkant. - Als u wilt controleren of de trigger correct werkt, houdt u de functie lokaal actief en opent u het deelvenster Opslagwachtrij in Azure Portal, selecteert u Bericht toevoegen en geeft u een testbericht op. U ziet dat de functie wordt geactiveerd en verwerkt als een wachtrij-item in uw Visual Studio Code-terminal.
Een verbinding maken met serviceconnector
In de laatste stap hebt u het functieproject lokaal gecontroleerd. Nu leert u hoe u de verbinding tussen de Azure-functie en de Azure Storage-wachtrij in de cloud configureert, zodat uw functie kan worden geactiveerd door de opslagwachtrij nadat deze is geïmplementeerd in de cloud.
- Open het
function.json
bestand in uw lokale project, wijzig de waarde van deconnection
eigenschap inbindings
ditAZURE_STORAGEQUEUE_CONNECTIONSTRING
. - Voer de volgende Azure CLI-opdracht uit om een verbinding te maken tussen uw Azure-functie en uw Azure-opslagaccount.
az functionapp connection create storage-queue --source-id "<your-function-resource-id>" --target-id "<your-storage-queue-resource-id>" --secret
--source-id
formatteren:/subscriptions/{subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
--target-id
formatteren:/subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default
Met deze stap maakt u een Service Connector-resource waarmee een AZURE_STORAGEQUEUE_CONNECTIONSTRING
variabele in de app-instellingen van de functie wordt geconfigureerd. De functiebindingsruntime gebruikt deze om verbinding te maken met de opslag, zodat de functie triggers uit de opslagwachtrij kan accepteren. Ga voor meer informatie naar de wijze waarop Service Connector Azure Functions helpt verbinding te maken met services.
Uw functie implementeren in Azure
U kunt uw functie nu implementeren in Azure en controleren of de trigger voor de opslagwachtrij werkt.
- Volg deze Zelfstudie over Azure Functions om uw functie te implementeren in Azure.
- Open het deelvenster Opslagwachtrij in Azure Portal, selecteer Bericht toevoegen en geef een testbericht op. U ziet dat de functie wordt geactiveerd en verwerkt als een wachtrij-item in uw functielogboeken.
Problemen oplossen
Als er fouten zijn met betrekking tot de opslaghost, bijvoorbeeldNo such host is known (<account-name>.queue.core.windows.net:443)
, controleert u of de verbindingsreeks die u gebruikt om verbinding te maken met Azure Storage het wachtrij-eindpunt bevat of niet. Als dit niet het probleem is, gaat u naar Azure Storage in Azure Portal, kopieert u de verbindingsreeks uit het Access keys
deelvenster en vervangt u de waarden.
Als deze fout optreedt wanneer u het project lokaal start, controleert u het local.settings.json
bestand.
Als deze fout optreedt wanneer u uw functie in de cloud implementeert (in dit geval mislukt de implementatie van de functie meestal), Syncing triggers
controleert u de app-instellingen van uw functie.
Resources opschonen
Als u dit project niet meer gaat gebruiken, verwijdert u de functie-app-resource die u eerder hebt gemaakt.
- Open in Azure Portal de functie-app-resource en selecteer Verwijderen.
- Voer de naam van de app in en selecteer Verwijderen om te bevestigen.
Volgende stappen
Lees de onderstaande artikelen voor meer informatie over serviceconnectorconcepten en hoe Azure Functions verbinding maakt met services.