Spec-Zone.ru › Chef 16

azurerm_webapp ресурс

[править на GitHub]

Используйте azurerm_webapp ресурс аудита InSpec, чтобы протестировать свойства веб-приложения Azure.

Версия Azure REST API

Этот ресурс взаимодействует с версией 2016-08-01 API Azure Management. Дополнительную информацию см. в официальной документации Azure.

В настоящее время, похоже, нет способа выбрать версию документации API Azure. Если вы заметите упоминание новой версии в официальной документации, откройте вопрос или отправьте запрос на вытягивание с использованием обновлённой версии.

Доступность

Установка

Этот ресурс доступен в inspec-azure пакете ресурсов. Для его использования добавьте следующее в свой inspec.yml в профиле верхнего уровня:

depends:
  inspec-azure:
    git: https://github.com/inspec/inspec-azure.git

Вам также потребуется настроить свои учетные данные Azure; см. README пакета ресурсов.

Синтаксис

Блок ресурса azurerm_webapp идентифицирует веб-приложение AppService по имени и группе ресурсов.

describe azurerm_appservice_webapp(resource_group: 'example', name: 'webapp name') do
  ...
end

Примеры

Проверка наличия указанного веб-приложения в группе ресурсов

Проверьте, что в примере группы ресурсов есть указанное веб-приложение и проверьте, что настройки аутентификации включены. Проверьте, что включен HTTP 2.0.

describe azurerm_webapp(resource_group: 'example', name: 'webapp_name') do
  it { should exist }
  its('auth_settings.properties') { should have_attributes(enabled: false) }
  its('configuration.properties') { should have_attributes(http20Enabled: true) }
end

Проверка веб-приложения на использование последней поддерживаемой версии .NET

describe azurerm_webapp(resource_group: resource_group, name: wa_name) do
  it { should be_using_latest('aspnet') }
end

Проверка веб-приложения на использование последней поддерживаемой версии Python

describe azurerm_webapp(resource_group: resource_group, name: wa_name) do
  it { should be_using_latest('python') }
end

Параметры

  • name
  • resource_group

Примеры параметров

Группа ресурсов, а также имя веб-приложения.

describe azurerm_webapp(resource_group: 'example', name: 'webapp_name') do
  it { should exist }
end

describe azurerm_webapp(resource_group: 'example', name: 'webapp_name').auth_settings do
  its('properties') { should have_attributes(enabled: true) }
end

Атрибуты

  • id
  • name
  • location
  • properties
  • identity
  • auth_settings
  • configuration

Все атрибуты доступны через нотацию точек. Это пример доступных в настоящее время атрибутов.

control 'azurerm_webapp' do
  describe azurerm_webapp(resource_group: 'example', name: 'webapp_name') do
    it                                  { should exist }
    its('properties.enabled')           { should cmp true }
    its('properties.clientCertEnabled') { should cmp true }
    its('properties.enabledHostNames')  { should cmp 'webapp_name.azurewebsites.net' }
    its('properties.httpsOnly')         { should cmp true }
  end
end

Другие атрибуты

Существуют дополнительные атрибуты, к которым можно получить доступ, которые мы не документировали. Обратитесь к документации Azure. Любой атрибут в ответе можно получить, используя имена ключей, разделенные точками (.).

API не всегда возвращает ключи, не имеющие связанных данных. В некоторых случаях глубоко вложенное свойство может не содержать нужного атрибута в вашей цепочке вызовов. Если вы обнаружите необходимость тестирования свойств, которые могут быть null, разделите этот пакет ресурсов и добавьте аксессор к ресурсу. В этом аксессоре вы сможете защитить от нулевых ключей. Запросы на вытягивание всегда приветствуются.

Матчеры

Этот ресурс аудита InSpec имеет следующие специальные матчеры. Полный список доступных матчеров см. на нашей странице универсальных матчеров.

using_latest?(stack)

Проверяет, использует ли развернутое веб-приложение Azure последнюю поддерживаемую версию данного языка/стека. Поддерживаемые стеки (например, python, java, php, node) можно найти в разделе properties конфигурации веб-приложения в документации.

it { should be_using_latest('php') }
it { should be_using_latest('java') }
it { should be_using_latest('python') }
it { should be_using_latest('aspnet') }
it { should be_using_latest('dotnetcore') }

exists

Управление пройдёт, если ресурс вернёт результат. Используйте should_not если ожидается ноль совпадений.

# If we expect 'webapp_name' to have a Managed Service Identity
describe azurerm_webapp(resource_group: 'example', name: 'webapp_name') do
  it { should have_identity }
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_webapp/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API