Azure Functions 트리거 및 바인딩 개념Azure Functions triggers and bindings concepts

이 문서에서는 함수 트리거 및 바인딩과 관련 된 개략적인 개념에 대해 알아봅니다.In this article you learn the high-level concepts surrounding functions triggers and bindings.

트리거는 함수를 실행 하는 원인이 됩니다.Triggers are what cause a function to run. 트리거는 함수를 호출 하는 방법을 정의 하며 함수에는 정확히 하나의 트리거를 포함 해야 합니다.A trigger defines how a function is invoked and a function must have exactly one trigger. 트리거에는 연결 된 데이터가 있으며,이는 종종 함수 페이로드로 제공 됩니다.Triggers have associated data, which is often provided as the payload of the function.

함수에 바인딩하는 것은 다른 리소스를 함수에 선언적으로 연결 하는 방법입니다. 바인딩은 입력 바인딩, 출력 바인딩또는 둘 다로 연결 될 수 있습니다.Binding to a function is a way of declaratively connecting another resource to the function; bindings may be connected as input bindings, output bindings, or both. 바인딩의 데이터는 함수에 매개 변수로 제공됩니다.Data from bindings is provided to the function as parameters.

요구 사항에 따라 서로 다른 바인딩을 혼합 하 고 일치 시킬 수 있습니다.You can mix and match different bindings to suit your needs. 바인딩은 선택 사항이 며 함수는 하나 또는 여러 개의 입력 및/또는 출력 바인딩을 포함할 수 있습니다.Bindings are optional and a function might have one or multiple input and/or output bindings.

트리거 및 바인딩을 사용 하면 다른 서비스에 대 한 액세스를 하드 코딩 하지 않을 수 있습니다.Triggers and bindings let you avoid hardcoding access to other services. 함수는 함수 매개 변수에서 데이터를 수신합니다(예: 큐 메시지의 콘텐츠).Your function receives data (for example, the content of a queue message) in function parameters. 함수의 반환 값을 사용하여 데이터를 보냅니다(예를 들어 큐 메시지를 만들기 위해).You send data (for example, to create a queue message) by using the return value of the function.

다른 함수를 구현 하는 방법에 대 한 다음 예제를 참조 하세요.Consider the following examples of how you could implement different functions.

예제 시나리오Example scenario 트리거Trigger 입력 바인딩Input binding 출력 바인딩Output binding
새 큐 메시지가 도착 하면 함수를 실행 하 여 다른 큐에 기록 합니다.A new queue message arrives which runs a function to write to another queue. *Queue* 없음None *Queue*
예약 된 작업은 Blob Storage 내용을 읽고 새 Cosmos DB 문서를 만듭니다.A scheduled job reads Blob Storage contents and creates a new Cosmos DB document. 타이머Timer Blob StorageBlob Storage Cosmos DBCosmos DB
Event Grid은 Blob Storage에서 이미지를 읽고 Cosmos DB의 문서에서 전자 메일을 보내는 데 사용 됩니다.The Event Grid is used to read an image from Blob Storage and a document from Cosmos DB to send an email. Event GridEvent Grid Blob Storage 및 Cosmos DBBlob Storage and Cosmos DB SendGridSendGrid
Microsoft Graph를 사용 하 여 Excel 시트를 업데이트 하는 webhook입니다.A webhook that uses Microsoft Graph to update an Excel sheet. httpHTTP 없음None Microsoft GraphMicrosoft Graph

* 다른 큐를 나타냄* Represents different queues

이러한 예제는 완전 하지는 않지만 트리거와 바인딩을 함께 사용할 수 있는 방법을 설명 하기 위해 제공 됩니다.These examples are not meant to be exhaustive, but are provided to illustrate how you can use triggers and bindings together.

트리거 및 바인딩 정의Trigger and binding definitions

트리거와 바인딩은 개발 방법에 따라 다르게 정의 됩니다.Triggers and bindings are defined differently depending on the development approach.

플랫폼Platform 트리거 및 바인딩을 구성 하는 방법 ...Triggers and bindings are configured by...
C#클래스 라이브러리C# class library      특성으로 C# 메서드 및 매개 변수의 데코레이팅     decorating methods and parameters with C# attributes
기타 모든 항목 (Azure Portal 포함)All others (including Azure portal)      업데이트 ( 스키마)     updating function.json (schema)

