azurerm_monitor_activity_log_alert ресурс
Используйте azurerm_monitor_activity_log_alert ресурс проверки InSpec для тестирования свойств оповещения журнала событий Azure Monitor.
Версия Azure REST API
Этот ресурс взаимодействует с версией 2017-04-01 API управления Azure. Дополнительную информацию см. в официальной документации Azure.
В настоящий момент нет способа выбрать версию документации API Azure. Если вы заметите упоминание новой версии в официальной документации, откройте проблему или отправьте запрос на вытягивание с использованием обновленной версии.
Доступность
Установка
Этот ресурс доступен в inspec-azure пакете ресурсов. Чтобы использовать его, добавьте следующее в свой inspec.yml в профиле верхнего уровня:
depends:
- name: inspec-azure
git: https://github.com/inspec/inspec-azure.git
Вам также необходимо настроить свои учетные данные Azure; см. README пакета ресурсов.
Синтаксис
Блок ресурса azurerm_monitor_activity_log_alert определяет оповещение журнала событий по имени и группе ресурсов.
describe azurerm_monitor_activity_log_alert(resource_group: 'example', name: 'AlertName') do
...
end
Примеры
Проверка, что пример ресурса содержит оповещение журнала событий
describe azurerm_monitor_activity_log_alert(resource_group: 'example', name: 'AlertName') do
it { should exist }
end
Проверка, что пример ресурса содержит оповещение журнала событий с правильной операцией
describe azurerm_monitor_activity_log_alert(resource_group: 'example', name: 'AlertName') do
its('operations') { should include 'Microsoft.Authorization/policyAssignments/write' }
end
Параметры
nameresource_group
Примеры параметров
Группа ресурсов и имя оповещения журнала событий.
describe azurerm_monitor_activity_log_alert(resource_group: 'example', name: 'AlertName') do
its('operations') { should include 'Microsoft.Authorization/policyAssignments/write' }
end
Атрибуты
Дополнительную информацию об этих атрибутах см. в документации Azure REST API.
idnameoperationspropertiesconditions
id
Идентификатор оповещения журнала событий.
its('id') { should eq(id) }
name
Имя оповещения журнала событий.
its('name') { should eq(name) }
operations
Коллекция операций может быть проверена на наличие или отсутствие заданной строки операции.
its('operations') { should include 'Microsoft.Authorization/policyAssignments/write' }
properties.actions
Список действий, которые выполняются при выполнении условия.
properties.description
Описание оповещения.
its('properties.description') { should eq 'Alert description' }
properties.enabled
Указывает, включено ли это оповещение (true|false).
its('properties.enabled') { should be_true }
properties.scopes
Список ресурсов, к которым применяется это оповещение. В этом списке должно быть как минимум один элемент.
its('properties.scopes') { should include 'subscriptions/SUBSCRIPTION_ID' }
Другие атрибуты
Существуют дополнительные атрибуты, к которым можно получить доступ, которые мы не задокументировали. Пожалуйста, ознакомьтесь с документацией Azure. Любой атрибут в ответе можно получить с помощью имен ключей, разделенных точками (.).
API может не всегда возвращать ключи, не содержащие связанных данных. Могут быть случаи, когда глубоко вложенная свойство может не иметь нужного атрибута вдоль цепочки вызовов. Если вы обнаруживаете, что пишете тесты для свойств, которые могут быть нулевыми, создайте вилку этого пакета ресурсов и добавьте в него аксессор к ресурсу. В этом аксессоре вы сможете защититься от нулевых ключей. Запросы на вытягивание всегда приветствуются.
Сопоставители
Этот ресурс проверки InSpec имеет следующие специальные сопоставители. Полный список доступных сопоставителей можно найти на нашей странице Универсальные сопоставители.
exists
Управление будет пройдено, если ресурс вернет результат. Используйте should_not если вы ожидаете нулевые совпадения.
# If we expect 'AlertName' to always exist
describe azurerm_monitor_activity_log_alert(resource_group: 'example', name: 'AlertName') do
it { should exist }
end
# If we expect 'OtherAlertName' to never exist
describe azurerm_monitor_activity_log_alert(resource_group: 'example', name: 'OtherAlertName') do
it { should_not exist }
end
Разрешения Azure
Ваш сервис-принцип должен быть настроен с ролью contributor на подписке, которую вы хотите протестировать.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/azurerm_monitor_activity_log_alert/