我已经为eb应用程序创建了一个工作环境,以便通过使用cron.yaml
(位于应用程序的根目录中)来利用其“定期任务”功能。这是一个简单的sinatra应用程序(目前),我想用它来向相应的Web服务器环境发出请求。
但是,我无法通过eb cli进行部署。下面是我运行eb deploy
会发生的情况。
╰─➤ eb deploy
Creating application version archive "4882".
Uploading myapp/4882.zip to S3. This may take a while.
Upload Complete.
INFO: Environment update is starting.
ERROR: Service:AmazonCloudFormation, Message:Stack named 'awseb-e-1a2b3c4d5e-stack'
aborted operation. Current state: 'UPDATE_ROLLBACK_IN_PROGRESS'
Reason: The following resource(s) failed to create: [AWSEBWorkerCronLeaderRegistry].
我到处查看了CloudFormation仪表板,以检查是否有可能的错误。在阅读了有关
AWSEBWorkerCronLeaderRegistry
的一些知识之后,我发现它很可能是被更新/创建的DynamoDB
表。但是,当我在DynamoDB
仪表板中查看时,没有列出任何表。与往常一样,我们将向您提供任何帮助,反馈或指导。
最佳答案
如果您不愿意添加完整的DynamoDB访问权限(就像我以前一样),那么Beanstalk现在提供了针对Worker环境权限的托管策略(AWSElasticBeanstalkWorkerTier)。您可以尝试将其中之一添加到实例配置文件角色中。
参见http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-instanceprofile.html
关于amazon-web-services - AWS Elasticbeanstalk : cannot deploy to worker environment via eb cli,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30147043/