-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update the example and fix two bugs in worker #34
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,21 @@ | ||
# Invoked with Invoke-RestMethod: | ||
# irm http://localhost:7071/api/MyHttpTrigger?Name=Tyler | ||
# Input bindings are added via param block | ||
|
||
param($req, $TriggerMetadata) | ||
|
||
# If no name was passed by query parameter | ||
$name = 'World' | ||
Write-Verbose "PowerShell HTTP trigger function processed a request." -Verbose | ||
|
||
# You can interact with query parameters, the body of the request, etc. | ||
if($req.Query.Name) { | ||
if($req.Query.Name -or $req.Body.Name) { | ||
$name = $req.Query.Name | ||
} | ||
|
||
# you can write to the same streams as you would in a normal PowerShell script | ||
Write-Verbose "Verbose $name" -Verbose | ||
Write-Warning "Warning $name" | ||
if (-not $name) { $name = $req.Body.Name } | ||
|
||
# items in the pipeline get logged | ||
$name | ||
$status = 200 | ||
$body = "Hello " + $name | ||
} | ||
else { | ||
$status = 400 | ||
$body = "Please pass a name on the query string or in the request body." | ||
} | ||
|
||
# You set the value of your output bindings by assignment `$nameOfOutputBinding = 'foo'` | ||
Push-OutputBinding -Name res -Value ([HttpResponseContext]@{ | ||
Body = @{ Hello = $name } | ||
ContentType = 'application/json' | ||
StatusCode = $status | ||
Body = $body | ||
}) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -113,12 +113,14 @@ internal Hashtable InvokeFunction( | |
{ | ||
// Log everything we received from the pipeline and set the last one to be the ReturnObject | ||
Collection<PSObject> pipelineItems = _pwsh.InvokeAndClearCommands<PSObject>(); | ||
foreach (var psobject in pipelineItems) | ||
if (pipelineItems.Count > 0) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this is needed? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's for the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. good catch! |
||
{ | ||
_logger.Log(LogLevel.Information, $"OUTPUT: {psobject.ToString()}"); | ||
foreach (var psobject in pipelineItems) | ||
{ | ||
_logger.Log(LogLevel.Information, $"OUTPUT: {psobject.ToString()}"); | ||
} | ||
returnObject = pipelineItems[pipelineItems.Count - 1]; | ||
} | ||
|
||
returnObject = pipelineItems[pipelineItems.Count - 1]; | ||
} | ||
|
||
var result = _pwsh.AddCommand("Azure.Functions.PowerShell.Worker.Module\\Get-OutputBinding") | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel like we should keep in some comments for the more "Azure Functions-y" concepts like
Push-OutputBinding
, the param block relation to the input bindings, etc.It will help our customers with getting started without having to dig through too many docs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That makes sense. Will add the comments back.