Azure Functions에 대한 RabbitMQ 출력 바인딩 개요
참고 항목
RabbitMQ 바인딩은 프리미엄 및 전용 계획에서만 완전히 지원됩니다. 사용은 지원되지 않습니다.
RabbitMQ 출력 바인딩을 사용하여 RabbitMQ 큐에 메시지를 보냅니다.
설정 및 구성 세부 정보에 대한 자세한 내용은 개요를 참조하세요.
예시
C# 함수는 다음 C# 모드 중 하나를 사용하여 만들 수 있습니다.
- 격리된 작업자 모델: 런타임에서 격리된 작업자 프로세스에서 실행되는 컴파일된 C# 함수입니다. LTS 및 비 LTS 버전 .NET 및 .NET Framework에서 실행되는 C# 함수를 지원하려면 격리된 작업자 프로세스가 필요합니다.
- In Process 모델: Functions 런타임과 동일한 프로세스에서 실행되는 컴파일된 C# 함수입니다.
- C# 스크립트: Azure Portal에서 C# 함수를 만들 때 주로 사용됩니다.
Important
In Process 모델에 대한 지원은 2026년 11월 10일에 종료됩니다. 전체 지원을 위해 앱을 격리된 작업자 모델로 마이그레이션하는 것이 좋습니다.
[Function(nameof(RabbitMQFunction))]
[RabbitMQOutput(QueueName = "destinationQueue", ConnectionStringSetting = "RabbitMQConnection")]
public static string Run([RabbitMQTrigger("queue", ConnectionStringSetting = "RabbitMQConnection")] string item,
FunctionContext context)
{
var logger = context.GetLogger(nameof(RabbitMQFunction));
logger.LogInformation(item);
var message = $"Output message created at {DateTime.Now}";
return message;
}
다음 Java 함수는 Java RabbitMQ 형식의 주석을 사용하여 @RabbitMQOutput
RabbitMQ 큐 출력 바인딩에 대한 구성을 설명합니다. 이 함수는 TimerTrigger에 의해 5분마다 트리거될 때 RabbitMQ 큐에 메시지를 보냅니다.
@FunctionName("RabbitMQOutputExample")
public void run(
@TimerTrigger(name = "keepAliveTrigger", schedule = "0 */5 * * * *") String timerInfo,
@RabbitMQOutput(connectionStringSetting = "rabbitMQConnectionAppSetting", queueName = "hello") OutputBinding<String> output,
final ExecutionContext context) {
output.setValue("Some string");
}
다음 예제에서는 function.json 파일의 RabbitMQ 출력 바인딩과 바인딩을 사용하는 JavaScript 함수를 보여줍니다. 함수는 HTTP 트리거에서 메시지를 읽고 RabbitMQ 큐에 출력합니다.
function.json 파일의 바인딩 데이터는 다음과 같습니다.
{
"bindings": [
{
"type": "httpTrigger",
"direction": "in",
"authLevel": "function",
"name": "input",
"methods": [
"get",
"post"
]
},
{
"type": "rabbitMQ",
"name": "outputMessage",
"queueName": "outputQueue",
"connectionStringSetting": "rabbitMQConnectionAppSetting",
"direction": "out"
}
]
}
JavaScript 코드는 다음과 같습니다.
module.exports = async function (context, input) {
context.bindings.outputMessage = input.body;
};
다음 예제에서는 function.json 파일의 RabbitMQ 출력 바인딩과 바인딩을 사용하는 Python 함수를 보여줍니다. 함수는 HTTP 트리거에서 메시지를 읽고 RabbitMQ 큐에 출력합니다.
function.json 파일의 바인딩 데이터는 다음과 같습니다.
{
"scriptFile": "__init__.py",
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"get",
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "$return"
},
{
"type": "rabbitMQ",
"name": "outputMessage",
"queueName": "outputQueue",
"connectionStringSetting": "rabbitMQConnectionAppSetting",
"direction": "out"
}
]
}
_init_.py:
import azure.functions as func
def main(req: func.HttpRequest, outputMessage: func.Out[str]) -> func.HttpResponse:
input_msg = req.params.get('message')
outputMessage.set(input_msg)
return 'OK'
특성
In Process 및 격리된 작업자 프로세스 C# 라이브러리는 모두 특성을 사용하여 함수를 정의합니다. C# 스크립트는 대신 function.json 구성 파일을 사용합니다.
특성의 생성자는 다음 매개 변수를 사용합니다.
매개 변수 | 설명 |
---|---|
QueueName | 메시지를 받을 큐의 이름입니다. |
HostName | 10.26.45.210과 같은 큐의 호스트 이름입니다. ConnectStringSetting 을 사용할 때 무시됩니다. |
UserNameSetting | 큐에 액세스하기 위한 사용자 이름이 포함된 앱 설정의 이름(예: UserNameSetting: "%< UserNameFromSettings >%" ). ConnectStringSetting 을 사용할 때 무시됩니다. |
PasswordSetting | PasswordSetting: "%< PasswordFromSettings >%" 과 같이 큐에 액세스하기 위한 암호가 포함된 앱 설정의 이름입니다. ConnectStringSetting 을 사용할 때 무시됩니다. |
ConnectionStringSetting | RabbitMQ 메시지 큐 연결 문자열 포함하는 앱 설정의 이름입니다. 앱 설정 대신 연결 문자열을 직접 지정하면 트리거가 작동하지 않습니다. 예를 들어 ConnectionStringSetting: "rabbitMQConnection" 을 설정한 경우 local.settings.json과 함수 앱 모두에서 "RabbitMQConnection" : "< ActualConnectionstring >" 와 같은 설정이 필요합니다. |
포트 | 사용된 포트를 가져오거나 설정합니다. 기본값은 0이며 RabbitMQ 클라이언트의 기본 포트 설정인 5672 를 가리킵니다. |
C# 클래스 라이브러리에서는 RabbitMQTrigger 특성을 사용하세요.
다음은 격리된 작업자 프로세스 라이브러리에 대한 메서드 서명의 RabbitMQTrigger
특성입니다.
[Function(nameof(RabbitMQFunction))]
[RabbitMQOutput(QueueName = "destinationQueue", ConnectionStringSetting = "RabbitMQConnection")]
public static string Run([RabbitMQTrigger("queue", ConnectionStringSetting = "RabbitMQConnection")] string item,
FunctionContext context)
{
주석
주석 RabbitMQOutput
을 사용하면 RabbitMQ 메시지를 만들 때 실행되는 함수를 만들 수 있습니다.
주석은 다음 구성 설정을 지원합니다.
설정 | 설명 |
---|---|
queueName | 메시지를 받을 큐의 이름입니다. |
hostName | 10.26.45.210과 같은 큐의 호스트 이름입니다. ConnectStringSetting 을 사용할 때 무시됩니다. |
userNameSetting | 큐에 액세스하기 위한 사용자 이름이 포함된 앱 설정의 이름(예: UserNameSetting: "%< UserNameFromSettings >%" ). ConnectStringSetting 을 사용할 때 무시됩니다. |
passwordSetting | PasswordSetting: "%< PasswordFromSettings >%" 과 같이 큐에 액세스하기 위한 암호가 포함된 앱 설정의 이름입니다. ConnectStringSetting 을 사용할 때 무시됩니다. |
connectionStringSetting | RabbitMQ 메시지 큐 연결 문자열 포함하는 앱 설정의 이름입니다. 앱 설정 대신 연결 문자열을 직접 지정하면 트리거가 작동하지 않습니다. 예를 들어 ConnectionStringSetting: "rabbitMQConnection" 을 설정한 경우 local.settings.json과 함수 앱 모두에서 "RabbitMQConnection" : "< ActualConnectionstring >" 와 같은 설정이 필요합니다. |
port | 사용된 포트를 가져오거나 설정합니다. 기본값은 0이며 RabbitMQ 클라이언트의 기본 포트 설정인 5672 를 가리킵니다. |
자세한 내용은 출력 바인딩 예제 를 참조하세요.
구성
다음 표에서는 function.json 파일에 설정된 바인딩 구성 속성을 설명합니다.
function.json 속성 | 설명 |
---|---|
type | RabbitMQ 로 설정해야 합니다. |
direction | out 로 설정해야 합니다. |
이름 | 함수 코드에서 큐를 나타내는 변수의 이름입니다. |
queueName | 메시지를 보낼 큐의 이름입니다. |
hostName | 10.26.45.210과 같은 큐의 호스트 이름입니다. connectStringSetting 을 사용할 때 무시됩니다. |
userName | 큐에 액세스하기 위한 사용자 이름이 포함된 앱 설정의 이름(예: UserNameSetting: "< UserNameFromSettings >"). connectStringSetting 을 사용할 때 무시됩니다. |
password | UserNameSetting과 같이 큐에 액세스하기 위한 암호가 포함된 앱 설정의 이름: "< UserNameFromSettings >". connectStringSetting 을 사용할 때 무시됩니다. |
connectionStringSetting | RabbitMQ 메시지 큐 연결 문자열 포함하는 앱 설정의 이름입니다. local.settings.json 의 앱 설정을 통하지 않고 연결 문자열을 직접 지정하면 트리거가 작동하지 않습니다. 예를 들어 connectionStringSetting: "rabbitMQConnection" 을 설정한 경우 local.settings.json과 함수 앱 모두에서 "rabbitMQConnection" : "< ActualConnectionstring >" 과 같은 설정이 필요합니다. |
port | 사용된 포트를 가져오거나 설정합니다. 기본값은 0이며 RabbitMQ 클라이언트의 기본 포트 설정인 5672 를 가리킵니다. |
로컬에서 개발하는 경우 Values
컬렉션의 local.settings.json 파일에 애플리케이션 설정을 추가합니다.
전체 예제는 예제 섹션을 참조하세요.
사용
RabbitMQ 트리거에서 지원하는 매개 변수 형식은 Functions 런타임 버전, 확장 패키지 버전 및 사용된 C# 모달리티에 따라 다릅니다.
RabbitMQ 바인딩은 현재 격리된 작업자 프로세스에서 실행할 때 문자열 및 직렬화 가능한 개체 형식만 지원합니다.
전체 예제는 C# 예제를 참조하세요.
출력 바인딩에 다음 매개 변수 형식을 사용합니다.
byte[]
- 함수가 종료될 때 매개 변수 값이 null이면 Functions는 메시지를 만들지 않습니다.string
- 함수가 종료될 때 매개 변수 값이 null이면 Functions는 메시지를 만들지 않습니다.POJO
- 매개 변수 값의 형식이 Java 개체로 지정되지 않으면 오류가 발생합니다.
큐 메시지는 <NAME>
이 function.json에 정의된 이름과 일치하는 context.bindings.<NAME>
을 통해 사용할 수 있습니다. 페이로드가 JSON인 경우 값은 개체로 역직렬화됩니다.
Python 예제를 참조하세요.