다음을 통해 공유


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 SizeMin 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 샘플에서 더 많은 샘플을 사용할 수 있습니다.

다음 단계