Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В data-source
разделе определяются сведения о доступе к базе данных. Он также определяет параметры базы данных.
Параметры источника данных
Property | Description |
---|---|
data-source | Объект, содержащий параметры подключения к базе данных |
data-source.database-type | База данных, используемая в серверной части: mssql , postgresql , mysql cosmosdb_nosql cosmosdb_postgresql |
data-source.connection-string | Строка подключения для выбранного типа базы данных |
data-source.options | Свойства, относящиеся к базе данных (например, параметры SQL Server, Cosmos DB и т. д.) |
data-source.options.database | Имя базы данных Azure Cosmos DB для NoSQL (необходимо, если database-type = cosmosdb_nosql ) |
data-source.options.container | Имя контейнера Azure Cosmos DB для NoSQL (необходимо, если database-type = cosmosdb_nosql ) |
data-source.options.schema | Путь к файлу схемы GraphQL (необходимо, если database-type = cosmosdb_nosql ) |
data-source.options.set-session-context | Включает отправку утверждений веб-маркера JSON (JWT) в качестве контекста сеанса (только SQL Server) |
data-source.health | Настройка проверок работоспособности для источника данных |
data-source.health.enabled | Включает конечную точку проверки работоспособности |
data-source.health.name | Идентификатор, используемый в отчете о работоспособности |
data-source.health.threshold-ms | Максимальная длительность в миллисекундах для запроса проверки работоспособности |
Format overview
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
// mssql only
"set-session-context": <true> (default) | <false>,
// cosmosdb_nosql only
"database": <string>,
"container": <string>,
"schema": <string>
},
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
},
"data-source-files": ["<string>"]
}
Data source
Parent | Property | Type | Required | Default |
---|---|---|---|---|
$root |
database-source |
object | ✔️ Yes | - |
Nested properties
Parent | Property | Type | Required | Default |
---|---|---|---|---|
data-source |
database-type |
enum | ✔️ Yes | None |
data-source |
connection-string |
string | ✔️ Yes | None |
data-source |
options |
object | ❌ Нет | None |
Property values
database-type |
Description | Min Version |
---|---|---|
mssql |
SQL в Fabric | - |
mssql |
База данных SQL Azure | - |
mssql |
Azure SQL MI | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Fabric Warehouse | - |
dwsql |
Конечная точка Аналитики SQL Fabric | - |
postgresql |
PostgreSQL | ver. 11 |
mysql |
MySQL | ver. 8 |
cosmosdb_nosql |
Azure Cosmos DB для NoSQL | - |
cosmosdb_postgresql |
Azure Cosmos DB для PostgreSQL | - |
Format
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
"<key-name>": <string>
}
}
}
Пример: SQL Azure и SQL Server
"data-source": {
"database-type": "mssql",
"connection-string": "Server=tcp:myserver.database.windows.net,1433;Initial Catalog=MyDatabase;User ID=MyUser;Password=MyPassword;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;",
"options": {
"set-session-context": true
}
}
Note
We use SqlClient
for Azure SQL and SQL Server, which supports these connection strings variants.
Потребляющий SESSION_CONTEXT
Для SQL Azure и SQL Server построитель API данных может включать сведения о утверждениях SESSION_CONTEXT
в SQL.
CREATE PROC GetUser @userId INT AS
BEGIN
-- Use claims
IF SESSION_CONTEXT(N'user_role') = 'admin'
BEGIN
RAISERROR('Unauthorized access', 16, 1);
END
SELECT Id, Name, Age, IsAdmin
FROM Users
WHERE Id = @userId;
END;
Пример: Azure Cosmos DB
"data-source": {
"database-type": "cosmosdb_nosql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"options": {
"database": "Your_CosmosDB_Database_Name",
"container": "Your_CosmosDB_Container_Name",
"schema": "Path_to_Your_GraphQL_Schema_File"
}
}
Note
Указанные параметры (database
, container
и schema
) относятся к Azure Cosmos DB.
Environment variables
Используйте переменные среды для сохранения секретов обычного текста из файла конфигурации.
Tip
Построитель данных поддерживает оба @env()
файла function.env](../reference-functions.md#env) and [
.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Connection resiliency
Построитель данных использует экспоненциальную обратную передачу для повторных запросов к базе данных после временных ошибок.
Attempts | First | Second | Third | Fourth | Fifth |
---|---|---|---|---|---|
Seconds | 2s | 4s | 8s | 16s | 32s |
Удостоверения управляемых служб (MSI)
Управляемые удостоверения службы (MSI) поддерживаются в DefaultAzureCredential
Azure.Identity
библиотеке. Дополнительные сведения об управляемых удостоверениях в Microsoft Entra для SQL Azure.
User-Assigned управляемых удостоверений (UAMI)
For User Assigned Managed Identity, append the Authentication and User Id properties to your connection string while substituting in your User Assigned Managed Identity's client id: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;
.
управляемое удостоверение System-Assigned (SAMI)
For System Assigned Managed Identity, append the Authentication property and exclude the UserId and Password arguments from your connection string: Authentication=Active Directory Managed Identity;
.
Работоспособности (источник данных)
Parent | Property | Type | Required | Default |
---|---|---|---|---|
data-source |
health |
object | No | – |
Построитель данных поддерживает несколько файлов конфигурации, каждый из которых имеет собственный источник данных. Этот блок конфигурации позволяет каждому источнику данных иметь собственную конфигурацию работоспособности.
Nested properties
Parent | Property | Type | Required | Default |
---|---|---|---|---|
data-source.health |
enabled |
boolean | No | true |
data-source.health |
name |
string | No | database-type |
data-source.health |
threshold-ms |
integer | No | 1000 |
Check name
Так как несколько файлов конфигурации могут указывать на источники данных одного типа, эти источники данных не могут отличаться в отчете о работоспособности. Используется name
для назначения уникальной идентифицируемой метки, используемой только в отчете о работоспособности.
Check behavior
Самый простой запрос, характерный для типа базы данных, выполняется в заданном источнике данных, чтобы убедиться, что подключение можно открыть.
threshold-ms
Используйте свойство, чтобы настроить максимальную допустимую длительность (в миллисекундах) для завершения этого запроса.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}