2017-03-28 15 views
0

妥当性が確認されたときに表示されるCloudformテンプレートがあります。これはAtomのlinterツールを使用してエラーが表示されず、正しいことを確認するオンラインyaml検証ツールも使用していますが私はすべてのエラーを表示することはできません検証済みの雲情報yamlテンプレート

Template validation error: Template format error: Unresolved resource dependencies [AgentserviceSNSTopic] in the Resources block of the template 

それはエラーで失敗しCFNにテンプレートを展開する行くとき(フォーマットがものになるかどうかわからないが、テンプレートは以下の通りです)

AWSTemplateFormatVersion: '2010-09-09' 
Description: AgentService Web infra 
Outputs: 
    AgentServiceFQDN: 
    Value: 
     'Fn::GetAtt': 
     - AgentServiceELB 
     - DNSName 
Parameters: 
    AZ: 
    Default: 'ap-southeast-2a, ap-southeast-2b' 
    Description: >- 
     Comma delimited list of AvailabilityZones where the instances will be 
     created 
    Type: CommaDelimitedList 
    InstanceProfile: 
    Default: >- 
     arn:aws:iam::112888586165:instance-profile/AdvanceCodeDeployInstanceProfile 
    Description: >- 
     Use the full ARN for SimpleCodeDeployInstanceProfile or 
     AdvancedCodeDeployInstanceProfile 
    Type: String 
    InstanceType: 
    ConstraintDescription: 'Must be a valid EC2 instance type, such as t2.medium' 
    Default: t2.medium 
    Description: Provide InstanceType to be used 
    Type: String 
    KeyName: 
    ConstraintDescription: The name of an existing EC2 KeyPair. 
    Default: LMBRtraining 
    Description: Name of an existing EC2 KeyPair to enable SSH access to the instances 
    Type: 'AWS::EC2::KeyPair::KeyName' 
    PublicSubnets: 
    Default: 'subnet-bb0a3ade,subnet-fedd8389' 
    Description: Comma delimited list of public subnets 
    Type: CommaDelimitedList 
    VPCID: 
    Default: vpc-a18eccc4 
    Description: VPC ID 
    Type: String 
    WindowsAMIID: 
    Default: ami-5a989d39 
    Description: Windows AMI ID with IIS 
    Type: String 
    myIP: 
    Default: 0.0.0.0/0 
    Description: 'Enter your IP address in CIDR notation, e.g. 100.150.200.225/32' 
    Type: String 