포털은이 구성에 대 한 UI를 제공 하지만 함수에서 통합 탭을 통해 사용할 수 있는 고급 편집기 를 열어 직접 파일을 편집할 수 있습니다.The portal provides a UI for this configuration, but you can edit the file directly by opening the Advanced editor available via the Integrate tab of your function.

.NET에서 매개 변수 형식은 입력 데이터의 데이터 형식을 정의 합니다.In .NET, the parameter type defines the data type for input data. 예를 들어 string를 사용 하 여 큐 트리거의 텍스트, 이진으로 읽을 바이트 배열 및 개체에 대 한 사용자 지정 형식 직렬화를 취소 합니다.For instance, use string to bind to the text of a queue trigger, a byte array to read as binary and a custom type to de-serialize to an object.

JavaScript와 같은 동적으로 형식화되는 언어의 경우 dataTypefunction.json파일의 속성을 사용합니다.For languages that are dynamically typed such as JavaScript, use the dataType property in the function.json file. 예를 들어 이진 형식의 HTTP 요청 내용을 읽으려면 dataTypebinary로 설정합니다.For example, to read the content of an HTTP request in binary format, set dataType to binary:

{
    "dataType": "binary",
    "type": "httpTrigger",
    "name": "req",
    "direction": "in"
}

dataType에 대한 다른 옵션은 streamstring입니다.Other options for dataType are stream and string.

바인딩 방향Binding direction

모든 트리거와 바인딩은 directionfunction.json 파일에 속성이 있습니다.All triggers and bindings have a direction property in the function.json file:

  • 트리거의 경우 방향은 언제나 in입니다For triggers, the direction is always in
  • 입력 및 출력 바인딩은 inout을 사용합니다Input and output bindings use in and out
  • 일부 바인딩은 특수 방향인 inout을 사용합니다.Some bindings support a special direction inout. inout사용 하는 경우 포털에서 통합 탭을 통해 고급 편집기 만 사용할 수 있습니다.If you use inout, only the Advanced editor is available via the Integrate tab in the portal.

클래스 라이브러리의 특성을 사용하여 트리거 및 바인딩을 구성하는 경우 방향은 특성 생성자에서 제공되거나 매개 변수 형식에서 유추됩니다.When you use attributes in a class library to configure triggers and bindings, the direction is provided in an attribute constructor or inferred from the parameter type.

지원되는 바인딩Supported bindings

다음 표에서는 Azure Functions 런타임의 두 가지 주요 버전에서 지원 되는 바인딩을 보여 줍니다.This table shows the bindings that are supported in the two major versions of the Azure Functions runtime:

TypeType 1.x1.x 2.x12.x1 트리거Trigger 입력Input 출력Output
Blob storageBlob storage
Cosmos DBCosmos DB
Event GridEvent Grid
Event HubsEvent Hubs
HTTP & 웹 후크HTTP & webhooks
IoT HubIoT Hub
Microsoft Graph
Excel 테이블
Microsoft Graph
Excel tables
Microsoft Graph
OneDrive 파일
Microsoft Graph
OneDrive files
Microsoft Graph
Outlook 이메일
Microsoft Graph
Outlook email
Microsoft Graph
events
Microsoft Graph
events
Microsoft Graph
인증 토큰
Microsoft Graph
Auth tokens
Mobile AppsMobile Apps
Notification HubsNotification Hubs
Queue StorageQueue storage
SendGridSendGrid
Service BusService Bus
SignalRSignalR
Table StorageTable storage
타이머Timer
TwilioTwilio

1 버전 2.x 런타임에서는 HTTP 및 타이머를 제외한 모든 바인딩을 등록 해야 합니다.1 In the version 2.x runtime, all bindings except HTTP and Timer must be registered. 바인딩 확장 등록을 참조하세요.See Register binding extensions. 지원 되는 모든 2.x 바인딩은 버전 3(sp3) 에서도 지원 됩니다 (별도로 명시 되지 않은 경우).All supported 2.x bindings are also supported in the version 3.x, unless otherwise noted.

미리 보기 상태 바인딩 또는 프로덕션 용도로 승인된 바인딩에 대한 자세한 내용은 지원되는 언어를 참조하세요.For information about which bindings are in preview or are approved for production use, see Supported languages.

리소스Resources

다음 단계Next steps