Ресурс aws_sns_subscription
Используйте ресурс проверки aws_sns_subscription InSpec для проверки подробных свойств подписки на AWS SNS.
Синтаксис
Блок ресурса aws_sns_subscription использует параметры ресурса для поиска подписки SNS и затем проверяет свойства подписок. Если ни одна подписка не соответствует, ошибка не возникает, но exists соответствие вернёт false, и все свойства будут nil.
describe aws_sns_subscription('arn:aws:sns:us-east-1::test-topic-01:b214aff5-a2c7-438f-a753-8494493f2ff6') do
it { should exist }
end
Параметры
subscription_arn (обязательно)
Этот ресурс принимает один параметр, subscription_arn. Он может быть передан либо как строка, либо как subscription_arn: 'value' элемент ключ-значение в хэше.
См. также документацию AWS по SNS.
Свойства
| Свойство | Описание |
|---|---|
| arn | Целое число, указывающее минимальное количество экземпляров в группе автомасштабирования |
| owner | Целое число, указывающее максимальное количество экземпляров в группе автомасштабирования |
| raw_message_delivery | Целое число, указывающее желаемое количество экземпляров в группе автомасштабирования |
| topic_arn | Имя конфигурации запуска автомасштабирования, связанной с группой автомасштабирования |
| protocol | Массив строк, соответствующих идентификаторам подсетей, связанных с группой автомасштабирования |
| confirmation_was_authenticated | Хэш с каждой парой ключ-значение, соответствующей тегу, связанному с объектом |
Примеры
Проверка конечной точки
describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::test-topic-01:b214aff5-a2c7-438f-a753-8494493f2ff6' ) do
# If protocol is 'sms', this should be a phone number:
its('endpoint') { should cmp '+16105551234' }
# If protocol is 'email' or 'email-json', endpoint should be an email address
its('endpoint') { should cmp 'myemail@example.com' }
# If protocol is 'http', endpoint should be a URL beginning with 'https://'
its('endpoint') { should cmp 'https://www.exampleurl.com' }
# If the protocol is 'lambda', its endpoint should be the ARN of a AWS Lambda function
its('endpoint') { should cmp 'rn:aws:lambda:us-east-1:account-id:function:myfunction' }
end
Проверка идентификатора владельца
describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::test-topic-01:b214aff5-a2c7-438f-a753-8494493f2ff6' ) do
its('owner') { should cmp '12345678' }
end
Проверка конечной точки
describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::test-topic-01:b214aff5-a2c7-438f-a753-8494493f2ff6' ) do
its('protocol') { should cmp 'sqs' }
end
Сопоставления
exist
Управление пройдет, если описание вернёт по крайней мере один результат.
Используйте should_not для проверки, что сущность не должна существовать.
it { should exist }
it { should_not exist }
be_confirmation_authenticated
Предоставляет информацию о том, был ли запрос подтверждения подписки аутентифицирован.
describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::NOGOOD:b214aff5-a2c7-438f-a753-8494493f2ff6')
it { should be_confirmation_authenticated }
end
have_raw_message_delivery
Предоставляет информацию о том, передаётся ли исходное сообщение как есть, не форматируется как json или yaml.
describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::NOGOOD:b214aff5-a2c7-438f-a753-8494493f2ff6')
it { should have_raw_message_delivery }
end
Разрешения AWS
У вашего Принципала потребуется действие sns:GetSubscriptionAttributes с эффектом Allow.
Подробную документацию вы можете найти по адресу Действия, ресурсы и ключи условий для Amazon SNS.
© 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_sns_subscription/