Spec-Zone.ru › Chef 17

azurerm_webapp ресурс

[редактировать на GitHub]

Используйте azurerm_webapp ресурс проверки InSpec, чтобы протестировать свойства Azure Webapp.

Версия Azure REST API

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

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

Доступность

Установка

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

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

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

Синтаксис

Блок ресурса azurerm_webapp определяет AppService Webapp по имени и группе ресурсов.

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

Примеры

Проверка и подтверждение наличия указанной Webapp в группе ресурсов

Проверьте, что у примера группы ресурсов есть указанная Webapp и проверьте, включены ли настройки аутентификации. Проверьте, включен ли 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

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

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

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

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

Параметры

  • name
  • resource_group

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

Группа ресурсов и имя Webapp.

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 может не всегда возвращать ключи, не имеющие связанных данных. Могут быть случаи, когда глубоко вложенное свойство может не содержать желаемого атрибута в вашей цепочке вызовов. Если вы обнаружите себя создавая тесты на свойства, которые могут быть nil, создайте копию этого пакета ресурсов и добавьте аксессор к ресурсу. В этом аксессоре вы сможете защититься от nil ключей. Pull request всегда приветствуются.

Матчеры

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

using_latest?(stack)

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

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