Могу ли я изменить тип транспорта Azure Service Bus, используемый func?
Я запустил c:\Users\xxxx.azurelogicapps\dependents\FuncCoreTools\func хост start --verbose
и я заметил следующее на выходе:
[2024-05-16T12:41:47.806Z] ServiceBusOptions
[2024-05-16T12:41:47.808Z] {
[2024-05-16T12:41:47.808Z] "ClientRetryOptions": {
[2024-05-16T12:41:47.809Z] "Mode": "Exponential",
[2024-05-16T12:41:47.809Z] "TryTimeout": "00:01:00",
[2024-05-16T12:41:47.810Z] "Delay": "00:00:00.8000000",
[2024-05-16T12:41:47.810Z] "MaxDelay": "00:01:00",
[2024-05-16T12:41:47.811Z] "MaxRetries": 3
[2024-05-16T12:41:47.811Z] },
[2024-05-16T12:41:47.812Z] "TransportType": "AmqpTcp",
[2024-05-16T12:41:47.812Z] "WebProxy": "",
[2024-05-16T12:41:47.813Z] "AutoCompleteMessages": true,
[2024-05-16T12:41:47.813Z] "PrefetchCount": 0,
[2024-05-16T12:41:47.814Z] "MaxAutoLockRenewalDuration": "00:05:00",
[2024-05-16T12:41:47.814Z] "MaxConcurrentCalls": 128,
[2024-05-16T12:41:47.815Z] "MaxConcurrentSessions": 8,
[2024-05-16T12:41:47.815Z] "MaxConcurrentCallsPerSession": 1,
[2024-05-16T12:41:47.816Z] "MaxMessageBatchSize": 1000,
[2024-05-16T12:41:47.816Z] "MinMessageBatchSize": 1,
[2024-05-16T12:41:47.817Z] "MaxBatchWaitTime": "00:00:30",
[2024-05-16T12:41:47.817Z] "SessionIdleTimeout": "",
[2024-05-16T12:41:47.818Z] "EnableCrossEntityTransactions": false
[2024-05-16T12:41:47.818Z] }
Примечание. «Типе транспорта»: «AmqpTcp».
Я знаю, что наш корпоративный брандмауэр не пропускает трафик на 5671,5672, но с 443 все в порядке.
В конечном итоге я хочу запустить приложение логики в VSCode (которое использует fun.exe). Есть ли способ настроить тип транспорта, используемый func (в VSCode), для использования AMQP через веб-сокеты, то есть порт 443?
Ихтесам прав. Параметры конфигурации служебной шины описаны здесь: Learn.microsoft.com/azure/azure-functions/…





Комментарий Ихтесама Африна является решением. Спасибо Ихтесам
в host.json добавьте «serviceBus»: { "transportType": "amqpWebSockets" }
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Workflows",
"version": "[1.*, 2.0.0)"
},
"extensions": {
"workflow": {
"settings": {
"Runtime.WorkflowOperationDiscoveryHostMode": "true"
}
},
"serviceBus": {
"transportType": "amqpWebSockets"
}
}
}
Вы можете установить значение TransportType в файле host.json, как показано ниже.
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
},
"enableLiveMetricsFilters": true
}
},
"concurrency": {
"dynamicConcurrencyEnabled": true,
"snapshotPersistenceEnabled": true
},
"extensions": {
"serviceBus": {
"transportType": "amqpWebSockets"
}
}
}
Чтобы установить порт, вам нужно использовать веб-прокси в host.json.
"extensions": {
"serviceBus": {
"transportType": "amqpWebSockets",
"webProxy": "<proxy address and port>"
}
}
Я получаю результат ниже уровня.

Пожалуйста, обратитесь к MS Doc, чтобы узнать больше о настройках host.json.
попробуйте добавить
"extensions": { "serviceBus": { "transportType": "amqpWebSockets" } }в файл host.json