Skip to content

Commit 61746be

Browse files
authored
Merge pull request #220881 from maud-lv/ml-sc-reviewinternals
Review internals article
2 parents d021ea3 + 898b392 commit 61746be

File tree

2 files changed

+57
-42
lines changed

2 files changed

+57
-42
lines changed

articles/service-connector/concept-service-connector-internals.md

Lines changed: 57 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,84 +4,99 @@ description: Learn about Service Connector internals, the architecture, the conn
44
author: maud-lv
55
ms.author: malev
66
ms.service: service-connector
7-
ms.custom: event-tier1-build-2022
7+
ms.custom: event-tier1-build-2022, engagement-fy23
88
ms.topic: conceptual
9-
ms.date: 05/03/2022
9+
ms.date: 12/08/2022
1010
---
1111

1212
# Service Connector internals
1313

14-
Service Connector is an extension resource provider that provides an easy way to create and manage connections between services.
15-
- Support major databases, storage, real-time services, state, and secret stores that are used together with your cloud native application (the list is actively expanding).
16-
- Configure network settings, authentication, and manage connection environment variables or properties by creating a service connection with just a single command or a few steps.
17-
- Validate connections and find corresponding suggestions to fix a service connection.
14+
Service Connector is an Azure extension resource provider designed to provide a simple way to create and manage connections between Azure services.
15+
16+
Service Connector offers the following features:
17+
18+
- Lets you connect Azure services together with a single Azure CLI command or in a few steps using the Azure portal.
19+
- Supports an increasing number of databases, storage, real-time services, state, and secret stores that are used with your cloud native application.
20+
- Configures network settings, authentication, and manages connection environment variables or properties for you.
21+
- Validates connections and provides suggestions to fix faulty connections.
1822

1923
## Service connection overview
2024

21-
Service connection is the key concept in the resource model of Service Connector. In Service Connector, a service connection represents an abstraction of the link between two services. The following properties are defined on service connection.
25+
The concept of *service connection* is a key concept in the resource model of Service Connector. A service connection represents an abstraction of the link between two services. Service connections have the following properties:
2226

23-
| Property | Description |
24-
|--------|-----------|
25-
| Connection Name | The unique name of the service connection. |
26-
| Source Service Type | Source services are usually Azure compute services. Service Connector functionalities can be found in supported compute services by extending these Azure compute service providers. |
27+
| Property | Description |
28+
|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
29+
| Connection Name | The unique name of the service connection. |
30+
| Source Service Type | Source services are usually Azure compute services. These are the services you can connect to target services. Source services include Azure App Service, Azure Container Apps and Azure Spring Apps. |
2731
| Target Service Type | Target services are backing services or dependency services that your compute services connect to. Service Connector supports various target service types including major databases, storage, real-time services, state, and secret stores. |
28-
| Client Type | Client type refers to your compute runtime stack, development framework, or specific client library type, which accepts the specific format of the connection environment variables or properties. |
29-
| Authentication Type | The authentication type used of service connection. It could be pure secret/connection string, Managed Identity, or Service Principal. |
32+
| Client Type | Client type refers to your compute runtime stack, development framework, or specific type of client library that accepts the specific format of the connection environment variables or properties. |
33+
| Authentication Type | The authentication type used for the service connection. It could be a secret/connection string, a managed identity, or a service principal. |
3034

31-
You can create multiple service connections from one source service instance if your instance needs to connect multiple target resources. And the same target resource can be connected from multiple source instances. Service Connector will manage all connections in the properties of their source instance. It means that you can create, get, update, and delete the connections in the Azure portal or using CLI commands of the source service instance.
35+
Source services and target services support multiple simultaneous service connections, which means that you can connect each resource to multiple resources.
3236

33-
Connections can be made across subscriptions or tenants. Source and target services can belong to different subscriptions or tenants. When you create a new service connection, the connection resource is in the same region as your compute service instance by default.
37+
Service Connector manages connections in the properties of the source instance. Creating, getting, updating, and deleting connections is done directly by opening the source service instance in the Azure portal or by using the CLI commands of the source service.
3438

35-
## Create or update a service connection
39+
Connections can be made across subscriptions or tenants, meaning that source and target services can belong to different subscriptions or tenants. When you create a new service connection, the connection resource is created in the same region as your compute service instance by default.
3640

37-
Service Connector will run multiple tasks while creating or updating a connection, including:
41+
## Service connection creation and update
3842

39-
- Configure target resource network and firewall settings, making sure source and target services can talk to each other on the network level.
40-
- Configure connection information on source resource
41-
- Configure authentication information on source and target if needed
42-
- Create or update connection support rollback in case of failure.
43+
Service Connector runs multiple tasks while creating or updating service connections, including:
4344

44-
Creating and updating a connection contains multiple steps. If a step fails, Service Connector will roll back all previous steps to keep the initial settings in the source and target instances.
45+
- Configuring the network and firewall settings
46+
- Configuring connection information
47+
- Configuring authentication information
48+
- Creating or updating connection rollback in case of failure
49+
50+
If a step fails during this process, Service Connector rolls back all previous steps to keep the initial settings in the source and target instances.
4551