Resources: 
    AgentServiceASG: 
    Properties: 
     AvailabilityZones: 
     Ref: AZ 
     DesiredCapacity: '2' 
     HealthCheckGracePeriod: '600' 
     HealthCheckType: ELB 
     LaunchConfigurationName: 
     Ref: AgentServiceLaunchConfig 
     LoadBalancerNames: 
     - Ref: AgentServiceELB 
     MaxSize: '2' 
     MinSize: '2' 
     NotificationConfiguration: 
     NotificationTypes: 
      - 'autoscaling:EC2_INSTANCE_LAUNCH' 
      - 'autoscaling:EC2_INSTANCE_LAUNCH_ERROR' 
      - 'autoscaling:EC2_INSTANCE_TERMINATE' 
      - 'autoscaling:EC2_INSTANCE_TERMINATE_ERROR' 
     TopicARN: 
      Ref: AgentServiceSNSTopic 
     Tags: 
     - Key: Name 
      PropagateAtLaunch: 'true' 
      Value: AgentServiceServer 
     VPCZoneIdentifier: 
     Ref: PublicSubnets 
    Type: 'AWS::AutoScaling::AutoScalingGroup' 
    AgentServiceAutoscaleDownPolicy: 
    Properties: 
     AdjustmentType: ChangeInCapacity 
     AutoScalingGroupName: 
     Ref: AgentServiceASG 
     Cooldown: '300' 
     ScalingAdjustment: '-1' 
    Type: 'AWS::AutoScaling::ScalingPolicy' 
    AgentServiceAutoscaleUpPolicy: 
    Properties: 
     AdjustmentType: ChangeInCapacity 
     AutoScalingGroupName: 
     Ref: AgentServiceASG 
     Cooldown: '300' 
     ScalingAdjustment: '1' 
    Type: 'AWS::AutoScaling::ScalingPolicy' 
    AgentServiceCloudWatchCPUAlarmHigh: 
    Properties: 
     AlarmActions: 
     - Ref: AgentServiceAutoscaleUpPolicy 
     - Ref: AgentServiceSNSTopic 
     AlarmDescription: SNS Notification and scale up if CPU Util is Higher than 90% for 10 mins 
     ComparisonOperator: GreaterThanThreshold 
     Dimensions: 
     - Name: AutoScalingGroupName 
      Value: 
      Ref: AgentServiceASG 
     EvaluationPeriods: '2' 
     MetricName: CPUUtilization 
     Namespace: AWS/EC2 
     Period: '300' 
     Statistic: Average 
     Threshold: '90' 
    Type: 'AWS::CloudWatch::Alarm' 
    AgentServiceCloudWatchCPUAlarmLow: 
    Properties: 
     AlarmActions: 
     - Ref: AgentServiceAutoscaleDownPolicy 
     - Ref: AgentserviceSNSTopic 
     AlarmDescription: SNS Notification and scale down if CPU Util is less than 70% for 10 mins 
     ComparisonOperator: LessThanThreshold 
     Dimensions: 
     - Name: AutoScalingGroupName 
      Value: 
      Ref: AgentServiceASG 
     EvaluationPeriods: '2' 
     MetricName: CPUUtilization 
     Namespace: AWS/EC2 
     Period: '300' 
     Statistic: Average 
     Threshold: '70' 
    Type: 'AWS::CloudWatch::Alarm' 
    AgentServiceELB: 
    Properties: 
     ConnectionDrainingPolicy: 
     Enabled: 'true' 
     Timeout: '60' 
     CrossZone: true 
     HealthCheck: 
     HealthyThreshold: '3' 
     Interval: '15' 
     Target: 'HTTP:80/index.html' 
     Timeout: '5' 
     UnhealthyThreshold: '3' 
     Listeners: 
     - InstancePort: '80' 
      InstanceProtocol: HTTP 
      LoadBalancerPort: '80' 
      Protocol: HTTP 
     LoadBalancerName: AgentServiceELB 
     Scheme: internet-facing 
     SecurityGroups: 
     - Ref: AgentServiceSecurityGroup 
     Subnets: 
     Ref: PublicSubnets 
     Tags: 
     - Key: Network 
      Value: public 
    Type: 'AWS::ElasticLoadBalancing::LoadBalancer' 
    AgentServiceLaunchConfig: 
    Properties: 
     AssociatePublicIpAddress: 'true' 
     IamInstanceProfile: 
     Ref: InstanceProfile 
     ImageId: 
     Ref: WindowsAMIID 
     InstanceType: 
     Ref: InstanceType 
     KeyName: 
     Ref: KeyName 
     SecurityGroups: 
     - Ref: AgentServiceSecurityGroup 
     UserData: 
     'Fn::Base64': 
      'Fn::Join': 
      - '' 
      - - | 
       <script> 
       - | 
       echo hello world > c:\\inetpub\\wwwroot\\index.html 
       - | 
       hostname >> c:\\inetpub\\wwwroot\\index.html 
       - "if not exist \\"c:\\temp\\" mkdir c:\\temp\\n" 
       - > 
       powershell.exe -Command Read-S3Object -BucketName 
       aws-codedeploy-us-east-1/latest -Key codedeploy-agent.msi -File 
       c:\\temp\\codedeploy-agent.msi 
       - > 
       c:\\temp\\codedeploy-agent.msi /quiet /l 
       c:\\temp\\host-agent-install-log.txt 
       - | 
       powershell.exe -Command Get-Service -Name codedeployagent 
       - | 
       </script> 
    Type: 'AWS::AutoScaling::LaunchConfiguration' 
    AgentServiceSNSTopic: 
    Type: 'AWS::SNS::Topic' 
    AgentServiceSecurityGroup: 
    Properties: 
     GroupDescription: AgentServiceSecurityGroup 
     InstanceAccessHTTPS: 
     Properties: 
      CidrIp: 0.0.0.0/0 
      FromPort: '443' 
      GroupId: AgentServiceSecurityGroup 
      IpProtocol: tcp 
      ToPort: '443' 
     Type: 'AWS::EC2::SecurityGroupIngress' 
     InstanceAccessPSremote: 
     Properties: 
      CidrIp: 198.18.0.0/24 
      FromPort: '5985' 
      GroupId: AgentServiceSecurityGroup 
      IpProtocol: tcp 
      ToPort: '5985' 
     Type: 'AWS::EC2::SecurityGroupIngress' 
     InstanceAccessRDP: 
     Properties: 
      CidrIp: 0.0.0.0/0 
      FromPort: '3389' 
      GroupId: AgentServiceSecurityGroup 
      IpProtocol: tcp 
      ToPort: '3389' 
     Type: 'AWS::EC2::SecurityGroupIngress' 
     InstanceAccessSMB: 
     Properties: 
      CidrIp: 198.18.0.0/24 
      FromPort: '445' 
      GroupId: AgentServiceSecurityGroup 
      IpProtocol: tcp 
      ToPort: '445' 
     Type: 'AWS::EC2::SecurityGroupIngress' 
     VpcId: 
     Ref: VPCID 
    Type: 'AWS::EC2::SecurityGroup' 
+0

この行は構文エラーです:存在しなければ ' - '\\" c:\\ temp \\ "mkdir c:\\ temp \\ n" '存在しなければ、 c:\\ temp \ "mkdir c:\\ temp \\ n" ' – flyx

答えて

1

それをどのオンラインバリデーターがあなたの "val"を受け入れているかを知ることは面白いでしょうid YAML "と表示されます。

Online YAML ParserおよびYAML Lintは、入力としてYAMLを使用すると両方とも不平を言います。

- "if not exist \\"c:\\temp\\" mkdir c:\\temp\\n" 

によりmkdir ...続く引用されたスカラー"if not exist \\"c:\\temp\\"です:これらのYAMLパーサが問題として示すライン変更した後は引用符はエスケープされている

- "if not exist \"c:\\temp\" mkdir c:\\temp\n" 

を、またはより良い読めるへ:

- | 
    if not exist "c:\temp" mkdir c:\temp 

Code Beautify YAML Validatorは、あなたのYAMLに問題があると文句を言うが、いつものようにどちらかの修正YAMLに対処することはできませんだからそれを使わないでください。

関連する問題