【问题标题】:Cloud Formation: Environment failed to launch as it entered Terminated stateCloud Formation:环境无法启动,因为它进入了已终止状态
【发布时间】:2020-09-15 20:28:57
【问题描述】:

我正在构建一个弹性豆茎环境。运行模板时出现上述错误。我添加了 IAM 角色,让 EC2 可以完全访问云形成

 Resources:
  TestApp:
    Type: 'AWS::ElasticBeanstalk::Application'
    Properties: {}
    Metadata:
      'AWS::CloudFormation::Designer':
        id: 53bb2af6-3a68-487a-8048-34f111147171

  EBE1RNK0:
    Type: 'AWS::ElasticBeanstalk::Environment'
    Properties:
      ApplicationName: !Ref TestApp
      Description: AWS Elastic Beanstalk Environment running Node Sample Application
      EnvironmentName: NodejsEnvironment
      SolutionStackName: 64bit Amazon Linux 2 v5.0.1 running Node.js 12
      OptionSettings:
        - Namespace: aws:autoscaling:launchconfiguration
          OptionName: InstanceType
          Value: t1.micro

【问题讨论】:

  • 如果你进入 EB 控制台,点击失败的部署,你应该能看到比这更有用的错误信息。
  • 作为旁注。 t2.micro 比 t1.micro 更新,它也在免费层中。
  • 我遇到的问题是它创建了 SampleApplication 但是当它移动到 SampleEnvironment 时,它给出了“环境在进入终止状态时无法启动”。然后它说以下资源未能创建:[示例环境]。用户请求回滚。

标签: amazon-web-services amazon-elastic-beanstalk amazon-cloudformation


【解决方案1】:

查看屏幕截图,它在尝试访问 S3 后就失败了——这就是你的嫌疑人。 AWS Docs 说 beanstalk 将需要访问 S3、Xray 和 CloudWatch Logs 并提供以下示例策略。您的角色是否包含这些权限?

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "BucketAccess",
      "Action": [
        "s3:Get*",
        "s3:List*",
        "s3:PutObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::elasticbeanstalk-*",
        "arn:aws:s3:::elasticbeanstalk-*/*"
      ]
    },
    {
      "Sid": "XRayAccess",
      "Action": [
        "xray:PutTraceSegments",
        "xray:PutTelemetryRecords"
      ],
      "Effect": "Allow",
      "Resource": "*"
    },
    {
      "Sid": "CloudWatchLogsAccess",
      "Action": [
        "logs:PutLogEvents",
        "logs:CreateLogStream",
        "logs:DescribeLogStreams",
        "logs:DescribeLogGroups"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:logs:*:*:log-group:/aws/elasticbeanstalk*"
      ]
    }
  ]
}

【讨论】:

  • 嗨,是的,我拥有必要的权限。我已经解决了这个错误。这是因为我没有添加实例配置文件角色。它允许您在实例启动时将角色信息传递给 EC2 实例。
【解决方案2】:

已解决:我错过了添加实例配置文件,因为这将使我能够在实例开始运行时将信息传递给 EC2。

这应该在您的选项设置下方。如下所示。

OptionSettings:
    - Namespace: 'aws:autoscaling:launchconfiguration'
      OptionName: IamInstanceProfile
      Value: aws-elasticbeanstalk-ec2-role

【讨论】:

    猜你喜欢
    • 2020-09-15
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 2018-04-25
    • 2022-11-24
    相关资源
    最近更新 更多