进入终止状态时环境无法启动

时间:2018-11-20 11:44:07

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

设置
Serverless.com框架

目标
通过无服务器创建AWS Elastic Beanstalk槽

代码
serverless.yml

service: aws-beanstalk-sls
description: Test stack deployment 

provider:
  name: aws
  stage: running
  region: eu-central-1
  profile: beanstalk-test-deployment

resources:
  Resources:
    sampleApplication:
      Type: AWS::ElasticBeanstalk::Application
      Properties:
        Description: AWS Elastic Beanstalk Sample Application

    sampleApplicationVersion:
      Type: AWS::ElasticBeanstalk::ApplicationVersion
      Properties:
        ApplicationName:
          Ref: sampleApplication
        Description: AWS ElasticBeanstalk Sample Application Version
        SourceBundle:
          S3Bucket: elasticbeanstalk-samples-eu-central-1
          S3Key: nodejs-sample.zip

    sampleConfigurationTemplate:
      Type: AWS::ElasticBeanstalk::ConfigurationTemplate
      Properties:
        SolutionStackName: 64bit Amazon Linux 2018.03 v4.7.0 running Node.js
        Description: AWS ElasticBeanstalk Sample Configuration Template
        ApplicationName:
          Ref: sampleApplication
        OptionSettings:
        - Namespace: aws:autoscaling:asg
          OptionName: MinSize
          Value: '2'
        - Namespace: aws:autoscaling:asg
          OptionName: MaxSize
          Value: '6'
        - Namespace: aws:elasticbeanstalk:environment
          OptionName: EnvironmentType
          Value: LoadBalanced

    sampleEnvironment:
      Type: AWS::ElasticBeanstalk::Environment
      Properties:
        ApplicationName:
          Ref: sampleApplication
        Description: AWS ElasticBeanstalk Sample Environment
        TemplateName:
          Ref: sampleConfigurationTemplate
        VersionLabel:
          Ref: sampleApplicationVersion

错误
发生错误:sampleEnvironment-进入“已终止”状态时环境无法启动。

注意
配置文件 beanstalk-test-deployment 已经具有IAM角色:

  • AWSElasticBeanstalkFullAccess
  • AdministratorAccess

1 个答案:

答案 0 :(得分:2)

您需要创建 aws-elasticbeanstalk-ec2-role AWS :: IAM :: InstanceProfile并将其提供在sampleConfigurationTemplate的OptionSettings中:

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

该角色可以使用以下托管策略Arns:

- arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier
- arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier
- arn:aws:iam::aws:policy/AWSElasticBeanstalkMulticontainerDocker