바인딩을 사용하여 Azure 서비스에 함수 커넥트
함수를 만들 때 언어별 트리거 코드가 트리거 템플릿 집합에서 프로젝트에 추가됩니다. 입력 또는 출력 바인딩을 사용하여 함수를 다른 서비스에 연결하려면 함수에 특정 바인딩 정의를 추가해야 합니다. 바인딩에 대한 자세한 내용은 Azure Functions 트리거 및 바인딩 개념을 참조 하세요.
로컬 개발
함수를 로컬로 개발할 때 바인딩을 추가하려면 함수 코드를 업데이트해야 합니다. function.json을 사용하는 언어의 경우 Visual Studio Code는 함수에 바인딩을 추가하는 도구를 제공합니다.
예제에 따라 수동으로 바인딩 추가
기존 함수에 바인딩을 추가할 때 코드의 함수 정의에 바인딩 관련 특성을 추가해야 합니다.
기존 함수에 바인딩을 추가할 때 코드의 함수 정의에 바인딩별 주석을 추가해야 합니다.
기존 함수에 바인딩을 추가할 때 함수 코드를 업데이트하고 function.json 구성 파일에 정의를 추가해야 합니다.
다음 예제에서는 HTTP 트리거 함수에 Queue Storage 출력 바인딩을 추가한 후의 함수 정의를 보여 줍니다.
HTTP 트리거 함수도 HTTP 응답을 반환하므로 함수는 HTTP 및 큐 출력을 모두 나타내는 MultiResponse
개체를 반환합니다.
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
FunctionContext executionContext)
{
이 예제는 출력 바인딩을 포함하는 MultiResponse
개체의 정의입니다.
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
해당 예제를 자체 프로젝트에 적용할 때 ASP.NET Core 통합을 사용하는지 여부에 따라 HttpRequest
를 HttpRequestData
로 변경하고 IActionResult
를 HttpResponseData
로 변경해야 할 수 있습니다.
함수가 완료되면 큐에 메시지가 전송됩니다. 출력 바인딩을 정의하는 방법은 프로세스 모델에 따라 다릅니다. 참조할 수 있는 예제 바인딩 코드에 대한 링크를 비롯한 자세한 내용은 함수에 바인딩 추가를 참조하세요.
@FunctionName("HttpExample")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
@QueueOutput(name = "msg", queueName = "outqueue",
connection = "AzureWebJobsStorage") OutputBinding<String> msg,
final ExecutionContext context) {
참조할 수 있는 예제 바인딩 코드에 대한 링크를 비롯한 자세한 내용은 함수에 바인딩 추가를 참조하세요.
출력 바인딩을 정의하는 방법은 Node.js 모델의 버전에 따라 달라집니다. 참조할 수 있는 예제 바인딩 코드에 대한 링크를 비롯한 자세한 내용은 함수에 바인딩 추가를 참조하세요.
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
참조할 수 있는 예제 바인딩 코드에 대한 링크를 비롯한 자세한 내용은 함수에 바인딩 추가를 참조하세요.
@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
출력 바인딩을 정의하는 방법은 Python 모델의 버전에 따라 달라집니다. 참조할 수 있는 예제 바인딩 코드에 대한 링크를 비롯한 자세한 내용은 함수에 바인딩 추가를 참조하세요.
출력 바인딩을 정의하는 방법은 Node.js 모델의 버전에 따라 달라집니다. 참조할 수 있는 예제 바인딩 코드에 대한 링크를 비롯한 자세한 내용은 함수에 바인딩 추가를 참조하세요.
다음 표를 사용하여 기존 함수를 업데이트하는 데 사용할 수 있는 특정 바인딩 형식의 예를 찾을 수 있습니다. 먼저 작업 중인 프로젝트에 해당하는 언어 탭을 선택하세요.
C#용 바인딩 코드는 특정 프로세스 모델에 따라 다릅니다.
서비스 | 예제 | 샘플 |
---|---|---|
Blob Storage | 트리거 입력 출력 |
링크 |
Azure Cosmos DB | 트리거 입력 출력 |
링크 |
Azure Data Explorer | 입력 출력 |
링크 |
Azure SQL | 트리거 입력 출력 |
링크 |
Event Grid | 트리거 출력 |
링크 |
Event Hubs | 트리거 출력 |
|
IoT Hub | 트리거 출력 |
|
HTTP | 트리거 | 링크 |
Queue Storage | 트리거 출력 |
링크 |
RabbitMQ | 트리거 출력 |
|
SendGrid | 출력 | |
Service Bus | 트리거 출력 |
링크 |
SignalR | 트리거 입력 출력 |
|
Table Storage | 입력 출력 |
|
타이머 | 트리거 | 링크 |
Twilio | 출력 | 링크 |
서비스 | 예제 | 샘플 |
---|---|---|
Blob Storage | 트리거 입력 출력 |
링크 |
Azure Cosmos DB | 트리거 입력 출력 |
링크 |
Azure Data Explorer | 입력 출력 |
링크 |
Azure SQL | 트리거 입력 출력 |
|
Event Grid | 트리거 출력 |
링크 |
Event Hubs | 트리거 출력 |
|
IoT Hub | 트리거 출력 |
|
HTTP | 트리거 | 링크 |
Queue Storage | 트리거 출력 |
링크 |
RabbitMQ | 트리거 출력 |
|
SendGrid | 출력 | |
Service Bus | 트리거 출력 |
링크 |
SignalR | 트리거 입력 출력 |
|
Table Storage | 입력 출력 |
|
타이머 | 트리거 | 링크 |
Twilio | 출력 | 링크 |
서비스 | 예제 | 샘플 |
---|---|---|
Blob Storage | 트리거 입력 출력 |
링크 |
Azure Cosmos DB | 트리거 입력 출력 |
링크 |
Azure Data Explorer | 입력 출력 |
|
Azure SQL | 트리거 입력 출력 |
링크 |
Event Grid | 트리거 출력 |
링크 |
Event Hubs | 트리거 출력 |
|
IoT Hub | 트리거 출력 |
|
HTTP | 트리거 | 링크 |
Queue Storage | 트리거 출력 |
링크 |
RabbitMQ | 트리거 출력 |
|
SendGrid | 출력 | |
Service Bus | 트리거 출력 |
링크 |
SignalR | 트리거 입력 출력 |
|
Table Storage | 입력 출력 |
|
타이머 | 트리거 | 링크 |
Twilio | 출력 | 링크 |
서비스 | 예제 | 샘플 |
---|---|---|
Blob Storage | 트리거 입력 출력 |
링크 |
Azure Cosmos DB | 트리거 입력 출력 |
링크 |
Azure SQL | 트리거 입력 출력 |
|
Event Grid | 트리거 출력 |
링크 |
Event Hubs | 트리거 출력 |
|
IoT Hub | 트리거 출력 |
|
HTTP | 트리거 | 링크 |
Queue Storage | 트리거 출력 |
링크 |
RabbitMQ | 트리거 출력 |
|
SendGrid | 출력 | |
Service Bus | 트리거 출력 |
링크 |
SignalR | 트리거 입력 출력 |
|
Table Storage | 입력 출력 |
|
타이머 | 트리거 | 링크 |
Twilio | 출력 | 링크 |
Python용 바인딩 코드는 Python 모델 버전에 따라 다릅니다.
Visual Studio Code
Visual Studio Code를 사용하여 함수를 개발하고 함수가 function.json 파일을 사용하는 경우 Azure Functions 확장은 기존 function.json 파일에 바인딩을 자동으로 추가할 수 있습니다. 자세한 내용은 입력 및 출력 바인딩 추가를 참조 하세요.
Azure Portal
Azure Portal에서 함수를 개발할 때 지정된 함수에 대한 통합 탭에 입력 및 출력 바인딩을 추가합니다. 새 바인딩은 언어에 따라 function.json 파일 또는 메서드 특성에 추가됩니다. 다음 문서에서는 포털에서 기존 함수에 바인딩을 추가하는 방법의 예를 보여 줍니다.