Я получаю сообщение «Шаблон содержит ошибки. [/ Resources / CloudTrail / Type / EventSelectors]« пустые »значения не допускаются в шаблонах» ошибка при попытке проверить шаблон облачной информации.
"Conditions": "S3Enabled": "Fn::Equals": - "IsS3Enabled" - "true" "Parameters": "IsS3Enabled": "AllowedValues": - "true" - "false" "Default": "true" "Description": "whether you want cloudtrail enabled for S3" "Type": "String" "LambdaArns": "Default": "arn:aws:lambda" "Description": "The lambda arns of cloudtrail event selectors" "Type": "CommaDelimitedList" "S3Arns": "Default": "'arn:aws:s3:::'" "Description": "The S3 arns of cloudtrail event selectors" "Type": "CommaDelimitedList" "Resources": "CloudTrail": "DependsOn": - "CloudTrailLogBucketPolicy" "Properties": "EnableLogFileValidation": "true" "EventSelectors": "DataResources": {"Fn::If" : ["S3Enabled", { "Type": "AWS::S3::Object", "Values": !Ref "S3Arns"}, {"Type": "AWS::Lambda::Function", "Values": !Ref "LambdaArns"}]} "IncludeGlobalServiceEvents": "true" "IsLogging": "true" "IsMultiRegionTrail": "true" "S3BucketName": "Ref": "CloudTrailLogBucket" "S3KeyPrefix": "sample" "TrailName": "sample" "Type": "AWS::CloudTrail::Trail"
Ресурсы, которые я использую
Я прошел через похожие вопросы, оба они приводят к отступу, но не могу найти ошибку в моем шаблоне.
CloudFormation Linter ловит это с:
E0000: Null value at line 31 column 24
DataResources недостаточно отступ, и EventSelectors и DataResources оба должны быть списками
DataResources
EventSelectors
Все члены списка - это строки, начинающиеся с одного и того же уровня отступа, начинающиеся с "-" (да sh и пробел)
Я бы рекомендовал, чтобы этот фрагмент кода работал без Fn::If, сначала так:
Fn::If
"Resources": "CloudTrail": "DependsOn": - "CloudTrailLogBucketPolicy" "Properties": "EnableLogFileValidation": "true" "EventSelectors": - "DataResources": - Type: AWS::S3::Object Values: !Ref S3Arns
, а затем с помощью Fn::If для установки первого DataResource в списке DataResources
DataResource