Skip to content

Commit 67752cf

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into rolyon-rbac-pim-integration-conversion-powershell
2 parents ece8577 + e6a428b commit 67752cf

File tree

109 files changed

+1346
-922
lines changed

Some content is hidden

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

109 files changed

+1346
-922
lines changed

articles/api-management/api-management-howto-disaster-recovery-backup-restore.md

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ author: dlepow
77

88
ms.service: azure-api-management
99
ms.topic: how-to
10-
ms.date: 01/31/2023
10+
ms.date: 09/06/2024
1111
ms.author: danlep
1212
ms.custom: devx-track-azurepowershell
1313
---
@@ -129,6 +129,38 @@ Backup-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $api
129129

130130
Backup is a long-running operation that may take several minutes to complete. During this time the API gateway continues to handle requests, but the state of the service is Updating.
131131

132+
### [CLI](#tab/cli)
133+
134+
[Sign in](/cli/azure/authenticate-azure-cli) with Azure CLI.
135+
136+
In the following examples:
137+
138+
* An API Management instance named *myapim* is in resource group *apimresourcegroup*.
139+
* A storage account named *backupstorageaccount* is in resource group *storageresourcegroup*. The storage account has a container named *backups*.
140+
* A backup blob will be created with name *ContosoBackup.apimbackup*.
141+
142+
Set variables in Bash:
143+
144+
```azurecli-interactive
145+
apiManagementName="myapim";
146+
apiManagementResourceGroup="apimresourcegroup";
147+
storageAccountName="backupstorageaccount";
148+
storageResourceGroup="storageresourcegroup";
149+
containerName="backups";
150+
backupName="ContosoBackup.apimbackup";
151+
```
152+
153+
### Access using storage access key
154+
155+
```azurecli-interactive
156+
storageKey=$(az storage account keys list --resource-group $storageResourceGroup --account-name $storageAccountName --query [0].value --output tsv)
157+
158+
az apim backup --resource-group $apiManagementResourceGroup --name $apiManagementName \
159+
--storage-account-name $storageAccountName --storage-account-key $storageKey --storage-account-container $containerName --backup-name $backupName
160+
```
161+
162+
Backup is a long-running operation that may take several minutes to complete. During this time the API gateway continues to handle requests, but the state of the service is Updating.
163+
132164
### [REST](#tab/rest)
133165

134166
See [Azure REST API reference](/rest/api/azure/) for information about authenticating and calling Azure REST APIs.
@@ -261,6 +293,35 @@ Restore-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $ap
261293

262294
Restore is a long-running operation that may take up to 45 minutes or more to complete.
263295

296+
### [CLI](#tab/cli)
297+
298+
In the following examples,
299+
300+
* An API Management instance named *myapim* is restored from the backup blob named *ContosoBackup.apimbackup* in storage account *backupstorageaccount*.
301+
* The backup blob is in a container named *backups*.
302+
303+
Set variables in Bash:
304+
305+
```azurecli-interactive
306+
apiManagementName="myapim";
307+
apiManagementResourceGroup="apimresourcegroup";
308+
storageAccountName="backupstorageaccount";
309+
storageResourceGroup="storageresourcegroup";
310+
containerName="backups";
311+
backupName="ContosoBackup.apimbackup"
312+
```
313+
314+
### Access using storage access key
315+
316+
```azurecli-interactive
317+
storageKey=$(az storage account keys list --resource-group $storageResourceGroup --account-name $storageAccountName --query [0].value --output tsv)
318+
319+
az apim restore --resource-group $apiManagementResourceGroup --name $apiManagementName \
320+
--storage-account-name $storageAccountName --storage-account-key $storageKey --storage-account-container $containerName --backup-name $backupName
321+
```
322+
323+
Restore is a long-running operation that may take up to 45 minutes or more to complete.
324+
264325
### [REST](#tab/rest)
265326

266327
To restore an API Management service from a previously created backup, make the following HTTP request:
Loading
Loading
83.3 KB
Loading

articles/azure-boost/overview.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Azure Boost contains several features that can improve the performance and secur
2424

