簡體   English   中英

Beanstalk 上示例 PHP 應用程序的 AWS CloudFormation 模板失敗

[英]AWS CloudFormation template for sample PHP application on Beanstalk is failing

我正在將 PHP 應用程序部署到 ElasticBeanstalk。 首先,我正在部署一個示例 PHP 應用程序。

這是我的模板。

---
AWSTemplateFormatVersion: '2010-09-09'
Description: 'AWS CloudFormation Sample Template ElasticBeanstalk_PHP_Sample: Configure
  and launch the AWS Elastic Beanstalk PHP sample application. **WARNING** This template
  creates one or more Amazon EC2 instances. You will be billed for the AWS resources
  used if you create a stack from this template.'
Parameters:
  KeyName:
    Description: Name of an existing EC2 KeyPair to enable SSH access to the AWS Elastic
      Beanstalk instance
    Type: String
    MinLength: '1'
    MaxLength: '255'
    AllowedPattern: "[\\x20-\\x7E]*"
    ConstraintDescription: can contain only ASCII characters.
Resources:
  webApplication:
    Type: AWS::ElasticBeanstalk::Application
    Properties:
      Description: AWS Elastic Beanstalk PHP Sample Application
      ApplicationVersions:
        - VersionLabel: Initial Version
          Description: Version 1.0
          SourceBundle:
            S3Bucket:
              Fn::Join:
                - "-"
                - - elasticbeanstalk-samples
                  - Ref: AWS::Region
            S3Key: php-sample.zip
      ConfigurationTemplates:
        - TemplateName: DefaultConfiguration
          Description: Default Configuration Version 1.0 - with SSH access
          SolutionStackName: 64bit Amazon Linux 2 v3.0.3 running PHP 7.3
          OptionSettings:
            - Namespace: aws:autoscaling:launchconfiguration
              OptionName: EC2KeyName
              Value:
                Ref: KeyName
  testEnvironment:
    Type: AWS::ElasticBeanstalk::Environment
    Properties:
      ApplicationName:
        Ref: webApplication
      Description: AWS Elastic Beanstalk Environment running PHP Sample Application
      TemplateName: DefaultConfiguration
      VersionLabel: Initial Version
Outputs:
  URL:
    Description: URL of the AWS Elastic Beanstalk Environment
    Value:
      Fn::Join:
        - ''
        - - http://
          - Fn::GetAtt:
              - testEnvironment
              - EndpointURL

當我部署在終端中執行命令時,它失敗了。 這是日志。

