Skip to content

Commit 3ae70bc

Browse files
authored
Merge pull request #179901 from MicrosoftDocs/master
Merge master to live, 4 AM
2 parents cfdead9 + ba579fc commit 3ae70bc

36 files changed

+1124
-663
lines changed

.openpublishing.redirection.azure-web-pubsub.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,6 @@
44
"source_path_from_root": "/articles/azure-web-pubsub/howto-troubleshoot-diagnostic-logs.md",
55
"redirect_url": "/azure/azure-web-pubsub/howto-troubleshoot-resource-logs",
66
"redirect_document_id": false
7-
},
8-
{
9-
"source_path_from_root": "/articles/azure-web-pubsub/reference-server-sdk-csharp.md",
10-
"redirect_url": "/dotnet/api/overview/azure/webpubsub/client",
11-
"redirect_document_id": false
12-
},
13-
{
14-
"source_path_from_root": "/articles/azure-web-pubsub/reference-server-sdk-java.md",
15-
"redirect_url": "/java/api/overview/azure/webpubsub/client",
16-
"redirect_document_id": false
177
}
188
]
199
}

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26376,6 +26376,11 @@
2637626376
"redirect_url": "/azure/sentinel/data-connectors-reference#zscaler",
2637726377
"redirect_document_id": false
2637826378
},
26379+
{
26380+
"source_path_from_root": "/articles/sentinel/watchlist-with-rest-api.md",
26381+
"redirect_url": "/rest/api/securityinsights/watchlists",
26382+
"redirect_document_id": false
26383+
},
2637926384
{
2638026385
"source_path_from_root": "/articles/service-bus/index.md",
2638126386
"redirect_url": "/azure/service-bus-messaging/index",

articles/aks/concepts-security.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ To limit network traffic between pods in your cluster, AKS offers support for [K
130130

131131
## Application Security
132132

133-
To protect pods running on AKS leverage [Azure Defender for Kubernetes][azure-defender-for-kubernetes] to detect and restrict cyber attacks against your applications running in your pods. Run continual scanning to detect drift in the vulnerability state of your application and implement a "blue/green/canary" process to patch and replace the vulnerable images.
133+
To protect pods running on AKS leverage [Microsoft Defender for Kubernetes][azure-defender-for-kubernetes] to detect and restrict cyber attacks against your applications running in your pods. Run continual scanning to detect drift in the vulnerability state of your application and implement a "blue/green/canary" process to patch and replace the vulnerable images.
134134

135135

136136
## Kubernetes Secrets

articles/automation/overview.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,10 @@ Depending on your requirements, one or more of the following Azure services inte
111111

112112
These Azure services can work with Automation job and runbook resources using an HTTP webhook or API method:
113113

114-
* [Azure Logic Apps](/connectors/built-in.md)
115-
* [Azure Power Apps](/connectors/azureautomation.md)
114+
* [Azure Logic Apps](/azure/connectors/built-in)
115+
* [Azure Power Apps](/connectors/azureautomation)
116116
* [Azure Event Grid](../event-grid/handler-webhooks.md)
117-
* [Azure Power Automate](/connectors/azureautomation.md)
117+
* [Azure Power Automate](/connectors/azureautomation)
118118

119119
[!INCLUDE [azure-lighthouse-supported-service](../../includes/azure-lighthouse-supported-service.md)]
120120

@@ -125,4 +125,4 @@ You can review the prices associated with Azure Automation on the [pricing](http
125125
## Next steps
126126

127127
> [!div class="nextstepaction"]
128-
> [Create an Automation account](./quickstarts/create-account-portal.md)
128+
> [Create an Automation account](./quickstarts/create-account-portal.md)

articles/azure-monitor/logs/logicapp-flow-connector.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ For example, you can create a logic app to use Azure Monitor log data in an emai
1616

1717
## Connector limits
1818
The Azure Monitor Logs connector has these limits:
19-
* Max query response size ~16.7 MB MB (16 MiB). Connector infrastructure dictates that limit is set lower than query API limit
19+
* Max query response size ~16.7 MB (16 MiB). Connector infrastructure dictates that limit is set lower than query API limit
2020
* Max number of records: 500,000
2121
* Max query timeout 110 second
2222
* Chart visualizations could be available in Logs page and missing in the connector since the connector and Logs page don't use the same charting libraries currently

articles/azure-monitor/logs/logs-data-export.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ Log Analytics workspace data export continuously exports data from a Log Analyti
6969
- West US 2
7070

7171
## Data completeness
72-
Data export will continue to retry sending data for up to 30 minutes if the destination is unavailable. If it's still unavailable after 30 minutes, data will be discarded until the destination becomes available.
72+
Data export is optimized for moving large data volume to your destinations and in certain retry conditions, can include a fraction of duplicated records. The export operation to your destination could fail when ingress limits are reached, see details under [Create or update data export rule](#create-or-update-data-export-rule). Export continues to retry for up to 30 minutes and if destination is unavailable to accept data, data will be discarded until the destination becomes available.
7373

7474
## Cost
7575
Currently, there are no additional charges for the data export feature. Pricing for data export will be announced in the future and a notice period provided prior to the start of billing. If you choose to continue using data export after the notice period, you will be billed at the applicable rate.
5.21 KB
Loading
6.41 KB
Loading

articles/azure-web-pubsub/quickstart-serverless.md

Lines changed: 60 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -66,27 +66,26 @@ In this tutorial, you learn how to:
6666
func init --worker-runtime dotnet
6767
```
6868

69-
1. Install `Microsoft.Azure.WebJobs.Extensions.WebPubSub` function extension package explicitly.
69+
2. *Install `Microsoft.Azure.WebJobs.Extensions.WebPubSub` function extension package.
7070

71-
1. Remove `extensionBundle` section in `host.json` to enable install specific extension package in next step. Or simply make host json as simple a below.
71+
> [!NOTE]
72+
> The step will be optional when [Extension bundles](/azure/azure-functions/functions-bindings-register#extension-bundles) are supported.
7273

73-
```json
74-
{
74+
a. Remove `extensionBundle` section in `host.json` to enable install specific extension package in next step. Or simply make host json as simple a below.
75+
```json
76+
{
7577
"version": "2.0"
76-
}
77-
```
78-
79-
1. Run command to install specific function extension package.
80-
81-
```bash
82-
func extensions install --package Microsoft.Azure.WebJobs.Extensions.WebPubSub --version 1.0.0-beta.3
83-
```
78+
}
79+
```
80+
b. Run command to install specific function extension package.
81+
```bash
82+
func extensions install --package Microsoft.Azure.WebJobs.Extensions.WebPubSub --version 1.0.0
83+
```
8484

85-
1. Create an `index` function to read and host a static web page for clients.
85+
3. Create an `index` function to read and host a static web page for clients.
8686
```bash
8787
func new -n index -t HttpTrigger
8888
```
89-
9089
# [JavaScript](#tab/javascript)
9190
- Update `index/function.json` and copy following json codes.
9291
```json
@@ -113,18 +112,26 @@ In this tutorial, you learn how to:
113112
- Update `index/index.js` and copy following codes.
114113
```js
115114
var fs = require('fs');
115+
var path = require('path');
116+
116117
module.exports = function (context, req) {
117-
fs.readFile('index.html', 'utf8', function (err, data) {
118+
var index = 'index.html';
119+
if (process.env["HOME"] != null)
120+
{
121+
index = path.join(process.env["HOME"], "site", "wwwroot", index);
122+
}
123+
context.log("index.html path: " + index);
124+
fs.readFile(index, 'utf8', function (err, data) {
118125
if (err) {
119-
console.log(err);
120-
context.done(err);
126+
console.log(err);
127+
context.done(err);
121128
}
122129
context.res = {
123-
status: 200,
124-
headers: {
125-
'Content-Type': 'text/html'
126-
},
127-
body: data
130+
status: 200,
131+
headers: {
132+
'Content-Type': 'text/html'
133+
},
134+
body: data
128135
};
129136
context.done();
130137
});
@@ -137,15 +144,21 @@ In this tutorial, you learn how to:
137144
[FunctionName("index")]
138145
public static IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous)] HttpRequest req)
139146
{
147+
string indexFile = "index.html";
148+
if (Environment.GetEnvironmentVariable("HOME") != null)
149+
{
150+
indexFile = Path.Join(Environment.GetEnvironmentVariable("HOME"), "site", "wwwroot", indexFile);
151+
}
152+
log.LogInformation($"index.html path: {indexFile}.");
140153
return new ContentResult
141154
{
142-
Content = File.ReadAllText("index.html"),
155+
Content = File.ReadAllText(indexFile),
143156
ContentType = "text/html",
144157
};
145158
}
146159
```
147160
148-
1. Create a `negotiate` function to help clients get service connection url with access token.
161+
4. Create a `negotiate` function to help clients get service connection url with access token.
149162
```bash
150163
func new -n negotiate -t HttpTrigger
151164
```
@@ -199,7 +212,7 @@ In this tutorial, you learn how to:
199212
}
200213
```
201214
202-
2. Create a `message` function to broadcast client messages through service.
215+
5. Create a `message` function to broadcast client messages through service.
203216
```bash
204217
func new -n message -t HttpTrigger
205218
```
@@ -215,15 +228,14 @@ In this tutorial, you learn how to:
215228
{
216229
"type": "webPubSubTrigger",
217230
"direction": "in",
218-
"name": "message",
219-
"dataType": "binary",
231+
"name": "data",
220232
"hub": "simplechat",
221233
"eventName": "message",
222234
"eventType": "user"
223235
},
224236
{
225237
"type": "webPubSub",
226-
"name": "webPubSubEvent",
238+
"name": "actions",
227239
"hub": "simplechat",
228240
"direction": "out"
229241
}
@@ -232,15 +244,15 @@ In this tutorial, you learn how to:
232244
```
233245
- Update `message/index.js` and copy following codes.
234246
```js
235-
module.exports = async function (context, message) {
236-
context.bindings.webPubSubEvent = {
237-
"operationKind": "sendToAll",
238-
"message": `[${context.bindingData.connectionContext.userId}] ${message}`,
247+
module.exports = async function (context, data) {
248+
context.bindings.actions = {
249+
"actionName": "sendToAll",
250+
"data": `[${context.bindingData.request.connectionContext.userId}] ${data}`,
239251
"dataType": context.bindingData.dataType
240252
};
241-
// MessageResponse directly return to caller
253+
// UserEventResponse directly return to caller
242254
var response = {
243-
"message": '[SYSTEM] ack.',
255+
"data": '[SYSTEM] ack.',
244256
"dataType" : "text"
245257
};
246258
return response;
@@ -251,26 +263,25 @@ In this tutorial, you learn how to:
251263
- Update `message.cs` and replace `Run` function with following codes.
252264
```c#
253265
[FunctionName("message")]
254-
public static async Task<MessageResponse> Run(
255-
[WebPubSubTrigger(WebPubSubEventType.User, "message")] ConnectionContext context,
256-
BinaryData message,
257-
MessageDataType dataType,
258-
[WebPubSub(Hub = "simplechat")] IAsyncCollector<WebPubSubOperation> operations)
266+
public static async Task<UserEventResponse> Run(
267+
[WebPubSubTrigger(WebPubSubEventType.User, "message")] UserEventRequest request,
268+
BinaryData data,
269+
WebPubSubDataType dataType,
270+
[WebPubSub(Hub = "simplechat")] IAsyncCollector<WebPubSubAction> actions)
259271
{
260-
await operations.AddAsync(new SendToAll
261-
{
262-
Message = BinaryData.FromString($"[{context.UserId}] {message.ToString()}"),
263-
DataType = dataType
264-
});
265-
return new MessageResponse
272+
await actions.AddAsync(WebPubSubAction.CreateSendToAllAction(
273+
BinaryData.FromString($"[{request.ConnectionContext.UserId}] {message.ToString()}"),
274+
dataType
275+
);
276+
return new UserEventResponse
266277
{
267-
Message = BinaryData.FromString("[SYSTEM] ack"),
268-
DataType = MessageDataType.Text
278+
Data = BinaryData.FromString("[SYSTEM] ack"),
279+
DataType = WebPubSubDataType.Text
269280
};
270281
}
271282
```
272283
273-
3. Add the client single page `index.html` in the project root folder and copy content as below.
284+
6. Add the client single page `index.html` in the project root folder and copy content as below.
274285
```html
275286
<html>
276287
<body>
@@ -384,7 +395,7 @@ Use the following commands to create these items.
384395
385396
## Configure the Web PubSub service `Event Handler`
386397
387-
In this sample, we're using `WebPubSubTrigger` to listen to service upstream message requests. So Web PubSub need to know the function's endpoint information in order to send target client requests. And Azure Function App requires a system key for security regarding extension-specific webhook methods. In the previous step after we deployed the Function App with `message` functions, we're able to get the system key.
398+
In this sample, we're using `WebPubSubTrigger` to listen to service upstream requests. So Web PubSub need to know the function's endpoint information in order to send target client requests. And Azure Function App requires a system key for security regarding extension-specific webhook methods. In the previous step after we deployed the Function App with `message` functions, we're able to get the system key.
388399
389400
Go to **Azure portal** -> Find your Function App resource -> **App keys** -> **System keys** -> **`webpubsub_extension`**. Copy out the value as `<APP_KEY>`.
390401

0 commit comments

Comments
 (0)