Skip to content

Commit 4b3ed72

Browse files
Merge pull request #291845 from spelluru/relayfreshness1211
Azure Relay freshness review
2 parents 92ac95a + aaa0eb7 commit 4b3ed72

9 files changed

+62
-59
lines changed

articles/azure-relay/includes/trusted-services.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
author: spelluru
33
ms.service: azure-relay
44
ms.topic: include
5-
ms.date: 06/26/2023
5+
ms.date: 12/11/2024
66
ms.author: spelluru
77
---
88

@@ -11,11 +11,11 @@ When you enable the **Allow trusted Microsoft services to bypass this firewall**
1111

1212
| Trusted service | Supported usage scenarios |
1313
| --------------- | ------------------------- |
14-
| Azure Machine Learning | AML Kubernetes uses Azure Relay to facilitate communication between AML services and the Kubernetes cluster. Azure Relay is a fully managed service that provides secure bi-directional communication between applications hosted on different networks. This makes it ideal for use in private link environments, where communication between Azure resources and on-premises resources is restricted. |
15-
| Azure Arc | Azure Arc-enabled services associated with the Resource Providers above will be able to connect to the hybrid connections in your Azure Relay namespace as a sender without being blocked by the IP firewall rules set on the Azure Relay namespace. `Microsoft.Hybridconnectivity` service creates the hybrid connections in your Azure Relay namespace and provides the connection information to the relevant Arc service based on the scenario. These services communicate only with your Azure Relay namespace if you're using Azure Arc, with the following Azure Services: <br/><br> - Azure Kubernetes<br/> - Azure Machine Learning <br/> - Microsoft Purview |
14+
| Azure Machine Learning | AML Kubernetes uses Azure Relay to facilitate communication between AML services and the Kubernetes cluster. Azure Relay is a fully managed service that provides secure bi-directional communication between applications hosted on different networks. This feature makes it ideal for use in private link environments, where communication between Azure resources and on-premises resources is restricted. |
15+
| Azure Arc | Azure Arc-enabled services associated with the resource providers can connect to the hybrid connections in your Azure Relay namespace as a sender without being blocked by the IP firewall rules set on the Azure Relay namespace. `Microsoft.Hybridconnectivity` service creates the hybrid connections in your Azure Relay namespace and provides the connection information to the relevant Arc service based on the scenario. These services communicate only with your Azure Relay namespace if you're using Azure Arc, with the following Azure Services: <br/><br> - Azure Kubernetes<br/> - Azure Machine Learning <br/> - Microsoft Purview |
1616

1717