{
    "StackEvents": [
        {
            "StackId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "EventId": "cb6d7aa0-cdf6-11ea-b52a-0af573e17780", 
            "ResourceStatus": "ROLLBACK_COMPLETE", 
            "ResourceType": "AWS::CloudFormation::Stack", 
            "Timestamp": "2020-07-24T21:44:04.668Z", 
            "StackName": "CloudFormationLaravelBeanstalk", 
            "PhysicalResourceId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "LogicalResourceId": "CloudFormationLaravelBeanstalk"
        }, 
        {
            "StackId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "EventId": "webApplication-DELETE_COMPLETE-2020-07-24T21:44:04.000Z", 
            "ResourceStatus": "DELETE_COMPLETE", 
            "ResourceType": "AWS::ElasticBeanstalk::Application", 
            "Timestamp": "2020-07-24T21:44:04Z", 
            "StackName": "CloudFormationLaravelBeanstalk", 
            "ResourceProperties": "{\"Description\":\"AWS Elastic Beanstalk PHP Sample Application\",\"ApplicationVersions\":[{\"Description\":\"Version 1.0\",\"VersionLabel\":\"Initial Version\",\"SourceBundle\":{\"S3Bucket\":\"elasticbeanstalk-samples-eu-west-1\",\"S3Key\":\"php-sample.zip\"}}],\"ConfigurationTemplates\":[{\"Description\":\"Default Configuration Version 1.0 - with SSH access\",\"OptionSettings\":[{\"Value\":\"MyanEat\",\"Namespace\":\"aws:autoscaling:launchconfiguration\",\"OptionName\":\"EC2KeyName\"}],\"TemplateName\":\"DefaultConfiguration\",\"SolutionStackName\":\"64bit Amazon Linux 2 v3.0.3 running PHP 7.3\"}]}", 
            "PhysicalResourceId": "CloudFormationLaravelBeanstalk-webApplication-197H2GUL24WJ7", 
            "LogicalResourceId": "webApplication"
        }, 
        {
            "StackId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "EventId": "webApplication-DELETE_IN_PROGRESS-2020-07-24T21:43:33.166Z", 
            "ResourceStatus": "DELETE_IN_PROGRESS", 
            "ResourceType": "AWS::ElasticBeanstalk::Application", 
            "Timestamp": "2020-07-24T21:43:33.166Z", 
            "StackName": "CloudFormationLaravelBeanstalk", 
            "ResourceProperties": "{\"Description\":\"AWS Elastic Beanstalk PHP Sample Application\",\"ApplicationVersions\":[{\"Description\":\"Version 1.0\",\"VersionLabel\":\"Initial Version\",\"SourceBundle\":{\"S3Bucket\":\"elasticbeanstalk-samples-eu-west-1\",\"S3Key\":\"php-sample.zip\"}}],\"ConfigurationTemplates\":[{\"Description\":\"Default Configuration Version 1.0 - with SSH access\",\"OptionSettings\":[{\"Value\":\"MyanEat\",\"Namespace\":\"aws:autoscaling:launchconfiguration\",\"OptionName\":\"EC2KeyName\"}],\"TemplateName\":\"DefaultConfiguration\",\"SolutionStackName\":\"64bit Amazon Linux 2 v3.0.3 running PHP 7.3\"}]}", 
            "PhysicalResourceId": "CloudFormationLaravelBeanstalk-webApplication-197H2GUL24WJ7", 
            "LogicalResourceId": "webApplication"
        }, 
        {
            "StackId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "EventId": "testEnvironment-DELETE_COMPLETE-2020-07-24T21:43:32.486Z", 
            "ResourceStatus": "DELETE_COMPLETE", 
            "ResourceType": "AWS::ElasticBeanstalk::Environment", 
            "Timestamp": "2020-07-24T21:43:32.486Z", 
            "StackName": "CloudFormationLaravelBeanstalk", 
            "ResourceProperties": "{\"ApplicationName\":\"CloudFormationLaravelBeanstalk-webApplication-197H2GUL24WJ7\",\"Description\":\"AWS Elastic Beanstalk Environment running PHP Sample Application\",\"VersionLabel\":\"Initial Version\",\"TemplateName\":\"DefaultConfiguration\"}", 
            "PhysicalResourceId": "Clou-test-2HSOCMRY8B2", 
            "LogicalResourceId": "testEnvironment"
        }, 
        {
            "StackId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "EventId": "testEnvironment-DELETE_IN_PROGRESS-2020-07-24T21:43:31.824Z", 
            "ResourceStatus": "DELETE_IN_PROGRESS", 
            "ResourceType": "AWS::ElasticBeanstalk::Environment", 
            "Timestamp": "2020-07-24T21:43:31.824Z", 
            "StackName": "CloudFormationLaravelBeanstalk", 
            "ResourceProperties": "{\"ApplicationName\":\"CloudFormationLaravelBeanstalk-webApplication-197H2GUL24WJ7\",\"Description\":\"AWS Elastic Beanstalk Environment running PHP Sample Application\",\"VersionLabel\":\"Initial Version\",\"TemplateName\":\"DefaultConfiguration\"}", 
            "PhysicalResourceId": "Clou-test-2HSOCMRY8B2", 
            "LogicalResourceId": "testEnvironment"
        }, 
        {
            "StackId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "EventId": "b5e05bd0-cdf6-11ea-80b1-062b1cfafef6", 
            "ResourceStatus": "ROLLBACK_IN_PROGRESS", 
            "ResourceType": "AWS::CloudFormation::Stack", 
            "Timestamp": "2020-07-24T21:43:28.511Z", 
            "ResourceStatusReason": "The following resource(s) failed to create: [testEnvironment]. . Rollback requested by user.", 
            "StackName": "CloudFormationLaravelBeanstalk", 
            "PhysicalResourceId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "LogicalResourceId": "CloudFormationLaravelBeanstalk"
        }, 
        {
            "StackId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "EventId": "testEnvironment-CREATE_FAILED-2020-07-24T21:43:27.905Z", 
            "ResourceStatus": "CREATE_FAILED", 
            "ResourceType": "AWS::ElasticBeanstalk::Environment", 
            "Timestamp": "2020-07-24T21:43:27.905Z", 
            "ResourceStatusReason": "Environment failed to launch as it entered Terminated state", 
            "StackName": "CloudFormationLaravelBeanstalk", 
            "ResourceProperties": "{\"ApplicationName\":\"CloudFormationLaravelBeanstalk-webApplication-197H2GUL24WJ7\",\"Description\":\"AWS Elastic Beanstalk Environment running PHP Sample Application\",\"VersionLabel\":\"Initial Version\",\"TemplateName\":\"DefaultConfiguration\"}", 
            "PhysicalResourceId": "Clou-test-2HSOCMRY8B2", 
            "LogicalResourceId": "testEnvironment"
        }, 
        {
            "StackId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "EventId": "testEnvironment-CREATE_IN_PROGRESS-2020-07-24T21:42:57.297Z", 
            "ResourceStatus": "CREATE_IN_PROGRESS", 
            "ResourceType": "AWS::ElasticBeanstalk::Environment", 
            "Timestamp": "2020-07-24T21:42:57.297Z", 
            "ResourceStatusReason": "Resource creation Initiated", 
            "StackName": "CloudFormationLaravelBeanstalk", 
            "ResourceProperties": "{\"ApplicationName\":\"CloudFormationLaravelBeanstalk-webApplication-197H2GUL24WJ7\",\"Description\":\"AWS Elastic Beanstalk Environment running PHP Sample Application\",\"VersionLabel\":\"Initial Version\",\"TemplateName\":\"DefaultConfiguration\"}", 
            "PhysicalResourceId": "Clou-test-2HSOCMRY8B2", 
            "LogicalResourceId": "testEnvironment"
        }, 
        {
            "StackId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "EventId": "testEnvironment-CREATE_IN_PROGRESS-2020-07-24T21:42:55.237Z", 
            "ResourceStatus": "CREATE_IN_PROGRESS", 
            "ResourceType": "AWS::ElasticBeanstalk::Environment", 
            "Timestamp": "2020-07-24T21:42:55.237Z", 
            "StackName": "CloudFormationLaravelBeanstalk", 
            "ResourceProperties": "{\"ApplicationName\":\"CloudFormationLaravelBeanstalk-webApplication-197H2GUL24WJ7\",\"Description\":\"AWS Elastic Beanstalk Environment running PHP Sample Application\",\"VersionLabel\":\"Initial Version\",\"TemplateName\":\"DefaultConfiguration\"}", 
            "PhysicalResourceId": "", 
            "LogicalResourceId": "testEnvironment"
        }, 
        {
            "StackId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "EventId": "webApplication-CREATE_COMPLETE-2020-07-24T21:42:53.537Z", 
            "ResourceStatus": "CREATE_COMPLETE", 
            "ResourceType": "AWS::ElasticBeanstalk::Application", 
            "Timestamp": "2020-07-24T21:42:53.537Z", 
            "StackName": "CloudFormationLaravelBeanstalk", 
            "ResourceProperties": "{\"Description\":\"AWS Elastic Beanstalk PHP Sample Application\",\"ApplicationVersions\":[{\"Description\":\"Version 1.0\",\"VersionLabel\":\"Initial Version\",\"SourceBundle\":{\"S3Bucket\":\"elasticbeanstalk-samples-eu-west-1\",\"S3Key\":\"php-sample.zip\"}}],\"ConfigurationTemplates\":[{\"Description\":\"Default Configuration Version 1.0 - with SSH access\",\"OptionSettings\":[{\"Value\":\"MyanEat\",\"Namespace\":\"aws:autoscaling:launchconfiguration\",\"OptionName\":\"EC2KeyName\"}],\"TemplateName\":\"DefaultConfiguration\",\"SolutionStackName\":\"64bit Amazon Linux 2 v3.0.3 running PHP 7.3\"}]}", 
            "PhysicalResourceId": "CloudFormationLaravelBeanstalk-webApplication-197H2GUL24WJ7", 
            "LogicalResourceId": "webApplication"
        }, 
        {
            "StackId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "EventId": "webApplication-CREATE_IN_PROGRESS-2020-07-24T21:42:51.643Z", 
            "ResourceStatus": "CREATE_IN_PROGRESS", 
            "ResourceType": "AWS::ElasticBeanstalk::Application", 
            "Timestamp": "2020-07-24T21:42:51.643Z", 
            "ResourceStatusReason": "Resource creation Initiated", 
            "StackName": "CloudFormationLaravelBeanstalk", 
            "ResourceProperties": "{\"Description\":\"AWS Elastic Beanstalk PHP Sample Application\",\"ApplicationVersions\":[{\"Description\":\"Version 1.0\",\"VersionLabel\":\"Initial Version\",\"SourceBundle\":{\"S3Bucket\":\"elasticbeanstalk-samples-eu-west-1\",\"S3Key\":\"php-sample.zip\"}}],\"ConfigurationTemplates\":[{\"Description\":\"Default Configuration Version 1.0 - with SSH access\",\"OptionSettings\":[{\"Value\":\"MyanEat\",\"Namespace\":\"aws:autoscaling:launchconfiguration\",\"OptionName\":\"EC2KeyName\"}],\"TemplateName\":\"DefaultConfiguration\",\"SolutionStackName\":\"64bit Amazon Linux 2 v3.0.3 running PHP 7.3\"}]}", 
            "PhysicalResourceId": "CloudFormationLaravelBeanstalk-webApplication-197H2GUL24WJ7", 
            "LogicalResourceId": "webApplication"
        }, 
        {
            "StackId": "arn:aws:cloudformation:eu-west-1:733553390213:stack/CloudFormationLaravelBeanstalk/9a32a280-cdf6-11ea-8a9a-0aa806e28382", 
            "EventId": "webApplication-CREATE_IN_PROGRESS-2020-07-24T21:42:51.125Z", 
            "ResourceStatus": "CREATE_IN_PROGRESS", 
            "ResourceType": "AWS::ElasticBeanstalk::Application", 
            "Timestamp": "2020-07-24T21:42:51.125Z", 
            "StackName": "CloudFormationLaravelBeanstalk", 
            "ResourceProperties": "{\"Description\":\"AWS Elastic Beanstalk PHP Sample Application\",\"ApplicationVersions\":[{\"Description\":\"Version 1.0\",\"VersionLabel\":\"Initial Version\",\"SourceBundle\":{\"S3Bucket\":\"elasticbeanstalk-samples-eu-west-1\",\"S3Key\":\"php-sample.zip\"}}],\"ConfigurationTemplates\":[{\"Description\":\"Default Configuration Version 1.0 - with SSH access\",\"OptionSettings\":[{\"Value\":\"MyanEat\",\"Namespace\":\"aws:autoscaling:launchconfiguration\",\"OptionName\":\"EC2KeyName\"}],\"TemplateName\":\"DefaultConfiguration\",\"SolutionStackName\":\"64bit Amazon Linux 2 v3.0.3 running PHP 7.3\"}]}", 
            "PhysicalResourceId": "", 
            "LogicalResourceId": "webApplication"
        }, 
        {

我的代碼有什么問題,我該如何解決?

我嘗試驗證問題並將您的模板部署在我的沙盒帳戶上。

我發現由於ConfigurationTemplates缺少實例配置文件而導致部署失敗:

            - Namespace: aws:autoscaling:launchconfiguration
              OptionName: IamInstanceProfile
              Value: !Ref MyInstanceProfile

因此,您必須使用您的 EB 實例將具有的 IAM 角色創建AWS::IAM::InstanceProfile 在基本形式中,您可以執行以下操作:

  MyInstanceRole:
    Type: AWS::IAM::Role
    Properties: 
      AssumeRolePolicyDocument:                   
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - ec2.amazonaws.com
            Action:
              - sts:AssumeRole
      Description: Beanstalk EC2 role
      ManagedPolicyArns: 
        - arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier
        - arn:aws:iam::aws:policy/AWSElasticBeanstalkMulticontainerDocker
        - arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier

  MyInstanceProfile:
    Type: AWS::IAM::InstanceProfile
    Properties: 
      Roles: 
        - !Ref MyInstanceRole

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM