Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
В этой статье описаны дополнительные параметры конфигурации, которые можно задать при использовании триггера Функции Azure для Azure Cosmos DB.
Включение журналов, специфичных для триггеров
Триггер функций Azure для Azure Cosmos DB внутренне использует библиотеку обработчика ленты изменений, а библиотека создает набор журналов работоспособности, которые можно использовать для мониторинга внутренних операций и устранения неполадок.
Журналы работоспособности описывают, как ведет себя триггер функций Azure для Azure Cosmos DB при попытке выполнить операции во время балансировки нагрузки, инициализации и обработки сценариев.
Включение ведения журналов
Чтобы включить ведение журнала при использовании триггера Функции Azure для Azure Cosmos DB, найдите host.json файл в проекте Функции Azure или приложении Функции Azure и настройте необходимый уровень ведения журнала. Включите трассировку Host.Triggers.CosmosDB, как показано в следующем примере:
{
"version": "2.0",
"logging": {
"fileLoggingMode": "debugOnly",
"logLevel": {
"Host.Triggers.CosmosDB": "Warning"
}
}
}
После развертывания функции Azure с обновленной конфигурацией вы увидите триггер Azure Functions для журналов Azure Cosmos DB в ваших трассировках. Журналы можно просмотреть у вашего настроенного поставщика логирования в категорииHost.Triggers.CosmosDB.
Какой тип журналов издаётся?
После включения существует четыре уровня событий журнала, которые будут выдаваться:
Ошибка.
- Если при обработке канала изменений возникла неизвестная или критическая ошибка, которая влияет на правильную работу триггеров.
Предупреждение.
- Если в пользовательском коде функции возникло необработанное исключение. В коде функции есть пробел, и функция не устойчива к ошибкам или ошибке сериализации (для функций C# необработанный код JSON не может быть десериализирован в выбранный тип C#).
- При возникновении временных проблем с подключением триггер не будет взаимодействовать с учетной записью Azure Cosmos DB. В случае этих временных ошибок подключения триггер повторит попытку выполнить операцию, но если они будут возникать в течение длительного периода времени, может возникнуть проблема с сетью. Трассировки уровня отладки можно включить для получения диагностики из основного SDK Azure Cosmos DB.
Сведения.
- Когда аренда передается другому экземпляру — во время инициализации и при масштабировании функции аренды могут быть перебалансированы на другой экземпляр. Если вы настроили интервалы приобретения или истечения срока действия, это также может указывать на то, что значения могут быть неуместными (интервал истечения срока действия меньше, чем продление).
Отладка.
- Если экземпляр получил аренду — текущий экземпляр начнет обработку канала изменений для аренды.
- Если экземпляр освободил аренду — текущий экземпляр завершил обработку канала изменений для аренды.
- Если изменения доставляются из триггера в код функции — помогает отлаживать ситуации, когда в коде функции могут возникнуть, и вы не уверены, получаете ли вы изменения или нет.
- Для трассировок, которые являются предупреждениями и ошибками, добавляет сведения о диагностике из базового пакета SDK Azure Cosmos DB для устранения неполадок.
Вы также можете обратиться к исходному коду, чтобы просмотреть полные сведения.
Выполнение запросов к журналам
Выполните следующий запрос для получения журналов, созданных триггером функций Azure для Azure Cosmos DB в средстве аналитики Azure Application Insights Analytics:
traces
| where customDimensions.Category == "Host.Triggers.CosmosDB"
Настройка политики подключения
Существует два режима подключения: режим прямого подключения и режим шлюза. Дополнительные сведения об этих режимах подключения см. в статье Режимы подключения. По умолчанию Gateway используется для установления всех подключений в контексте триггера Функций Azure для Azure Cosmos DB. Тем не менее, это может быть не лучшим вариантом для сценариев, ориентированных на производительность.
Изменение режима и протокола подключения
Для настройки политики подключения для клиента используются два основных параметра конфигурации: режим и протокол подключения. Вы можете изменить режим подключения по умолчанию и протокол, используемый триггером Функции Azure для Azure Cosmos DB и всеми привязками Azure Cosmos DB). Чтобы изменить параметры по умолчанию, вам потребуется найти host.json в своем проекте или приложении Функций Azure и добавить следующий дополнительный параметр.
{
"cosmosDB": {
"connectionMode": "Direct",
"protocol": "Tcp"
}
}
В connectionMode должен быть указан необходимый режим подключения (прямое подключение или шлюз), а в protocol — желаемый протокол подключения (Tcp для прямого режима или Https для режима шлюза).
Если проект Функций Azure работает со средой выполнения Функций Azure версии 1, в имени конфигурации есть небольшое различие. Вместо documentDB следует использовать cosmosDB.
{
"documentDB": {
"connectionMode": "Direct",
"protocol": "Tcp"
}
}
Настройка агента пользователя
Триггер Функции Azure для Azure Cosmos DB выполняет запросы к службе, которая будет отражена в мониторинге. Вы можете настроить агент пользователя, используемый для запросов из функции Azure, изменив userAgentSuffixhost.jsonдополнительные параметры:
{
"cosmosDB": {
"userAgentSuffix": "MyUniqueIdentifier"
}
}
Примечание.
При размещении приложения-функции в плане потребления каждому экземпляру будет предоставлено ограниченное количество подключений через сокет, которые он может обеспечивать. При работе в режиме Direct / TCP по замыслу создается больше подключений, что может достигать предельного значения для плана потребления. В этом случае вы можете либо использовать режим шлюза, либо разместить ваше приложение функции в плане премиум класса или выделенном плане (App Service).
Следующие шаги
- Ограничения подключений в Azure Functions
- Включение мониторинга в приложениях Функций Azure.
- Узнайте, как диагностировать и устранять распространенные проблемы при использовании триггера Функции Azure для Azure Cosmos DB.