2525
- **Networking:** Azure Boost includes a suite of software and hardware networking systems that provide a significant boost to both network performance (Up to 200-Gbps network bandwidth) and network security. Azure Boost compatible virtual machine hosts contain the new [Microsoft Azure Network Adapter (MANA)](../../articles/virtual-network/accelerated-networking-mana-overview.md). Learn more about [Azure Boost networking](../../articles/azure-boost/overview.md#networking).
2626

27-
- **Storage:** Storage operations are offloaded to the Azure Boost FPGA. This offload provides leading efficiency and performance while improving security, reducing jitter, and improving latency for workloads. Local storage now runs at up to 17.3-GBps and 3.8 million IOPS with remote storage up to 12.5-GBps throughput and 650 K IOPS. Learn more about [Azure Boost Storage](../../articles/azure-boost/overview.md#storage).
27+
- **Storage:** Storage operations are offloaded to the Azure Boost FPGA. This offload provides leading efficiency and performance while improving security, reducing jitter, and improving latency for workloads. Local storage now runs at up to 26-GBps and 6.6 million IOPS with remote storage up to 14-GBps throughput and 750 K IOPS. Learn more about [Azure Boost Storage](../../articles/azure-boost/overview.md#storage).
2828

2929
- **Security:** Azure Boost uses [Cerberus](../security/fundamentals/project-cerberus.md) as an independent HW Root of Trust to achieve NIST 800-193 certification. Customer workloads can't run on Azure Boost powered architecture unless the firmware and software running on the system is trusted. Learn more about [Azure Boost Security](../../articles/azure-boost/overview.md#security).
3030

@@ -52,11 +52,11 @@ Consistent updates and performance enhancements ensures you're always a step ahe
5252
## Storage
5353
Azure Boost architecture offloads storage covering local, remote and cached disks that provide leading efficiency and performance while improving security, reducing jitter & improving latency for workloads. Azure Boost already provides acceleration for workloads in the fleet using remote storage including specialized workloads such as the Ebsv5 VM types. Also, these improvements provide potential cost saving for customers by consolidating existing workload into fewer or smaller sized VMs.
5454

55-
Azure Boost delivers industry leading throughput performance at up to 12.5-GBps throughput and 650K IOPS. This performance is enabled by accelerated storage processing and exposing NVMe disk interfaces to VMs. Storage tasks are offloaded from the host processor to dedicated programmable Azure Boost hardware in our dynamically programmable FPGA. This architecture allows us to update the FPGA hardware in the fleet enabling continuous delivery for our customers.
55+
Azure Boost delivers industry leading throughput performance at up to 14-GBps throughput and 750K IOPS. This performance is enabled by accelerated storage processing and exposing NVMe disk interfaces to VMs. Storage tasks are offloaded from the host processor to dedicated programmable Azure Boost hardware in our dynamically programmable FPGA. This architecture allows us to update the FPGA hardware in the fleet enabling continuous delivery for our customers.
5656

5757
:::image type="content" source="./media/boost-storage-nvme-vs-scsi.png" alt-text="Diagram showing the difference between managed SCSI storage and Azure Boost's managed NVMe storage.":::
5858

59-
By fully applying Azure Boost architecture, we deliver remote, local, and cached disk performance improvements at up to 17-GBps throughput and 3.8M IOPS. Azure Boost SSDs are designed to provide high performance optimized encryption at rest, and minimal jitter to NVMe local disks for Azure VMs with local disks.
59+
By fully applying Azure Boost architecture, we deliver remote, local, and cached disk performance improvements at up to 26-GBps throughput and 6.6M IOPS. Azure Boost SSDs are designed to provide high performance optimized encryption at rest, and minimal jitter to NVMe local disks for Azure VMs with local disks.
6060

6161
:::image type="content" source="./media/boost-storage-ssd-comparison.png" alt-text="Diagram showing the difference between local SCSI SSDs and Azure Boost's local NVMe SSDs.":::
6262

articles/azure-cache-for-redis/cache-azure-active-directory-for-authentication.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ The following table includes links to code samples. They demonstrate how to conn
147147
| Client library | Language | Link to sample code|
148148
|----|----|----|
149149
| StackExchange.Redis | .NET | [StackExchange.Redis code sample](https://github.com/Azure/Microsoft.Azure.StackExchangeRedis) |
150+
| go-redis | Go | [go-redis code sample](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#example-package-Redis) |
150151
| redis-py | Python | [redis-py code sample](https://aka.ms/redis/aad/sample-code/python) |
151152
| Jedis | Java | [Jedis code sample](https://aka.ms/redis/aad/sample-code/java-jedis) |
152153
| Lettuce | Java | [Lettuce code sample](https://aka.ms/redis/aad/sample-code/java-lettuce) |

articles/azure-functions/dedicated-plan.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn about the benefits of running Azure Functions on a dedicated
44
ms.topic: conceptual
55
ms.custom:
66
- build-2024
7-
ms.date: 01/26/2023
7+
ms.date: 10/16/2024
88
---
99

1010
# Dedicated hosting plans for Azure Functions
@@ -27,9 +27,12 @@ You pay for function apps in an App Service Plan as you would for other App Serv
2727

2828
## <a name="always-on"></a> Always On
2929

30-
If you run on an App Service plan, you should enable the **Always on** setting so that your function app runs correctly. On an App Service plan, the functions runtime goes idle after a few minutes of inactivity, so only HTTP triggers will "wake up" your functions. The **Always on** setting is available only on an App Service plan. On a Consumption plan, the platform activates function apps automatically.
30+
When you run your app on an App Service plan, you should enable the **Always on** setting so that your function app runs correctly. On an App Service plan, the Functions runtime goes idle after a few minutes of inactivity. The **Always on** setting is available only on an App Service plan. In other plans, the platform activates function apps automatically. If you choose not to enable **Always on**, you can reactivate an idled app in these ways:
3131

32-
Even with Always On enabled, the execution timeout for individual functions is controlled by the `functionTimeout` setting in the [host.json](functions-host-json.md#functiontimeout) project file.
32+
+ Send a request to an HTTP trigger endpoint or any other endpoint on the app. Even a failed request should wake up your app.
33+
+ Acccess your app in the [Azure portal](https://portal.azure.com).
34+
35+
Even with **Always on** enabled, the execution timeout for individual functions is controlled by the `functionTimeout` setting in the [host.json](functions-host-json.md#functiontimeout) project file.
3336

3437
## Scaling
3538

articles/azure-functions/functions-bindings-azure-mysql-input.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,7 @@ const { app, input } = require('@azure/functions');
547547
const mysqlInput = input.generic({
548548
type: 'mysql',
549549
commandText: 'select * from Products where Cost = @Cost',
550+
parameters: '@Cost={Cost}',
550551
commandType: 'Text',
551552
connectionStringSetting: 'MySqlConnectionString'
552553
})

articles/azure-functions/functions-bindings-azure-mysql-output.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -411,13 +411,13 @@ The [configuration](#configuration) section explains these properties.
411411
The following example is sample JavaScript code:
412412

413413
```javascript
414-
module.exports = async function (context, req, products) {
414+
module.exports = async function (context, req, product) {
415415
context.log('JavaScript HTTP trigger and MySQL output binding function processed a request.');
416416

417417
context.res = {
418418
// status: 200, /* Defaults to 200 */
419419
mimetype: "application/json",
420-
body: products
420+
body: product
421421
};
422422
}
423423
```

articles/azure-functions/functions-consumption-costs.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,42 +10,30 @@ ms.custom:
1010

1111
# Estimating consumption-based costs
1212

13-
This article shows you how to estimate plan costs for the Consumption and Flex Consumption hosting plans.
13+
This article shows you how to estimate plan costs for the Flex Consumption and Consumption hosting plans.
1414

15-
Azure Functions currently offers four different hosting plans for your function apps, with each plan having its own pricing model:
15+
Azure Functions currently offers these different hosting options for your function apps, with each option having its own hosting plan pricing model:
1616

1717
| Plan | Description |
1818
| ---- | ----------- |
19-
| [**Consumption**](consumption-plan.md) | You're only charged for the time that your function app runs. This plan includes a [free grant][pricing page] on a per subscription basis.|
20-
| [**Flex Consumption plan**](flex-consumption-plan.md)| You pay for execution time on the instances on which your functions are running, plus any _always ready_ instances. Instances are dynamically added and removed based on the number of incoming events. Also supports virtual network integration. |
19+
| [**Flex Consumption plan**](flex-consumption-plan.md)| You pay for execution time on the instances on which your functions are running, plus any _always ready_ instances. Instances are dynamically added and removed based on the number of incoming events. This is the recommended dynamic scale plan, which also supports virtual network integration. |
2120
| [**Premium**](functions-premium-plan.md) | Provides you with the same features and scaling mechanism as the Consumption plan, but with enhanced performance and virtual network integration. Cost is based on your chosen pricing tier. To learn more, see [Azure Functions Premium plan](functions-premium-plan.md). |
2221
| [**Dedicated (App Service)**](dedicated-plan.md) <br/>(basic tier or higher) | When you need to run in dedicated VMs or in isolation, use custom images, or want to use your excess App Service plan capacity. Uses [regular App Service plan billing](https://azure.microsoft.com/pricing/details/app-service/). Cost is based on your chosen pricing tier.|
22+
| [**Container Apps**](functions-container-apps-hosting.md) | Create and deploy containerized function apps in a fully managed environment hosted by Azure Container Apps, which lets you rRun your functions alongside other microservices, APIs, websites, and workflows as container-hosted programs. |
23+
| [**Consumption**](consumption-plan.md) | You're only charged for the time that your function app runs. This plan includes a [free grant][pricing page] on a per subscription basis.|
2324

2425
[!INCLUDE [functions-flex-preview-note](../../includes/functions-flex-preview-note.md)]
2526

26-
You should always choose the plan that best supports the feature, performance, and cost requirements for your function executions. To learn more, see [Azure Functions scale and hosting](functions-scale.md).
27+
You should always choose the option that best supports the feature, performance, and cost requirements for your function executions. To learn more, see [Azure Functions scale and hosting](functions-scale.md).
2728

28-
This article focuses on Consumption and Flex Consumption plans because in these plans billing depends on active periods of executions inside each instance.
29+
This article focuses on Flex Consumption and Consumption plans because in these plans billing depends on active periods of executions inside each instance.
2930

3031
Durable Functions can also run in both of these plans. To learn more about the cost considerations when using Durable Functions, see [Durable Functions billing](./durable/durable-functions-billing.md).
3132

3233
## Consumption-based costs
3334

3435
The way that consumption-based costs are calculated, including free grants, depends on the specific plan. For the most current cost and grant information, see the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/).
3536

36-
### [Consumption plan](#tab/consumption-plan)
37-
38-
The execution *cost* of a single function execution is measured in *GB-seconds*. Execution cost is calculated by combining its memory usage with its execution time. A function that runs for longer costs more, as does a function that consumes more memory.
39-
40-
Consider a case where the amount of memory used by the function stays constant. In this case, calculating the cost is simple multiplication. For example, say that your function consumed 0.5 GB for 3 seconds. Then the execution cost is `0.5GB * 3s = 1.5 GB-seconds`.
41-
42-
Since memory usage changes over time, the calculation is essentially the integral of memory usage over time. The system does this calculation by sampling the memory usage of the process (along with child processes) at regular intervals. As mentioned on the [pricing page], memory usage is rounded up to the nearest 128-MB bucket. When your process is using 160 MB, you're charged for 256 MB. The calculation takes into account concurrency, which is multiple concurrent function executions in the same process.
43-
44-
> [!NOTE]
45-
> While CPU usage isn't directly considered in execution cost, it can have an impact on the cost when it affects the execution time of the function.
46-
47-
For an HTTP-triggered function, when an error occurs before your function code begins to execute you aren't charged for an execution. This means that 401 responses from the platform due to API key validation or the App Service Authentication / Authorization feature don't count against your execution cost. Similarly, 5xx status code responses aren't counted when they occur in the platform before your function processes the request. A 5xx response generated by the platform after your function code has started to execute is still counted as an execution, even when the error isn't raised from your function code.
48-
4937
### [Flex Consumption plan](#tab/flex-consumtion-plan)
5038

5139
[!INCLUDE [functions-flex-consumption-billing-table](../../includes/functions-flex-consumption-billing-table.md)]
@@ -94,6 +82,19 @@ In a situation like this, the pricing depends more on the kind of work being don
9482

9583
In this scenario, the total hourly cost of running on-demand on a single instance is `$0.1152 + $0.0288 = $0.144 USD`.
9684

85+
### [Consumption plan](#tab/consumption-plan)
86+
87+
The execution _cost_ of a single function execution is measured in _GB-seconds_. Execution cost is calculated by combining its memory usage with its execution time. A function that runs for longer costs more, as does a function that consumes more memory.
88+
89+
Consider a case where the amount of memory used by the function stays constant. In this case, calculating the cost is simple multiplication. For example, say that your function consumed 0.5 GB for 3 seconds. Then the execution cost is `0.5GB * 3s = 1.5 GB-seconds`.
90+
91+
Since memory usage changes over time, the calculation is essentially the integral of memory usage over time. The system does this calculation by sampling the memory usage of the process (along with child processes) at regular intervals. As mentioned on the [pricing page], memory usage is rounded up to the nearest 128-MB bucket. When your process is using 160 MB, you're charged for 256 MB. The calculation takes into account concurrency, which is multiple concurrent function executions in the same process.
92+
93+
> [!NOTE]
94+
> While CPU usage isn't directly considered in execution cost, it can have an impact on the cost when it affects the execution time of the function.
95+
96+
For an HTTP-triggered function, when an error occurs before your function code begins to execute you aren't charged for an execution. This means that 401 responses from the platform due to API key validation or the App Service Authentication / Authorization feature don't count against your execution cost. Similarly, 5xx status code responses aren't counted when they occur in the platform before your function processes the request. A 5xx response generated by the platform after your function code has started to execute is still counted as an execution, even when the error isn't raised from your function code.
97+
9798
---
9899

99100
## Other related costs

0 commit comments

Comments
 (0)