Azure Functions용 Azure SQL 바인딩 개요
이 문서 세트에서는 Azure Functions에서 Azure SQL 바인딩을 사용하는 방법을 설명합니다. Azure Functions는 Azure SQL 및 SQL Server 제품에 대한 입력 바인딩, 출력 바인딩 및 함수 트리거를 지원합니다.
작업 | Type |
---|---|
SQL 테이블에서 변경 내용이 검색되면 함수를 트리거 | SQL 트리거 |
데이터베이스에서 데이터 읽기 | 입력 바인딩 |
데이터베이스에 데이터 저장 | 출력 바인딩 |
확장 설치
설치하는 확장 NuGet 패키지는 함수 앱에서 사용 중인 C# 모드에 따라 다릅니다.
Functions는 격리된 C# 작업자 프로세스에서 실행됩니다. 자세한 내용은 격리된 작업자 프로세스에서 C# Azure Functions 실행 가이드를 참조하세요.
이 NuGet 패키지를 설치하여 프로젝트에 확장을 추가합니다.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql
Microsoft.Azure.Functions.Worker.Extensions.Sql 패키지의 미리 보기 버전을 사용하려면 명령에 플래그를 추가 --prerelease
합니다. Azure Functions SQL 확장 릴리스 페이지에서 미리 보기 기능을 볼 수 있습니다.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql --prerelease
참고 항목
Azure Functions용 Azure SQL 바인딩의 미리 보기 릴리스 간 주요 변경 내용을 변경하려면 동일한 데이터베이스를 대상으로 하는 모든 Functions에서 동일한 버전의 SQL 확장 패키지를 사용해야 합니다.
번들 설치
SQL 바인딩 확장은 v4 확장 번들의 일부이며, 이는 호스트.json 프로젝트 파일에 지정됩니다.
확장 번들은 host.json
파일의 다음 코드로 지정됩니다.
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
함수 런타임
번들 설치
SQL 바인딩 확장은 v4 확장 번들의 일부이며, 이는 호스트.json 프로젝트 파일에 지정됩니다.
확장 번들은 host.json
파일의 다음 코드로 지정됩니다.
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
번들 설치
SQL 바인딩 확장은 v4 확장 번들의 일부이며, 이는 호스트.json 프로젝트 파일에 지정됩니다.
확장 번들은 host.json
파일의 다음 코드로 지정됩니다.
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
패키지 업데이트
다음 코드 조각과 같이 Java Azure Functions 프로젝트의 pom.xml
파일을 업데이트하여 SQL 바인딩을 위한 Java 라이브러리를 Functions 프로젝트에 추가합니다.
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-sql</artifactId>
<version>2.1.0</version>
</dependency>
다음 코드 조각과 같이 Java Azure Functions 프로젝트의 파일에 대한 업데이트 pom.xml
와 함께 미리 보기 확장 번들을 사용할 수 있습니다.
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-sql</artifactId>
<version>2.1.0-preview</version>
</dependency>
SQL 연결 문자열
Important
관리 ID는 Azure Functions를 사용하여 Azure SQL Database에 액세스하는 데 사용하는 것이 좋습니다. 관리 ID는 사용 중인 연결 문자열 자격 증명, 서버 이름 및 포트와 같은 애플리케이션 배포에서 비밀을 제거하여 앱을 더욱 안전하게 만듭니다. 이 자습서 에서는 관리 ID를 사용하는 방법을 알아볼 수 있습니다. 관리 ID 및 SQL 바인딩을 사용하여 함수 앱을 Azure SQL에 연결합니다.
Azure Functions에 대한 Azure SQL 바인딩에는 모든 바인딩 및 트리거에서 연결 문자열 데 필요한 속성이 있습니다. 이러한 연결 문자열 Microsoft.Data.SqlClient 라이브러리에 전달하고 SqlClient ConnectionString 설명서에 정의된 대로 연결 문자열 지원합니다. 주목할 만한 키워드는 다음과 같습니다.
Authentication
는 Active Directory 관리 ID를 포함하여 함수가 Microsoft Entra ID를 사용하여 Azure SQL에 연결할 수 있도록 허용합니다.Command Timeout
은 함수가 쿼리를 종료하기 전에 지정된 시간(초) 동안 대기하도록 허용합니다(기본값 30초).ConnectRetryCount
는 함수가 자동으로 추가 다시 연결 시도를 할 수 있도록 허용하며, 특히 Azure SQL Database 서버리스 계층에 적용할 수 있습니다(기본값 1).Pooling
을 사용하면 함수가 데이터베이스에 대한 연결을 재사용할 수 있으므로 성능이 개선될 수 있습니다(기본값true
). 연결 풀링에 대한 추가 설정에는Connection Lifetime
,Max Pool Size
및Min Pool Size
가 포함됩니다. ADO.NET 설명서에서 연결 풀링에 대해 자세히 알아봅니다.
고려 사항
- Azure SQL 바인딩은 Functions 런타임 버전 4.x 이상을 지원합니다.
- Azure SQL 바인딩에 대한 소스 코드는 이 GitHub 리포지토리에서 찾을 수 있습니다.
- 이 바인딩을 사용하려면 Azure SQL 또는 SQL Server 데이터베이스에 연결해야 합니다.
- 데이터 형식
NTEXT
,TEXT
또는IMAGE
의 열이 있는 테이블에 대한 출력 바인딩은 지원되지 않으며 데이터 upsert는 실패합니다. 이러한 형식은 후속 버전의 SQL Server에서 제거되며 이 Azure Functions 바인딩에서 사용하는OPENJSON
함수와 호환되지 않습니다. - 사용자 이름 및 암호 대신 관리 ID를 사용합니다.
- Azure Key Value를 사용하여 애플리케이션 설정을 저장하는 Concider입니다.
샘플
Azure SQL 바인딩 GitHub 리포지토리에서 사용할 수 있는 C#, Java, JavaScript, PowerShell 및 Python용 샘플 외에도 Azure 샘플에서 더 많은 샘플을 사용할 수 있습니다.
- Azure SQL 바인딩이 포함된 C# ToDo API 샘플
- Azure Stream Analytics에서 SQL 바인딩 사용
- Python을 사용하여 Azure SQL에서 데이터 보내기