Spec-Zone.ru › Chef 17

Ресурс aws_dynamodb_table

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

Используйте ресурс проверки InSpec aws_dynamodb_table для проверки свойств отдельной таблицы DynamoDb.

Синтаксис

Обеспечить существование таблицы DynamoDb.

describe aws_dynamodb_table(table_name: 'table-name') do
  it { should exist }
end

Параметры

table_name (обязательно)

Имя таблицы, используемое в этой таблице DynamoDb. Оно должно передаваться в виде table_name: 'value' пары ключ-значение в хэше.

Свойства

Свойство Описание
table_name Имя таблицы DynamoDb.
table_status Состояние таблицы DynamoDb.
table_arn Amazon Resource Names таблицы DynamoDb.
creation_date Дата создания таблицы DynamoDb. Пример: 01/01/2019
number_of_decreases_today Количество снижений выделенной пропускной способности для этой таблицы в течение текущего UTC-календарного дня.
write_capacity_units Максимальное количество записей, потребляемых в секунду, прежде чем DynamoDb вернёт ThrottlingException.
read_capacity_units Максимальное количество чтений с сильной согласованностью, потребляемых в секунду, прежде чем DynamoDb вернёт ThrottlingException.
item_count Количество записей в таблице DynamoDb.
attributes Массив атрибутов, описывающих схему ключей для таблицы и индексов. Возвращается в виде хэша. Каждая запись состоит из: attribute_name - Имя атрибута ключа. attribute_type - Тип данных атрибута : B - Boolean, N - Число, S - строка
key_schema Указывает атрибуты, составляющие первичный ключ для таблицы или индекса. Возвращается в виде хэша. Атрибуты в KeySchema также должны быть определены в массиве Attributes. Каждый элемент в массиве KeySchemaElement состоит из: attribute_name - Имя атрибута ключа. key_type - Роль, которую будет выполнять атрибут ключа: HASH - ключ разбиения, RANGE - сортирующий ключ
global_secondary_indexes Список глобальных вторичных индексов, если они имеются в выбранной таблице.

Примеры

Обеспечить, чтобы состояние таблицы DynamoDb было активным

describe aws_dynamodb_table(table_name: 'table-name') do
  its('table_status') { should eq 'ACTIVE' }
end

Обеспечить, чтобы таблица DynamoDb имела атрибут

describe aws_dynamodb_table(table_name: 'table-name') do
  its('attributes') { should_not be_empty }
  its('attributes') { should include({:attribute_name =>'table_field', :attribute_type =>'N'}) }
end

Обеспечить, чтобы таблица DynamoDb имела key_schema

describe aws_dynamodb_table(table_name: 'table-name') do
  its('key_schema') { should_not be_empty }
  its('key_schema') { should include({:attribute_name =>'table_field', :key_type =>'HASH'}) }
end

Обеспечить, чтобы в таблице DynamoDb был установлен правильный набор глобальных вторичных индексов

aws_dynamodb_table(table_name: 'table-name').global_secondary_indexes.each do |global_sec_idx|
  describe global_sec_idx do
    its('index_name') { should eq 'TitleIndex' }
    its('index_status') { should eq 'ACTIVE' }
    its('key_schema') { should include({:attribute_name =>'Title', :key_type =>'HASH'}) }
    its('provisioned_throughput.write_capacity_units') { should cmp 10 }
    its('provisioned_throughput.read_capacity_units') { should cmp 10 }
    its('projection.projection_type') { should eq 'INCLUDE' }
  end
end

Сопоставители

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

exist

Управление пройдёт, если описание вернёт как минимум один результат.

Используйте should_not для проверки того, что сущность не должна существовать.

describe aws_dynamodb_table(table_name: 'table-name') do
  it { should exist }
end

describe aws_dynamodb_table(table_name: 'table-name') do
  it { should_not exist }
end

Разрешения AWS

Вашему принципалу потребуется действие DynamoDB::DescribeTable с эффектом Allow.

Подробную документацию можно найти по адресу действия, ресурсы и ключи условий для Amazon Dynamodb.

© 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/aws_dynamodb_table/

Spec-Zone.ru

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