Azure Functions에 대 한 Azure Blob 저장소 입력 바인딩Azure Blob storage input binding for Azure Functions

입력 바인딩을 사용 하면 blob storage 데이터를 Azure Function에 대 한 입력으로 읽을 수 있습니다.The input binding allows you to read blob storage data as input to an Azure Function.

설정 및 구성 세부 정보에 대 한 자세한 내용은 개요를 참조 하세요.For information on setup and configuration details, see the overview.

예제Example

다음 예제는 하나의 큐 트리거와 입력 Blob 바인딩을 사용하는 C# 함수입니다.The following example is a C# function that uses a queue trigger and an input blob binding. 큐 메시지에는 Blob의 이름이 포함되고 함수는 Blob의 크기를 기록합니다.The queue message contains the name of the blob, and the function logs the size of the blob.

[FunctionName("BlobInput")]
public static void Run(
    [QueueTrigger("myqueue-items")] string myQueueItem,
    [Blob("samples-workitems/{queueTrigger}", FileAccess.Read)] Stream myBlob,
    ILogger log)
{
    log.LogInformation($"BlobInput processed blob\n Name:{myQueueItem} \n Size: {myBlob.Length} bytes");
}

특성 및 주석Attributes and annotations

C# 클래스 라이브러리에서 BlobAttribute를 사용합니다.In C# class libraries, use the BlobAttribute.

특성의 생성자는 다음 예제에 표시된 대로 Blob에 대한 경로 및 읽기 또는 쓰기를 나타내는 FileAccess 매개 변수를 사용합니다.The attribute's constructor takes the path to the blob and a FileAccess parameter indicating read or write, as shown in the following example:

[FunctionName("BlobInput")]
public static void Run(
    [QueueTrigger("myqueue-items")] string myQueueItem,
    [Blob("samples-workitems/{queueTrigger}", FileAccess.Read)] Stream myBlob,
    ILogger log)
{
    log.LogInformation($"BlobInput processed blob\n Name:{myQueueItem} \n Size: {myBlob.Length} bytes");
}

다음 예와 같이 사용할 스토리지 계정을 지정하도록 Connection 속성을 설정할 수 있습니다.You can set the Connection property to specify the storage account to use, as shown in the following example:

[FunctionName("BlobInput")]
public static void Run(
    [QueueTrigger("myqueue-items")] string myQueueItem,
    [Blob("samples-workitems/{queueTrigger}", FileAccess.Read, Connection = "StorageConnectionAppSetting")] Stream myBlob,
    ILogger log)
{
    log.LogInformation($"BlobInput processed blob\n Name:{myQueueItem} \n Size: {myBlob.Length} bytes");
}

StorageAccount 특성을 사용하여 클래스, 메서드 또는 매개 변수 수준에서 스토리지 계정을 지정합니다.You can use the StorageAccount attribute to specify the storage account at class, method, or parameter level. 자세한 내용은 트리거-특성 및 주석을 참조 하세요.For more information, see Trigger - attributes and annotations.

구성Configuration

다음 표에서는 함수. json 파일 및 Blob 특성에서 설정 하는 바인딩 구성 속성에 대해 설명 합니다.The following table explains the binding configuration properties that you set in the function.json file and the Blob attribute.

function.json 속성function.json property 특성 속성Attribute property DescriptionDescription
typetype 해당 없음n/a blob로 설정해야 합니다.Must be set to blob.
방향도direction 해당 없음n/a in로 설정해야 합니다.Must be set to in. 예외는 사용 섹션에서 표시됩니다.Exceptions are noted in the usage section.
namename 해당 없음n/a 함수 코드에서 Blob을 나타내는 변수의 이름입니다.The name of the variable that represents the blob in function code.
pathpath BlobPathBlobPath Blob에 대한 경로입니다.The path to the blob.
connectionconnection 연결Connection 이 바인딩에 사용할 저장소 연결 문자열 을 포함 하는 앱 설정의 이름입니다.The name of an app setting that contains the Storage connection string to use for this binding. 앱 설정 이름이 "AzureWebJobs"로 시작하는 경우 여기에서 이름의 나머지만을 지정할 수 있습니다.If the app setting name begins with "AzureWebJobs", you can specify only the remainder of the name here. 예를 들어를 "MyStorage"로 설정 connection 하는 경우 함수 런타임은 "AzureWebJobsMyStorage" 라는 앱 설정을 찾습니다.For example, if you set connection to "MyStorage", the Functions runtime looks for an app setting that is named "AzureWebJobsMyStorage". connection을 비워 두면 함수 런타임 기능은 AzureWebJobsStorage라는 앱 설정에서 기본 스토리지 연결 문자열을 사용합니다.If you leave connection empty, the Functions runtime uses the default Storage connection string in the app setting that is named AzureWebJobsStorage.

연결 문자열은 Blob 전용 스토리지 계정이 아닌 범용 스토리지 계정의 문자열이어야 합니다.The connection string must be for a general-purpose storage account, not a blob-only storage account.
해당 없음n/a 액세스Access 읽기 또는 쓰기를 나타냅니다.Indicates whether you will be reading or writing.

로컬로 개발하는 경우 앱 설정은 local.settings.json 파일로 이동합니다.When you're developing locally, app settings go into the local.settings.json file.

사용Usage

Blob 입력 바인딩에 대해 다음 매개 변수 형식을 사용할 수 있습니다.You can use the following parameter types for the blob input binding:

  • Stream
  • TextReader
  • string
  • Byte[]
  • CloudBlobContainer
  • CloudBlobDirectory
  • ICloudBlob1(sp1)ICloudBlob1
  • CloudBlockBlob1(sp1)CloudBlockBlob1
  • CloudPageBlob1(sp1)CloudPageBlob1
  • CloudAppendBlob1(sp1)CloudAppendBlob1

1function.json에서 direction 또는 C# 클래스 라이브러리에서 FileAccess.ReadWrite의 “inout” 바인딩이 필요합니다.1 Requires "inout" binding direction in function.json or FileAccess.ReadWrite in a C# class library.

스토리지 SDK 형식 중 하나에 바인딩하려고 하면 오류 메시지가 표시되는 경우 올바른 Storage SDK 버전에 대한 참조가 있는지 확인합니다.If you try to bind to one of the Storage SDK types and get an error message, make sure that you have a reference to the correct Storage SDK version.

string 또는 Byte[]에 바인딩하는 방식은 전체 Blob 내용이 메모리에 로드되므로 Blob 크기가 작은 경우에만 권장됩니다.Binding to string or Byte[] is only recommended if the blob size is small, as the entire blob contents are loaded into memory. 일반적으로 Stream 또는 CloudBlockBlob 형식을 사용하는 것이 좋습니다.Generally, it is preferable to use a Stream or CloudBlockBlob type. 자세한 내용은 이 문서의 앞부분에 나오는 동시성 및 메모리 사용량을 참조하세요.For more information, see Concurrency and memory usage earlier in this article.

다음 단계Next steps