Cloud Formation:环境无法启动,因为它进入了已终止状态
Posted
技术标签:
【中文标题】Cloud Formation:环境无法启动,因为它进入了已终止状态【英文标题】:Cloud Formation: Environment failed to launch as it entered Terminated state 【发布时间】: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 时,它给出了“环境在进入终止状态时无法启动”。然后它说以下资源未能创建:[示例环境]。用户请求回滚。
【参考方案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
【讨论】:
以上是关于Cloud Formation:环境无法启动,因为它进入了已终止状态的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AWS SAM Cloud-Formation 中使用 Route53 设置自定义域名
Cloud Formation 模板将入口规则添加到现有安全组
如何使用 Cloud Formation 模板在 S3 存储桶上设置 SSE-S3 或 SSE-KMS 加密?