RabbitMQ 트리거를 사용하여 RabbitMQ 큐의 메시지에 응답하세요.
참고 항목
RabbitMQ 바인딩은 Elastic Premium 및 Dedicated(App Service) 계획에서만 완전히 지원됩니다. Flex 소비 및 소비 계획은 아직 지원되지 않습니다.
RabbitMQ 바인딩은 Azure Functions v1.x 런타임에서 지원되지 않습니다.
설정 및 구성 세부 정보에 대한 자세한 내용은 개요를 참조하세요.
예시
다음 C# 모드 중 하나를 사용하여 C# 함수를 만들 수 있습니다.
- 격리된 작업자 모델: 런타임에서 격리된 작업자 프로세스에서 실행되는 컴파일된 C# 함수입니다. .NET 및 .NET Framework용 LTS(장기 지원) 및 비 LTS 버전에서 실행되는 C# 함수를 지원하려면 격리된 작업자 프로세스가 필요합니다.
- In-process 모델: Azure Functions 런타임과 동일한 프로세스에서 실행되는 컴파일된 C# 함수입니다.
- C# 스크립트: Azure Portal에서 C# 함수를 만들 때 주로 사용됩니다.
중요합니다
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 형식@RabbitMQTrigger주석을 사용하여 RabbitMQ 큐 트리거에 대한 구성을 설명합니다. 이 함수는 큐에 배치된 메시지를 가져와 로그에 추가합니다.
@FunctionName("RabbitMQTriggerExample")
public void run(
@RabbitMQTrigger(connectionStringSetting = "rabbitMQConnectionAppSetting", queueName = "queue") String input,
final ExecutionContext context)
{
context.getLogger().info("Java HTTP trigger processed a request." + input);
}
다음 예제에서는 function.json 파일의 RabbitMQ 트리거 바인딩 및 바인딩을 사용하는 JavaScript 함수를 보여줍니다. 이 함수는 RabbitMQ 메시지를 읽고 기록합니다.
function.json 파일의 바인딩 데이터는 다음과 같습니다.
{
"bindings": [
{
"name": "myQueueItem",
"type": "rabbitMQTrigger",
"direction": "in",
"queueName": "queue",
"connectionStringSetting": "rabbitMQConnectionAppSetting"
}
]
}
JavaScript 스크립트 코드는 다음과 같습니다.
module.exports = async function (context, myQueueItem) {
context.log('JavaScript RabbitMQ trigger function processed work item', myQueueItem);
};
다음 예제에서는 트리거를 통해 RabbitMQ 큐 메시지를 읽는 방법을 보여 줍니다.
RabbitMQ 바인딩은 type이 로 설정된 RabbitMQTrigger에서 정의됩니다.
{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "myQueueItem",
"type": "rabbitMQTrigger",
"direction": "in",
"queueName": "queue",
"connectionStringSetting": "rabbitMQConnectionAppSetting"
}
]
}
import logging
import azure.functions as func
def main(myQueueItem) -> None:
logging.info('Python RabbitMQ trigger function processed a queue item: %s', myQueueItem)
PowerShell 예제는 현재 사용할 수 없습니다.
특성
격리된 작업자 프로세스와 In-process C# 라이브러리는 모두 특성의 특정 속성이 확장 버전에 따라 달라지는 함수를 정의하는 데 사용합니다RabbitMQTriggerAttribute.
특성의 생성자는 다음 매개 변수를 허용합니다.
| 매개 변수 | 설명 |
|---|---|
| 큐이름 | 메시지를 받을 큐의 이름입니다. |
| HostName | 이 매개 변수는 더 이상 지원되지 않으며 무시됩니다. 이후 버전에서 제거됩니다. |
| ConnectionStringSetting | RabbitMQ 서버에 대한 연결 문자열을 포함하는 앱 설정의 이름입니다. 이 설정은 앱 설정 키 이름만 사용하므로 연결 문자열 값을 직접 설정할 수 없습니다. 자세한 내용은 연결을 참조하세요. |
| 사용자 이름 설정 | 이 매개 변수는 더 이상 지원되지 않으며 무시됩니다. 이후 버전에서 제거됩니다. |
| 비밀번호 설정 | 이 매개 변수는 더 이상 지원되지 않으며 무시됩니다. 이후 버전에서 제거됩니다. |
| 포트 | 사용된 포트를 가져오거나 설정합니다. 기본값은 0이며 RabbitMQ 클라이언트의 기본 포트 설정인 5672를 가리킵니다. |
주석
주석 RabbitMQTrigger 을 사용하면 RabbitMQ 메시지를 만들 때 실행되는 함수를 만들 수 있습니다.
주석은 다음 구성 옵션을 지원합니다.
| 매개 변수 | 설명 |
|---|---|
| queueName | 메시지를 받을 큐의 이름입니다. |
| connectionStringSetting | RabbitMQ 서버에 대한 연결 문자열을 포함하는 앱 설정의 이름입니다. 이 설정은 앱 설정 키 이름만 사용하므로 연결 문자열 값을 직접 설정할 수 없습니다. 자세한 내용은 연결을 참조하세요. |
| disableCertificateValidation | 인증서 유효성 검사를 사용하지 않도록 설정해야 함을 나타내는 부 true 울 값입니다. 기본값은 false여야 합니다. 프로덕션에 권장되지 않습니다. SSL을 사용하지 않도록 설정한 경우에는 적용되지 않습니다. |
구성
다음 표에서는 function.json 파일에 설정된 바인딩 구성 속성을 설명합니다.
| function.json 속성 | 설명 |
|---|---|
| 유형 |
RabbitMQTrigger로 설정해야 합니다. |
| 방향 |
in로 설정해야 합니다. |
| 이름 | 함수 코드에서 큐를 나타내는 변수의 이름입니다. |
| queueName | 메시지를 받을 큐의 이름입니다. |
| connectionStringSetting | RabbitMQ 서버에 대한 연결 문자열을 포함하는 앱 설정의 이름입니다. 이 설정은 앱 설정 키 이름만 사용하므로 연결 문자열 값을 직접 설정할 수 없습니다. 자세한 내용은 연결을 참조하세요. |
| disableCertificateValidation | 인증서 유효성 검사를 사용하지 않도록 설정해야 함을 나타내는 부 true 울 값입니다. 기본값은 false여야 합니다. 프로덕션에 권장되지 않습니다. SSL을 사용하지 않도록 설정한 경우에는 적용되지 않습니다. |
전체 예제는 예제 섹션을 참조하세요.
사용
RabbitMQ 트리거에서 지원되는 매개 변수 형식은 사용되는 C# 모달리티에 따라 다릅니다.
RabbitMQ 바인딩은 현재 격리된 프로세스에서 실행할 때 문자열 및 직렬화 가능한 개체 형식만 지원합니다.
큐 메시지는 context.bindings.<NAME>이 function.json에 정의된 이름과 일치하는 <NAME>을 통해 사용할 수 있습니다. 페이로드가 JSON인 경우 값은 개체로 역직렬화됩니다.
관계망
중요합니다
RabbitMQ 바인딩은 Microsoft Entra 인증 및 관리 ID를 지원하지 않습니다. Azure Key Vault를 사용하여 RabbitMQ 연결 문자열 중앙에서 관리할 수 있습니다. 자세한 내용은 연결 관리를 참조 하세요.
확장 hostNameuserNameSettingpasswordSetting 버전 2.x부터는 RabbitMQ 서버에 대한 연결을 정의하는 데 더 이상 지원되지 않습니다. 대신 .를 사용해야 connectionStringSetting합니다.
이 속성은 connectionStringSetting 앱 설정에서 키-값 쌍의 이름만 허용할 수 있습니다. 바인딩에서 연결 문자열 값을 직접 설정할 수 없습니다.
예를 들어 바인딩 정의에서 설정한 connectionStringSettingrabbitMQConnection 경우 함수 앱에는 연결 값 또는 amqp://myuser:***@contoso.rabbitmq.example.com:5672Azure Key Vault 참조를 반환하는 앱 rabbitMQConnection 설정이 있어야 합니다.
로컬로 실행하는 경우 local.settings.json 파일에 정의된 키 값 connectionStringSetting 도 있어야 합니다. 그렇지 않으면 앱이 로컬 컴퓨터에서 서비스에 연결할 수 없으며 오류가 발생합니다.
배달 못한 편지 큐
RabbitMQ 트리거에서 배달 못한 편지 큐 및 교환을 제어하거나 구성할 수 없습니다. 배달 못한 편지 큐를 사용하려면 RabbitMQ의 트리거가 사용하는 큐를 미리 구성합니다. RabbitMQ 설명서를 참조하세요.
런타임 크기 조정 사용
RabbitMQ 트리거가 여러 인스턴스로 확장되려면 런타임 스케일링 모니터링 설정을 사용하도록 설정해야 합니다.
포털에서 이 설정은 함수 앱에 대한 구성찾을 수 있습니다.
Azure CLI에서 다음 명령을 사용하여 런타임 확장 모니터링을 사용하도록 설정할 수 있습니다.
az resource update -resource-group <RESOURCE_GROUP> -name <APP_NAME>/config/web \
--set properties.functionsRuntimeScaleMonitoringEnabled=1 \
--resource-type Microsoft.Web/sites
RabbitMQ 엔드포인트 모니터링
특정 RabbitMQ 엔드포인트의 큐 및 교환을 모니터링하는 방법은 다음과 같습니다.
- RabbitMQ 관리 플러그 인 사용
- 사용자 이름 및 암호를 사용하여
http://{node-hostname}:15672찾아서 로그인합니다.