4652
## Connection configurations
4753

48-
Once a service connection is created, the connection configuration will be set to the source service.
54+
Connection configurations are set in the source service.
55+
56+
In the Azure portal, open a source service and navigate to **Service Connector**. Expand each connection and view the connection configurations.
4957

50-
In the Azure portal, navigate to **Service Connector**. You can expand each connection and view the connection configurations.
58+
:::image type="content" source="media/internals/connection-details.png" alt-text="Screenshot of the Azure portal showing service connection details.":::
5159

52-
:::image type="content" source="media/tutorial-java-spring-confluent-kafka/portal-list-connection-config.png" alt-text="List portal configuration":::
60+
In the CLI, use the `list-configuration` command to get the connection configurations.
5361

54-
In the CLI, you can use the `list-configuration` command to view the connection configuration.
62+
```azurecli
63+
az webapp connection list-configuration --resource-group <source-service-resource-group> --name <source-service-name> --connection <connection-name>
64+
```
5565

5666
```azurecli
57-
az webapp connection list-configuration -g {webapp_rg} -n {webapp_name} --connection {service_connection_name}
67+
az spring connection list-configuration --resource-group <source-service-resource-group> --name <source-service-name> --connection <connection-name>
5868
```
5969

6070
```azurecli
61-
az spring-cloud connection list-configuration -g {spring_cloud_rg} -n {spring_cloud_name} --connection {service_connection_name}
71+
az containerapp connection list-configuration --resource-group <source-service-resource-group> --name <source-service-name> --connection <connection-name>
6272
```
6373

6474
## Configuration naming convention
6575

66-
Service Connector sets the configuration (environment variables or Spring Boot configurations) when creating a connection. The environment variable key-value pair(s) are determined by your client type and authentication type. For example, using the Azure SDK with managed identity requires a client ID, client secret, etc. Using JDBC driver requires a database connection string. Follow this convention to name the configuration:
76+
Service Connector sets the connection configuration when creating a connection. The environment variable key-value pairs are determined by your client type and authentication type. For example, using the Azure SDK with a managed identity requires a client ID, client secret, etc. Using a JDBC driver requires a database connection string. Follow the conventions below to name the configurations:
77+
78+
- Spring Boot client: the Spring Boot library for each target service has its own naming convention. For example, MySQL connection settings would be `spring.datasource.url`, `spring.datasource.username`, `spring.datasource.password`. Kafka connection settings would be `spring.kafka.properties.bootstrap.servers`.
79+
80+
- Other clients:
81+
- The key name of the first connection configuration uses the format `<Cloud>_<Type>_<Name>`. For example, `AZURE_STORAGEBLOB_RESOURCEENDPOINT`, `CONFLUENTCLOUD_KAFKA_BOOTSTRAPSERVER`.
82+
- For the same type of target resource, the key name of the second connection configuration uses the format `<Cloud>_<Type>_<Connection Name>_<Name>`. For example, `AZURE_STORAGEBLOB_CONN2_RESOURCEENDPOINT`, `CONFLUENTCLOUD_KAFKA_CONN2_BOOTSTRAPSERVER`.
6783

68-
If you're using **Spring Boot** as the client type:
84+
## Service connection validation
6985

70-
* Spring Boot library for each target service has its own naming convention. For example, MySQL connection settings would be `spring.datasource.url`, `spring.datasource.username`, `spring.datasource.password`. Kafka connection settings would be `spring.kafka.properties.bootstrap.servers`.
86+
When validating a connection, Service connector checks the following elements:
7187

72-
If you're using **other client types**, except for Spring Boot:
88+
- The source and target resources exist.
89+
- Source: correct connection information is registered.
90+
- Target: correct network and firewall settings are registered.
91+
- Source and target resources: correct authentication information is registered.
7392

74-
* When connect to a target service, the key name of the first connection configuration is in format as `{Cloud}_{Type}_{Name}`. For example, `AZURE_STORAGEBLOB_RESOURCEENDPOINT`, `CONFLUENTCLOUD_KAFKA_BOOTSTRAPSERVER`.
75-
* For the same type of target resource, the key name of the second connection configuration will be format as `{Cloud}_{Type}_{Connection Name}_{Name}`. For example, `AZURE_STORAGEBLOB_CONN2_RESOURCEENDPOINT`, `CONFLUENTCLOUD_KAFKA_CONN2_BOOTSTRAPSERVER`.
93+
## Connection deletion
7694

77-
## Validate a service connection
78-
The following items will be checked while validating the connection:
95+
When a service connection is deleted, the connection information is also deleted.
7996

80-
* Validate whether source and target resources exist
81-
* Validate target resource network and firewall settings
82-
* Validate connection information on source resource
83-
* Validate authentication information on source and target if needed
97+
## Next steps
8498

85-
## Delete connection
99+
Go to the concept article below to learn more about Service Connector.
86100

87-
The connection information on source resource will be deleted when deleting connection.
101+
> [!div class="nextstepaction"]
102+
> [High availability](./concept-availability.md)
58.6 KB
Loading

0 commit comments

Comments
 (0)