gebeurtenis
17 mrt, 21 - 21 mrt, 10
Neem deel aan de meetup-serie om schaalbare AI-oplossingen te bouwen op basis van praktijkgebruiksvoorbeelden met collega-ontwikkelaars en experts.
Nu registrerenDeze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
In dit artikel gebruikt u opdrachtregelprogramma’s om een PowerShell-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.
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 Versie op basis van Visual Studio Code van dit artikel.
Voordat u begint, moet u het volgende hebben:
Een Azure-account met een actief abonnement. Gratis een account maken
Een van de volgende hulpprogramma's voor het maken van Azure-resources:
De Azure Az PowerShell-module versie 9.4.0 of hoger.
Azure CLI versie 2.4 of hoger.
De .NET 6.0 SDK
De aanbevolen manier om Core Tools te installeren, is afhankelijk van het besturingssysteem van uw lokale ontwikkelcomputer.
In de volgende stappen wordt APT gebruikt om Core Tools te installeren op uw Ubuntu/Debian Linux-distributie. Zie de leesmij core tools voor andere Linux-distributies.
Installeer de GPG-sleutel van de Microsoft-pakketopslagplaats om pakketintegriteit te valideren:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
Stel de APT-bronlijst in voordat u een APT-update uitvoert.
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-$(lsb_release -cs 2>/dev/null)-prod $(lsb_release -cs 2>/dev/null) main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/debian/$(lsb_release -rs 2>/dev/null | cut -d'.' -f 1)/prod $(lsb_release -cs 2>/dev/null) main" > /etc/apt/sources.list.d/dotnetdev.list'
Controleer het /etc/apt/sources.list.d/dotnetdev.list
bestand op een van de juiste Linux-versietekenreeksen in de volgende tabel:
Linux-distributie | Versie |
---|---|
Debian 12 | bookworm |
Debian 11 | bullseye |
Debian 10 | buster |
Debian 9 | stretch |
Ubuntu 22.04 | jammy |
Ubuntu 20.04 | focal |
Ubuntu 19.04 | disco |
Ubuntu 18.10 | cosmic |
Ubuntu 18.04 | bionic |
Ubuntu 17.04 | zesty |
Ubuntu 16.04/Linux Mint 18 | xenial |
Start de APT-bronupdate:
sudo apt-get update
Installeer het Core Tools-pakket:
sudo apt-get install azure-functions-core-tools-4
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 dat één functie bevat.
Voer de opdracht func init
als volgt uit om een functieproject te maken in een map met de naam LocalFunctionProj met de opgegeven runtime:
func init LocalFunctionProj --powershell
Navigeer naar de projectmap:
cd LocalFunctionProj
Deze map bevat 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"
func new
maakt een submap met de naam van de functie die een codebestand bevat dat geschikt is voor de taal van het project en een configuratiebestand met de naam function.json.
Desgewenst kunt u doorgaan naar De functie lokaal uitvoeren en de inhoud van het bestand later bekijken.
run.ps1 definieert een functiescript die wordt geactiveerd op basis van de configuratie in function.json.
using namespace System.Net
# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)
# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."
# Interact with query parameters or the body of the request.
$name = $Request.Query.Name
if (-not $name) {
$name = $Request.Body.Name
}
$body = "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
if ($name) {
$body = "Hello, $name. This HTTP triggered function executed successfully."
}
# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $body
})
Voor een HTTP-trigger ontvangt de functie aanvraaggegevens die worden verzonden naar de parameter $Request
zoals gedefinieerd in function.json. Het retourobject, gedefinieerd als Response
in function.json, wordt doorgestuurd naar de cmdlet Push-OutputBinding
als reactie.
function.json is een configuratiebestand dat de invoer en uitvoer bindings
definieert voor de functie, met inbegrip van het triggertype.
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"methods": [
"get",
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
}
]
}
Elke binding vereist een richting, een type en een unieke naam. De HTTP-trigger heeft een invoerbinding van het type httpTrigger
en uitvoerbinding van het type http
.
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 als http://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.
Voordat u uw functiecode kunt implementeren in Azure, moet u drie resources maken:
Gebruik de volgende opdrachten om deze items te maken. Zowel Azure CLI als PowerShell worden ondersteund.
Als u dit nog niet hebt gedaan, meldt u zich aan bij Azure:
az login
Met de opdracht az login 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 .
Maak een algemeen opslagaccount in de resourcegroep en regio:
az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS --allow-blob-public-access false
Met de opdracht az storage account create maakt u het opslagaccount.
Vervang <STORAGE_NAME>
in het vorige voorbeeld door een naam die voor u passend is en die uniek is in Azure Storage. Namen mogen drie tot 24 tekens bevatten en u mag alleen kleine letters gebruiken. Met Standard_LRS
geeft u een account voor algemeen gebruik op dat wordt ondersteund door Functions.
Belangrijk
Het opslagaccount wordt gebruikt voor het opslaan van belangrijke app-gegevens, soms inclusief de toepassingscode zelf. U moet de toegang van andere apps en gebruikers tot het opslagaccount beperken.
De functie-app maken in Azure:
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location <REGION> --runtime powershell --functions-version 4 --name <APP_NAME> --storage-account <STORAGE_NAME>
Maak de functie-app in Azure met behulp van de opdracht az functionapp create.
Vervang in het vorige voorbeeld <STORAGE_NAME>
door de naam van het account dat u in de vorige stap hebt gebruikt en vervang <APP_NAME>
door een unieke naam die voor u van betekenis is. De <APP_NAME>
is ook het standaard DNS-domein voor de functie-app.
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 deze opdracht wordt in dezelfde resourcegroep ook een gekoppelde instantie van Azure Application Insights ingericht, waarmee u uw functie-app kunt bewaken en logboeken kunt weergeven. Zie Monitor Azure Functions (Azure Functions bewaken) voor meer informatie. Er worden pas kosten in rekening gebracht voor de instantie als u deze activeert.
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
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 publicatieopdracht naar de adresbalk van een browser en voeg de queryparameter ?name=Functions
toe. De browser moet vergelijkbare uitvoer weergeven als u de functie lokaal hebt uitgevoerd.
Voer de volgende opdracht uit om bijna in realtime stroomlogboeken weer te geven:
func azure functionapp logstream <APP_NAME>
Roep in een afzonderlijk terminalvenster of in de browser opnieuw de externe functie aan. In de terminal wordt een uitgebreid logboek weergegeven van de uitvoering van de functie in Azure.
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
gebeurtenis
17 mrt, 21 - 21 mrt, 10
Neem deel aan de meetup-serie om schaalbare AI-oplossingen te bouwen op basis van praktijkgebruiksvoorbeelden met collega-ontwikkelaars en experts.
Nu registrerenTraining
Leertraject
Leerpad voor het maken van serverloze toepassingen - Training
In dit leertraject ontdekt u Azure Functions die op gebeurtenissen gebaseerde, systemen met on-demand rekenkracht maken met logica aan serverzijde om serverloze architecturen te bouwen.
Certificering
Bouw end-to-end-oplossingen in Microsoft Azure om Azure Functions te maken, web-apps te implementeren en te beheren, oplossingen te ontwikkelen die gebruikmaken van Azure Storage en meer.
Documentatie
Een PowerShell-functie maken met behulp van Visual Studio Code - Azure Functions
Leer hoe u een PowerShell-functie maakt en publiceer vervolgens het lokale project naar serverloze hosting in Azure Functions met behulp van de Azure Functions-extensie in Visual Studio Code.
Resources voor functie-apps maken in Azure met behulp van PowerShell
Azure PowerShell-scripts die laten zien hoe u de Azure-resources maakt die nodig zijn voor het hosten van uw functiecode in Azure.
Naslaginformatie voor PowerShell-ontwikkelaars voor Azure Functions
Meer informatie over het ontwikkelen van functies met behulp van PowerShell.