Skip to content

Commit 80a2afe

Browse files
2 parents db2999b + 5b893f5 commit 80a2afe

File tree

41 files changed

+500
-91
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+500
-91
lines changed

articles/application-insights/app-insights-analytics-using.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ On a timechart, if there is a sudden spike or step in your data, you may see a h
133133
![Analytics diagnostics](./media/app-insights-analytics-using/analytics-diagnostics.png)
134134

135135
## Pin to dashboard
136-
You can pin a diagram or table to one of your [shared dashboards](app-insights-dashboards.md) - just click the pin. (You might need to [upgrade your app's pricing package](app-insights-pricing.md) to turn on this feature.)
136+
You can pin a diagram or table to one of your [shared dashboards](app-insights-dashboards.md) - just click the pin.
137137

138138
![Click the pin](./media/app-insights-analytics-using/pin-01.png)
139139

articles/application-insights/app-insights-asp-net-exceptions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ Exceptions in your live web app are reported by [Application Insights](app-insig
2929
* In some application frameworks or with some settings, you need to take some extra steps to catch more exceptions:
3030
* [Web forms](#web-forms)
3131
* [MVC](#mvc)
32-
* [Web API 1.*](#web-api-1)
33-
* [Web API 2.*](#web-api-2)
32+
* [Web API 1.*](#web-api-1x)
33+
* [Web API 2.*](#web-api-2x)
3434
* [WCF](#wcf)
3535

3636
## Diagnosing exceptions using Visual Studio

articles/azure-functions/functions-dotnet-class-library.md

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ In addition to script files, Azure Functions supports publishing a class library
2727

2828
This article has the following prerequisites:
2929

30-
- [Visual Studio 2017 15.3 Preview](https://www.visualstudio.com/vs/preview/). Install the workloads **ASP.NET and web development** and **Azure development**.
31-
- [Azure Function Tools for Visual Studio 2017](https://marketplace.visualstudio.com/items?itemName=AndrewBHall-MSFT.AzureFunctionToolsforVisualStudio2017)
30+
- [Visual Studio 2017 version 15.3](https://www.visualstudio.com/vs/), or a later version.
31+
- Install the **Azure development** workload.
3232

3333
## Functions class library project
3434

@@ -73,7 +73,7 @@ The following table lists the triggers and bindings that are available in an Azu
7373

7474
Azure Functions supports trigger, input, and output bindings for Azure Blob storage. For more information on binding expressions and metadata, see [Azure Functions Blob storage bindings](functions-bindings-storage-blob.md).
7575

76-
A blob trigger is defined with the `[BlobTrigger]` attribute. You can use the attribute `[StorageAccount]` to define the storage account that is used by an entire function or class.
76+
A blob trigger is defined with the `[BlobTrigger]` attribute. You can use the attribute `[StorageAccount]` to define the app setting name that contains the connection string to the storage account that is used by an entire function or class.
7777

7878
```csharp
7979
[StorageAccount("AzureWebJobsStorage")]
@@ -242,7 +242,7 @@ Azure Functions supports an output binding for Notification Hubs. To learn more,
242242

243243
Azure Functions supports trigger and output bindings for Azure queues. For more information, see [Azure Functions Queue Storage bindings](functions-bindings-storage-queue.md).
244244

245-
The following example shows how to use the function return type with a queue output binding, using the `[Queue]` attribute. To define a queue trigger, use the `[QueueTrigger]` attribute.
245+
The following example shows how to use the function return type with a queue output binding, using the `[Queue]` attribute.
246246

247247
```csharp
248248
[StorageAccount("AzureWebJobsStorage")]
@@ -256,7 +256,15 @@ public static class QueueFunctions
256256
log.Info($"C# function processed: {input.Text}");
257257
return input.Text;
258258
}
259+
}
260+
261+
```
259262

263+
To define a queue trigger, use the `[QueueTrigger]` attribute.
264+
```csharp
265+
[StorageAccount("AzureWebJobsStorage")]
266+
public static class QueueFunctions
267+
{
260268
// Queue trigger
261269
[FunctionName("QueueTrigger")]
262270
[StorageAccount("AzureWebJobsStorage")]
@@ -268,6 +276,7 @@ public static class QueueFunctions
268276

269277
```
270278

279+
271280
<a name="sendgrid"></a>
272281

273282
### SendGrid output

articles/azure-functions/functions-overview.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ ms.devlang: multiple
1515
ms.topic: overview
1616
ms.tgt_pltfrm: multiple
1717
ms.workload: na
18-
ms.date: 02/27/2017
18+
ms.date: 10/03/2017
1919
ms.author: glenga
2020

2121
ms.custom: H1Hack27Feb2017, mvc
@@ -46,6 +46,7 @@ Functions provides templates to get you started with key scenarios, including th
4646
* **TimerTrigger** - Execute cleanup or other batch tasks on a predefined schedule. For an example, see [Create a function triggered by a timer](functions-create-scheduled-function.md).
4747
* **GitHub webhook** - Respond to events that occur in your GitHub repositories. For an example, see [Create a function triggered by a GitHub webhook](functions-create-github-webhook-triggered-function.md).
4848
* **Generic webhook** - Process webhook HTTP requests from any service that supports webhooks. For an example, see [Create a function triggered by a generic webhook](functions-create-generic-webhook-triggered-function.md).
49+
* **CosmosDBTrigger** - Process Azure Cosmos DB documents when they are added or updated in collections in a NoSQL database. For an example, see [Create a function triggered by Azure Cosmos DB](functions-create-cosmos-db-triggered-function.md).
4950
* **BlobTrigger** - Process Azure Storage blobs when they are added to containers. You might use this function for image resizing. For more information, see [Blob storage bindings](functions-bindings-storage-blob.md).
5051
* **QueueTrigger** - Respond to messages as they arrive in an Azure Storage queue. For an example, see [Create a function that connects to other Azure services](functions-create-an-azure-connected-function.md).
5152
* **EventHubTrigger** - Respond to events delivered to an Azure Event Hub. Particularly useful in application instrumentation, user experience or workflow processing, and Internet of Things (IoT) scenarios. For more information, see [Event Hubs bindings](functions-bindings-event-hubs.md).

articles/azure-functions/functions-reference-csharp.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public static string Run(string input, TraceWriter log)
7979

8080
To write multiple values to an output binding, use the [`ICollector`](https://github.com/Azure/azure-webjobs-sdk/blob/master/src/Microsoft.Azure.WebJobs/ICollector.cs) or [`IAsyncCollector`](https://github.com/Azure/azure-webjobs-sdk/blob/master/src/Microsoft.Azure.WebJobs/IAsyncCollector.cs) types. These types are write-only collections that are written to the output binding when the method completes.
8181

82-
This example writes multiple queue messages using `ICollector`:
82+
This example writes multiple queue messages into the same queue using `ICollector`:
8383

8484
```csharp
8585
public static void Run(ICollector<string> myQueueItem, TraceWriter log)
@@ -402,8 +402,7 @@ public static async Task Run(string input, Binder binder)
402402
[BlobAttribute](https://github.com/Azure/azure-webjobs-sdk/blob/master/src/Microsoft.Azure.WebJobs/BlobAttribute.cs)
403403
defines the [Storage blob](functions-bindings-storage-blob.md) input or output binding, and
404404
[TextWriter](https://msdn.microsoft.com/library/system.io.textwriter.aspx) is a supported output binding type.
405-
As is, the code gets the default app setting for the Storage account connection string (which is `AzureWebJobsStorage`). You can specify a
406-
custom app setting to use by adding the
405+
In the previous code sample, the code gets the app setting for the function app's main Storage account connection string (which is `AzureWebJobsStorage`). You can specify a custom app setting to use for the Storage account by adding the
407406
[StorageAccountAttribute](https://github.com/Azure/azure-webjobs-sdk/blob/master/src/Microsoft.Azure.WebJobs/StorageAccountAttribute.cs)
408407
and passing the attribute array into `BindAsync<T>()`. For example,
409408

articles/azure-functions/functions-run-local.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ To set a value for connection strings, you can do one of the following options:
153153
func azure functionapp fetch-app-settings <FunctionAppName>
154154
```
155155
```
156-
func azure functionapp storage fetch-connection-string <StorageAccountName>
156+
func azure storage fetch-connection-string <StorageAccountName>
157157
```
158158
Both commands require you to first sign-in to Azure.
159159

articles/azure-functions/functions-scale.md

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ When you create a function app, you must configure a hosting plan for functions
3434
* How host instances are scaled out.
3535
* The resources that are available to each host.
3636

37-
Currently, you must choose the plan type during the creation of the function app. You can't change it afterward.
37+
Currently, you must choose the type of hosting plan during the creation of the function app. You can't change it afterward.
3838

39-
You can scale between tiers on the App Service plan. On the Consumption plan, Azure Functions automatically handles all resource allocation.
39+
On an App Service plan you can scale between tiers to allocate different amount of resources. On the Consumption plan, Azure Functions automatically handles all resource allocation.
4040

4141
## Consumption plan
4242

@@ -45,26 +45,28 @@ When you're using a Consumption plan, instances of the Azure Functions host are
4545
> [!NOTE]
4646
> The default timeout for functions on a Consumption plan is 5 minutes. The value can be increased to 10 minutes for the Function App by changing the property `functionTimeout` in [host.json](https://github.com/Azure/azure-webjobs-sdk-script/wiki/host.json).
4747
48-
Billing is based on execution time and memory used, and it's aggregated across all functions within a function app. For more information, see the [Azure Functions pricing page].
48+
Billing is based on number of executions, execution time, and memory used. Billing is aggregated across all functions within a function app. For more information, see the [Azure Functions pricing page].
4949

50-
The Consumption plan is the default and offers the following benefits:
50+
The Consumption plan is the default hosting plan and offers the following benefits:
5151
- Pay only when your functions are running.
5252
- Scale out automatically, even during periods of high load.
5353

5454
## App Service plan
5555

56-
In the App Service plan, your function apps run on dedicated VMs on Basic, Standard, Premium, and Isolated SKUs, similar to Web Apps. Dedicated VMs are allocated to your App Service apps, which means the functions host is always running.
56+
In the App Service plan, your function apps run on dedicated VMs on Basic, Standard, Premium, and Isolated SKUs, similar to Web Apps, API Apps, and Mobile Apps. Dedicated VMs are allocated to your App Service apps, which means the functions host is always running.
5757

5858
Consider an App Service plan in the following cases:
5959
- You have existing, underutilized VMs that are already running other App Service instances.
6060
- You expect your function apps to run continuously, or nearly continuously. In this case, an App Service Plan can be more cost-effective.
6161
- You need more CPU or memory options than what is provided on the Consumption plan.
62-
- You need to run longer than the maximum execution time allowed on the Consumption plan.
62+
- You need to run longer than the maximum execution time allowed on the Consumption plan (of 10 minutes).
6363
- You require features that are only available on an App Service plan, such as support for App Service Environment, VNET/VPN connectivity, and larger VM sizes.
6464

65-
A VM decouples cost from both runtime and memory size. As a result, you won't pay more than the cost of the VM instance that you allocate. For details about how the App Service plan works, see the [Azure App Service plans in-depth overview](../app-service/azure-web-sites-web-hosting-plans-in-depth-overview.md).
65+
A VM decouples cost from number of executions, execution time, and memory used. As a result, you won't pay more than the cost of the VM instance that you allocate. For details about how the App Service plan works, see the [Azure App Service plans in-depth overview](../app-service/azure-web-sites-web-hosting-plans-in-depth-overview.md).
6666

67-
With an App Service plan, you can manually scale out by adding more VM instances, or you can enable autoscale. For more information, see [Scale instance count manually or automatically](../monitoring-and-diagnostics/insights-how-to-scale.md?toc=%2fazure%2fapp-service-web%2ftoc.json). You can also scale up by choosing a different App Service plan. For more information, see [Scale up an app in Azure](../app-service/web-sites-scale.md). If you are planning to run JavaScript functions on an App Service plan, you should choose a plan that has fewer cores. For more information, see the [JavaScript reference for Functions](functions-reference-node.md#choose-single-core-app-service-plans).
67+
With an App Service plan, you can manually scale out by adding more VM instances, or you can enable autoscale. For more information, see [Scale instance count manually or automatically](../monitoring-and-diagnostics/insights-how-to-scale.md?toc=%2fazure%2fapp-service-web%2ftoc.json). You can also scale up by choosing a different App Service plan. For more information, see [Scale up an app in Azure](../app-service/web-sites-scale.md).
68+
69+
If you are planning to run JavaScript functions on an App Service plan, you should choose a plan that has fewer cores. For more information, see the [JavaScript reference for Functions](functions-reference-node.md#choose-single-core-app-service-plans).
6870

6971
<!-- Note: the portal links to this section via fwlink https://go.microsoft.com/fwlink/?linkid=830855 -->
7072
<a name="always-on"></a>
@@ -76,33 +78,33 @@ Always On is available only on an App Service plan. On a Consumption plan, the p
7678

7779
## Storage account requirements
7880

79-
On either a Consumption plan or an App Service plan, a function app requires an Azure Storage account that supports Azure Blob, Queue, and Table storage. Internally, Azure Functions uses Azure Storage for operations such as managing triggers and logging function executions. Some storage accounts do not support queues and tables, such as blob-only storage accounts (including premium storage) and general-purpose storage accounts with zone-redundant storage replication. These accounts are filtered from the **Storage Account** blade when you're creating a function app.
81+
On either a Consumption plan or an App Service plan, a function app requires a general Azure Storage account that supports Azure Blob, Queue, Files, and Table storage. Internally, Azure Functions uses Azure Storage for operations such as managing triggers and logging function executions. Some storage accounts do not support queues and tables, such as blob-only storage accounts (including premium storage) and general-purpose storage accounts with zone-redundant storage replication. These accounts are filtered from the **Storage Account** blade when you're creating a function app.
8082

8183
To learn more about storage account types, see [Introducing the Azure Storage services](../storage/common/storage-introduction.md#introducing-the-azure-storage-services).
8284

8385
## How the Consumption plan works
8486

85-
The Consumption plan automatically scales CPU and memory resources by adding additional instances of the Functions host, based on the number of events that its functions are triggered on. Each instance of the Functions host is limited to 1.5 GB of memory.
87+
In the Consumption plan, the scale controller automatically scales CPU and memory resources by adding additional instances of the Functions host, based on the number of events that its functions are triggered on. Each instance of the Functions host is limited to 1.5 GB of memory.
8688

87-
When you use the Consumption hosting plan, function code files are stored on Azure Files shares on the main storage account. When you delete the main storage account, this content is deleted and cannot be recovered.
89+
When you use the Consumption hosting plan, function code files are stored on Azure Files shares on the function's main storage account. When you delete the main storage account of the function app, the function code files are deleted and cannot be recovered.
8890

8991
> [!NOTE]
9092
> When you're using a blob trigger on a Consumption plan, there can be up to a 10-minute delay in processing new blobs if a function app has gone idle. After the function app is running, blobs are processed immediately. To avoid this initial delay, consider one of the following options:
91-
> - Use an App Service plan with Always On enabled.
93+
> - Host the function app on an App Service plan, with Always On enabled.
9294
> - Use another mechanism to trigger the blob processing, such as a queue message that contains the blob name. For an example, see [Queue trigger with blob input binding](functions-bindings-storage-blob.md#input-sample).
9395
9496
### Runtime scaling
9597

9698
Azure Functions uses a component called the *scale controller* to monitor the rate of events and determine whether to scale out or scale in. The scale controller uses heuristics for each trigger type. For example, when you're using an Azure Queue storage trigger, it scales based on the queue length and the age of the oldest queue message.
9799

98-
The unit of scale is the function app. When the function app is scaled out, more resources are allocated to run multiple instances of the Azure Functions host. Conversely, as compute demand is reduced, the scale controller removes function host instances. The number of instances is eventually scaled down to zero when no functions are running within a function app.
100+
The unit of scale is the function app. When the function app is scaled out, additional resources are allocated to run multiple instances of the Azure Functions host. Conversely, as compute demand is reduced, the scale controller removes function host instances. The number of instances is eventually scaled down to zero when no functions are running within a function app.
99101

100102
![Scale controller monitoring events and creating instances](./media/functions-scale/central-listener.png)
101103

102104
### Billing model
103105

104106
Billing for the Consumption plan is described in detail on the [Azure Functions pricing page]. Usage is aggregated at the function app level and counts only the time that function code is executed. The following are units for billing:
105107
* **Resource consumption in gigabyte-seconds (GB-s)**. Computed as a combination of memory size and execution time for all functions within a function app.
106-
* **Executions**. Counted each time a function is executed in response to an event, triggered by a binding.
108+
* **Executions**. Counted each time a function is executed in response to an event trigger.
107109

108110
[Azure Functions pricing page]: https://azure.microsoft.com/pricing/details/functions

0 commit comments

Comments
 (0)