18-
The other trusted services for Azure Relay can be found below:
18+
The other trusted services for Azure Relay are:
1919
- Azure Event Grid
2020
- Azure IoT Hub
2121
- Azure Stream Analytics
@@ -35,7 +35,7 @@ The other trusted services for Azure Relay can be found below:
3535
> "trustedServiceAccessEnabled": "True"
3636
> ```
3737
38-
For example, based on the ARM template provided above, we can modify it to include this Network Rule Set property for the enablement of Trusted Services:
38+
For example, based on the ARM template provided, you can modify it to include this Network Rule Set property for the enablement of Trusted Services:
3939
4040
```json
4141
{

articles/azure-relay/relay-hybrid-connections-http-requests-dotnet-get-started.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
---
2-
title: Azure Relay Hybrid Connections - HTTP requests in .NET
3-
description: Write a C# console application for Azure Relay Hybrid Connections HTTP requests in .NET.
2+
title: Hybrid Connections - HTTP requests in .NET
3+
description: Provides step-by-step instructions to create a C# console application for Azure Relay Hybrid Connections HTTP requests in .NET.
44
ms.topic: tutorial
55
ms.custom: devx-track-csharp, mode-ui, mode-api, devx-track-dotnet
6-
ms.date: 08/10/2023
6+
ms.date: 12/11/2024
7+
# Customer intent: I want to learn how to create a .NET app to send and receive messages by using the HTTP protocol.
78
---
89

9-
# Get started with Relay Hybrid Connections HTTP requests in .NET
10+
# Tutorial: Get started with Relay Hybrid Connections HTTP requests in .NET
1011
[!INCLUDE [relay-selector-hybrid-connections](./includes/relay-selector-hybrid-connections.md)]
1112

1213
In this quickstart, you create .NET sender and receiver applications that send and receive messages by using the HTTP protocol. The applications use Hybrid Connections feature of Azure Relay. To learn about Azure Relay in general, see [Azure Relay](relay-what-is-it.md).
@@ -52,9 +53,8 @@ In Visual Studio, write a C# console application to send messages to the relay.
5253
1. Run the client application. You see `hello!` in the client window. The client sent an HTTP request to the server, and server responded with a `hello!`.
5354
3. Now, to close the console windows, press **ENTER** in both the console windows.
5455
55-
Congratulations, you've created a complete Hybrid Connections application!
5656
57-
## Next steps
57+
## Related content
5858
5959
In this quickstart, you created .NET client and server applications that used HTTP to send and receive messages. The Hybrid Connections feature of Azure Relay also supports using WebSockets to send and receive messages. To learn how to use WebSockets with Azure Relay Hybrid Connections, see the [WebSockets quickstart](relay-hybrid-connections-dotnet-get-started.md).
6060

articles/azure-relay/relay-hybrid-connections-node-ws-api-overview.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
title: Overview of the Azure Relay Node APIs | Microsoft Docs
33
description: This article provides an overview of the Node.js API for the Azure Relay service. It also shows how to use the hyco-ws Node package.
44
ms.topic: article
5-
ms.date: 08/10/2023
5+
ms.date: 12/11/2024
66
ms.custom: devx-track-js
77
---
88

99
# Relay Hybrid Connections Node.js API overview
1010

1111
## Overview
1212

13-
The [`hyco-ws`](https://www.npmjs.com/package/hyco-ws) Node package for Azure Relay Hybrid Connections is built on and extends the [`ws`](https://www.npmjs.com/package/ws) NPM package. This package re-exports all exports of that base package and adds new exports that enable integration with the Azure Relay service Hybrid Connections feature.
13+
The [`hyco-ws`](https://www.npmjs.com/package/hyco-ws) Node package for Azure Relay Hybrid Connections is built on and extends the [`ws`](https://www.npmjs.com/package/ws) Node Package Manager (npm) package. This package re-exports all exports of that base package and adds new exports that enable integration with the Azure Relay service Hybrid Connections feature.
1414

1515
Existing applications that `require('ws')` can use this package with `require('hyco-ws')` instead, which also enables hybrid scenarios in which an application can listen for WebSocket connections locally from "inside the firewall" and via Hybrid Connections, all at the same time.
1616

@@ -123,17 +123,17 @@ Constructor arguments:
123123

124124
#### Events
125125

126-
`RelayedServer` instances emit three events that enable you to handle incoming requests, establish connections, and detect error conditions. You must subscribe to the `connect` event to handle messages.
126+
`RelayedServer` instances emit three events that enable you to handle incoming requests, establish connections, and detect the error conditions. You must subscribe to the `connect` event to handle messages.
127127

128-
##### headers
128+
##### Headers
129129

130130
```JavaScript
131131
function(headers)
132132
```
133133

134134
The `headers` event is raised just before an incoming connection is accepted, enabling modification of the headers to send to the client.
135135

136-
##### connection
136+
##### Connection
137137

138138
```JavaScript
139139
function(socket)
@@ -142,7 +142,7 @@ function(socket)
142142
Emitted when a new WebSocket connection is accepted. The object is of type `ws.WebSocket`, same as with the base package.
143143

144144

145-
##### error
145+
##### Error
146146

147147
```JavaScript
148148
function(error)

articles/azure-relay/relay-hybrid-connections-protocol.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Azure Relay Hybrid Connections protocol guide | Microsoft Docs
33
description: This article describes the client-side interactions with the Hybrid Connections relay for connecting clients in listener and sender roles.
44
ms.topic: article
5-
ms.date: 08/10/2023
5+
ms.date: 12/11/2024
66
---
77

88
# Azure Relay Hybrid Connections protocol
@@ -12,7 +12,7 @@ platform. The new _Hybrid Connections_ capability of Relay is a secure,
1212
open-protocol evolution based on HTTP and WebSockets. It supersedes the former,
1313
equally named _BizTalk Services_ feature that was built on a proprietary
1414
protocol foundation. The integration of Hybrid Connections into Azure App
15-
Services will continue to function as-is.
15+
Services continue to function as-is.
1616

1717
Hybrid Connections enables bi-directional, request-response, and binary stream communication, and
1818
simple datagram flow between two networked applications. Either or
@@ -42,8 +42,8 @@ to be accepted for establishing a bi-directional communication path. "Connect,"
4242
"Listen," and "Accept" are the same terms you find in most socket APIs.
4343

4444
Any relayed communication model has either party making outbound connections
45-
towards a service endpoint. This makes the "listener" also a "client" in
46-
colloquial use, and may also cause other terminology overloads. The precise
45+
towards a service endpoint. It makes the "listener" also a "client" in
46+
colloquial use, and might also cause other terminology overloads. The precise
4747
terminology therefore used for Hybrid Connections is as follows:
4848

4949
The programs on both sides of a connection are called "clients," since they're
@@ -115,8 +115,8 @@ The listener can respond to HTTP requests using an equivalent response gesture.
115115
The request/response flow uses the control channel by default, but can be
116116
"upgraded" to a distinct rendezvous WebSocket whenever required. Distinct
117117
WebSocket connections improve throughput for each client conversation, but they
118-
burden the listener with more connections that need to be handled, which may
119-
not be desire able for lightweight clients.
118+
burden the listener with more connections that need to be handled, which might
119+
not be desirable for lightweight clients.
120120

121121
On the control channel, request and response bodies are limited to at most 64 kB
122122
in size. HTTP header metadata is limited to a total of 32 kB. If either the
@@ -125,7 +125,7 @@ to a rendezvous WebSocket using a gesture equivalent to handling the
125125
[Accept](#accept-message).
126126

127127
For requests, the service decides whether to route requests over the control
128-
channel. This includes, but may not be limited to cases where a request exceeds
128+
channel. It includes, but might not be limited to cases where a request exceeds
129129
64 kB (headers plus body) outright, or if the request is sent with ["chunked"
130130
transfer-encoding](https://tools.ietf.org/html/rfc7230#section-4.1) and the
131131
service has reason to expect for the request to exceed 64 kB or reading the
@@ -145,17 +145,17 @@ response over the established rendezvous socket.
145145

146146
Once the rendezvous WebSocket has been established, the listener SHOULD
147147
maintain it for further handling of requests and responses from the same
148-
client. The service will maintain the WebSocket for as long as the HTTPS socket
149-
connection with the sender persists and will route all subsequent requests from
148+
client. The service maintains the WebSocket for as long as the HTTPS socket
149+
connection with the sender persists and routes all subsequent requests from
150150
that sender over the maintained WebSocket. If the listener chooses to drop the
151-
rendezvous WebSocket from its side, the service will also drop the connection
151+
rendezvous WebSocket from its side, the service also drops the connection
152152
to the sender, irrespective of whether a subsequent request might already be
153153
in progress.
154154

155155
#### Renew operation
156156

157157
The security token that must be used to register the listener and maintain the
158-
control channel may expire while the listener is active. The token expiry doesn't affect ongoing connections, but it does cause the control channel to be
158+
control channel might expire while the listener is active. The token expiry doesn't affect ongoing connections, but it does cause the control channel to be
159159
dropped by the service at or soon after the moment of expiry. The "renew"
160160
operation is a JSON message that the listener can send to replace the token
161161
associated with the control channel, so that the control channel can be
@@ -164,7 +164,7 @@ maintained for extended periods.
164164
#### Ping operation
165165

166166
If the control channel stays idle for a long time, intermediaries on the way,
167-
such as load balancers or NATs may drop the TCP connection. The "ping"
167+
such as load balancers or NATs might drop the TCP connection. The "ping"
168168
operation avoids that by sending a small amount of data on the channel that
169169
reminds everyone on the network route that the connection is meant to be alive,
170170
and it also serves as a "live" test for the listener. If the ping fails, the
@@ -279,7 +279,7 @@ The query string parameter options are as follows.
279279
If the WebSocket connection fails due to the Hybrid Connection path not being
280280
registered, or an invalid or missing token, or some other error, the error
281281
feedback is provided using the regular HTTP 1.1 status feedback model. The
282-
status description contains an error tracking-id that can be communicated to
282+
status description contains an error tracking ID that can be communicated to
283283
Azure support personnel:
284284

285285
| Code | Error | Description
@@ -308,7 +308,7 @@ The "accept" notification is sent by the service to the listener over the
308308
previously established control channel as a JSON message in a WebSocket text
309309
frame. There's no reply to this message.
310310

311-
The message contains a JSON object named "accept", which defines the following
311+
The message contains a JSON object named `accept`, which defines the following
312312
properties at this time:
313313

314314
* **address** – the URL string to be used for establishing the WebSocket to the
@@ -362,7 +362,7 @@ following parameters:
362362
Connection on which to register this listener. This expression is appended to the
363363
fixed `$hc/` path portion.
364364

365-
The `path` expression may be extended with a suffix and a query string
365+
The `path` expression might be extended with a suffix and a query string
366366
expression that follows the registered name after a separating forward slash.
367367
This parameter enables the sender client to pass dispatch arguments to the accepting
368368
listener when it isn't possible to include HTTP headers. The expectation is
@@ -430,7 +430,7 @@ The `request` consists of two parts: a header and binary body frame(s).
430430
If there's no body, the body frames are omitted. The boolean `body` property indicates whether a body is present in the request
431431
message.
432432

433-
For a request with a request body, the structure may look like this:
433+
For a request with a request body, the structure might look like this:
434434

435435
``` text
436436
----- Web Socket text frame ----
@@ -522,7 +522,7 @@ The JSON content for `request` is as follows:
522522
The receiver MUST respond. Repeated failure to respond to requests while
523523
maintaining the connection might result in the listener getting blocked.
524524

525-
Responses may be sent in any order, but each request must be responded to
525+
Responses might be sent in any order, but each request must be responded to
526526
within 60 seconds or the delivery will be reported as having failed. The
527527
60-second deadline is counted until the `response` frame has been received
528528
by the service. An ongoing response with multiple binary frames can't
@@ -532,15 +532,15 @@ If the request is received over the control channel, the response MUST
532532
either be sent on the control channel from where the request was received
533533
or it MUST be sent over a rendezvous channel.
534534

535-
The response is a JSON object named "response". The rules for handling
535+
The response is a JSON object named `response`. The rules for handling
536536
body content are exactly like with the `request` message and based on
537537
the `body` property.
538538

539539
* **requestId** – string. REQUIRED. The `id` property value of the `request` message being
540540
responded to.
541541
* **statusCode** – number. REQUIRED. a numerical HTTP status code that indicates the outcome of
542542
the notification. All status codes of [RFC7231, Section 6](https://tools.ietf.org/html/rfc7231#section-6)
543-
are permitted, except for [502 "Bad Gateway"](https://tools.ietf.org/html/rfc7231#section-6.6.3) and [504 "Gateway Timeout"](https://tools.ietf.org/html/rfc7231#section-6.6.5).
543+
are permitted, except for [502 "Bad Gateway"](https://tools.ietf.org/html/rfc7231#section-6.6.3) and [504 - Gateway Timeout](https://tools.ietf.org/html/rfc7231#section-6.6.5).
544544
* **statusDescription** - string. OPTIONAL. HTTP status-code reason phrase per [RFC7230, Section 3.1.2](https://tools.ietf.org/html/rfc7230#section-3.1.2)
545545
* **responseHeaders** – HTTP headers to be set in an external HTTP reply.
546546
As with the `request`, RFC7230 defined headers MUST NOT be used.
@@ -658,7 +658,7 @@ The query string parameter options are as follows:
658658
extended with a suffix and a query string expression to communicate further. If
659659
the Hybrid Connection is registered under the path `hyco`, the `path`
660660
expression can be `hyco/suffix?param=value&...` followed by the query string
661-
parameters defined here. A complete expression may then be as follows:
661+
parameters defined here. A complete expression might then be as follows:
662662

663663
```
664664
wss://{namespace-address}/$hc/hyco/suffix?param=value&sb-hc-action=...[&sb-hc-id=...&]sb-hc-token=...

articles/azure-relay/relay-metrics-azure-monitor.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Azure Relay metrics in Azure Monitor | Microsoft Docs
33
description: This article provides information on how you can use Azure Monitor to monitor to state of Azure Relay.
44
services: service-bus-relay
55
ms.topic: article
6-
ms.date: 08/10/2023
6+
ms.date: 12/11/2024
77
---
88

99
# Azure Relay metrics in Azure Monitor
@@ -32,7 +32,7 @@ For metrics supporting dimensions, you must filter with the desired dimension va
3232

3333
## Billing
3434

35-
Using metrics in Azure Monitor is currently free while in preview. However, if you use additional solutions that ingest metrics data, you may be billed by these solutions. For example, you're billed by Azure Storage if you archive metrics data to an Azure Storage account. You're also billed by Azure Monitor logs if you stream metrics data to Azure Monitor logs for advanced analysis.
35+
Using metrics in Azure Monitor is currently free while in preview. However, if you use additional solutions that ingest metrics data, you might be billed by these solutions. For example, you're billed by Azure Storage if you archive metrics data to an Azure Storage account. You're also billed by Azure Monitor logs if you stream metrics data to Azure Monitor logs for advanced analysis.
3636

3737
The following metrics give you an overview of the health of your service.
3838

articles/azure-relay/relay-port-settings.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Azure Relay port settings | Microsoft Docs
33
description: This article includes a table that describes the required configuration for port values for Azure Relay.
44
ms.topic: article
5-
ms.date: 08/10/2023
5+
ms.date: 12/11/2024
66
---
77

88
# Azure Relay port settings
@@ -11,9 +11,9 @@ The following table describes the required configuration for port values for Azu
1111

1212
## Hybrid Connections
1313

14-
Hybrid Connections uses WebSockets on port 443 with TLS as the underlying transport mechanism, which uses **HTTPS** only.
14+
Hybrid Connections uses WebSockets on port 443 with Transport Layer Security (TLS) as the underlying transport mechanism, which uses **HTTPS** only.
1515

16-
## WCF Relays
16+
## Windows Communication Foundation (WCF) Relays
1717

1818
|Binding|Transport Security|Port|
1919
|-------------|------------------------|----------|

0 commit comments

Comments
 (0)