Quickstart: Een Python-functie maken in Azure vanaf de opdrachtregel
In dit artikel gebruikt u opdrachtregelprogramma’s om een Python-functie te maken die reageert op HTTP-aanvragen. Nadat u de code lokaal hebt getest, implementeert u deze in de serverloze omgeving van Azure Functions.
In dit artikel wordt gebruikgemaakt van het Python v2-programmeermodel voor Azure Functions, dat een op decorator gebaseerde benadering biedt voor het maken van functies. Zie de naslaghandleiding voor ontwikkelaars voor meer informatie over het Python v2-programmeermodel
Voor het voltooien van deze quickstart worden kosten van een paar dollarcent of minder in rekening gebracht bij uw Azure-account.
Er is ook een visual Studio Code-versie van dit artikel.
Uw lokale omgeving configureren
Voordat u begint, moet u aan de volgende vereisten voldoen:
Een Azure-account met een actief abonnement. Gratis een account maken
Een van de volgende hulpprogramma's voor het maken van Azure-resources:
Azure CLI versie 2.4 of hoger.
De Azure Az PowerShell-module versie 5.9.0 of hoger.
Een Python-versie die wordt ondersteund door Azure Functions.
De Emulator van de Azurite-opslag. Hoewel u ook een werkelijk Azure Storage-account kunt gebruiken, wordt ervan uitgegaan dat u deze emulator gebruikt.
Azure Functions Core Tools installeren
De aanbevolen manier om Core Tools te installeren, is afhankelijk van het besturingssysteem van uw lokale ontwikkelcomputer.
In de volgende stappen wordt een Windows Installer (MSI) gebruikt om Core Tools v4.x te installeren. Zie de leesmij voor Core Tools voor meer informatie over andere installatieprogramma's op basis van pakketten.
Download en voer het Core Tools-installatieprogramma uit op basis van uw versie van Windows:
- v4.x - Windows 64-bits (aanbevolen. Visual Studio Code-foutopsporing vereist 64-bits.)
- v4.x - Windows 32-bits
Als u eerder Windows Installer (MSI) hebt gebruikt om Core Tools in Windows te installeren, moet u de oude versie verwijderen uit Programma's toevoegen voordat u de nieuwste versie installeert.
Gebruik de func --version
opdracht om ervoor te zorgen dat uw versie van Core Tools ten minste 4.0.5530
is.
Een virtuele omgeving maken en activeren
Voer de volgende opdrachten uit in een geschikte map om een virtuele omgeving met de naam .venv
te maken en te activeren. Zorg ervoor dat u een versie van Python gebruikt die wordt ondersteund door Azure Functions.
python -m venv .venv
source .venv/bin/activate
Als Python het venv-pakket niet heeft geïnstalleerd in uw Linux-distributie, voert u de volgende opdracht uit:
sudo apt-get install python3-venv
U voert alle volgende opdrachten uit in deze geactiveerde virtuele omgeving.
Een lokale functie maken
In Azure Functions is een functieproject een container voor een of meer afzonderlijke functies die elk op een bepaalde trigger reageren. Alle functies in een project delen dezelfde lokale configuratie en hostingconfiguratie.
In deze sectie maakt u een functieproject en voegt u een door HTTP geactiveerde functie toe.
Voer de
func init
opdracht als volgt uit om een Python v2 Functions-project te maken in de virtuele omgeving.func init --python
De omgeving bevat nu verschillende bestanden voor het project, waaronder configuratiebestanden met de naam local.settings.json en host.json. Omdat local.settings.json geheimen kan bevatten die zijn gedownload vanuit Azure, wordt het bestand standaard uitgesloten van broncodebeheer in het bestand .gitignore.
Voeg een functie toe aan uw project met behulp van de volgende opdracht, waarbij het argument
--name
de unieke naam van de functie is (HttpExample) en het argument--template
de trigger van de functie (HTTP).func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
Als u hierom wordt gevraagd, kiest u de optie ANONIEM .
func new
voegt een HTTP-triggereindpunt toe met de naamHttpExample
aan hetfunction_app.py
bestand, dat toegankelijk is zonder verificatie.
De functie lokaal uitvoeren
Voer uw functie uit door de lokale Azure Functions-runtimehost te starten vanuit de map LocalFunctionProj .
func start
Aan het einde van de uitvoer moeten de volgende regels worden weergegeven:
Notitie
Als HttpExample niet verschijnt zoals hierboven weergegeven, hebt u waarschijnlijk de host gestart van buiten de hoofdmap van het project. In dat geval gebruikt u Ctrl+C om de host te stoppen, naar de hoofdmap van het project te gaan en de vorige opdracht opnieuw uit te voeren.
Kopieer de URL van uw HTTP-functie van deze uitvoer naar een browser en voeg de querytekenreeks
?name=<YOUR_NAME>
toe, waardoor de volledige URL er alshttp://localhost:7071/api/HttpExample?name=Functions
volgt uitziet. In de browser moet een antwoordbericht worden weergegeven dat de waarde van de querytekenreeks weergeeft. De terminal waarin u uw project hebt gestart, toont ook de logboek uitvoer wanneer u aanvragen doet.Wanneer u klaar bent, drukt u op Ctrl+C en typt
y
u om de functiehost te stoppen.
Ondersteunende Azure-resources maken voor uw functie
Voordat u uw functiecode kunt implementeren in Azure, moet u drie resources maken:
- Een resourcegroep, wat een logische container is voor gerelateerde resources.
- Een opslagaccount dat de status en andere informatie over uw projecten onderhoudt.
- Een functie-app, die de omgeving biedt voor het uitvoeren van uw functiecode. Een functie-app wordt gekoppeld aan uw lokale functieproject en maakt het mogelijk om functies te groeperen als een logische eenheid, zodat u resources eenvoudiger kunt beheren, implementeren en delen.
Gebruik de volgende opdrachten om deze items te maken. Zowel Azure CLI als PowerShell worden ondersteund.
Meld u zo nodig aan bij Azure.
az login
Met de
az login
opdracht meldt u zich aan bij uw Azure-account.Maak een resourcegroep met de naam
AzureFunctionsQuickstart-rg
in uw gekozen regio.az group create --name AzureFunctionsQuickstart-rg --location <REGION>
Met de opdracht az group create maakt u een resourcegroep. Vervang in de bovenstaande opdracht door
<REGION>
een regio bij u in de buurt met behulp van een beschikbare regiocode die wordt geretourneerd met de opdracht az account list-locations .Notitie
Het is niet mogelijk om Linux- en Windows-apps in dezelfde resourcegroep te hosten. Als u een bestaande resourcegroep met de naam
AzureFunctionsQuickstart-rg
hebt die een Windows-functie-app of web-app bevat, moet u een andere resourcegroep gebruiken.Maak een opslagaccount voor algemeen gebruik in uw resourcegroep en regio.
az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS
Met de opdracht az storage account create maakt u het opslagaccount.
Vervang in het vorige voorbeeld door
<STORAGE_NAME>
een naam die geschikt is voor u en uniek in Azure Storage. Namen mogen alleen cijfers van 3 tot 24 tekens en kleine letters bevatten.Standard_LRS
hiermee geeft u een account voor algemeen gebruik dat wordt ondersteund door Functions.Voor het opslagaccount worden gedurende deze quickstart slechts een paar dollarcenten in rekening gebracht.
Maak de functie-app in Azure.
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location westeurope --runtime python --runtime-version <PYTHON_VERSION> --functions-version 4 --name <APP_NAME> --os-type linux --storage-account <STORAGE_NAME>
Maak de functie-app in Azure met behulp van de opdracht az functionapp create. U moet opgeven
--os-type linux
omdat Python-functies alleen worden uitgevoerd op Linux.Vervang in het vorige voorbeeld door
<APP_NAME>
een wereldwijd unieke naam die geschikt is voor u. Het<APP_NAME>
is ook het standaardsubdomein voor de functie-app. Zorg ervoor dat de waarde die u instelt<PYTHON_VERSION>
een versie is die wordt ondersteund door Functions en dat deze dezelfde versie is die u tijdens de lokale ontwikkeling hebt gebruikt.Met deze opdracht maakt u een functie-app die wordt uitgevoerd in de runtime van uw opgegeven taal binnen het Azure Functions-verbruiksplan. Dit is gratis voor het gebruik dat u hier maakt. Met de opdracht maakt u ook een gekoppeld Azure-toepassing Insights-exemplaar in dezelfde resourcegroep, waarmee u uw functie-app kunt bewaken en logboeken kunt bekijken. Zie Monitor Azure Functions (Azure Functions bewaken) voor meer informatie. Er worden pas kosten in rekening gebracht voor de instantie als u deze activeert.
Het functieproject implementeren in Azure
Nadat u uw functie-app in Azure hebt gemaakt, bent u nu klaar om uw lokale functions-project te implementeren met behulp van de func azure functionapp publish
opdracht.
Voer deze func azure functionapp publish
opdracht uit in de hoofdprojectmap:
func azure functionapp publish <APP_NAME>
Vervang in dit voorbeeld door <APP_NAME>
de naam van uw app. Een geslaagde implementatie toont resultaten die vergelijkbaar zijn met de volgende uitvoer (afgekapt voor eenvoud):
... Getting site publishing info... Creating archive for current directory... Performing remote build for functions project. ... Deployment successful. Remote build succeeded! Syncing triggers... Functions in msdocs-azurefunctions-qs: HttpExample - [httpTrigger] Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample
De functie aanroepen in Azure
Omdat uw functie gebruikmaakt van een HTTP-trigger, roept u deze aan door een HTTP-aanvraag naar de URL in de browser of met een hulpprogramma zoals curl.
Kopieer de volledige aanroep-URL die wordt weergegeven in de uitvoer van de publish
opdracht in een adresbalk van de browser, waarbij u de queryparameter ?name=Functions
toevoegt. De browser moet vergelijkbare uitvoer weergeven als u de functie lokaal hebt uitgevoerd.
Resources opschonen
Als u verdergaat met de volgende stap en een uitvoerbinding voor een Azure Storage-wachtrij toevoegt, kunt u alle resources het beste op dezelfde plaats laten staan. U gaat ze namelijk gebruiken in deze stap.
Gebruik anders de volgende opdracht om de resourcegroep en alle bijbehorende resources te verwijderen om te voorkomen dat er verdere kosten in rekening worden gebracht.
az group delete --name AzureFunctionsQuickstart-rg
Volgende stappen
Hebt u problemen met dit artikel?