首页 文章

无法使用多个IIS应用程序创建弹性beanstalk

提问于
浏览
0

我正在尝试将 生产环境 Web服务器迁移到AWS,该服务器是基于Windows的IIS,在1个网站下定义了多个应用程序 . 我尝试过Elastic Beanstalk和Cloud . 我更喜欢弹性beanstalk,但我会很满意任何具有自动缩放和简单部署例程的东西 .

我创建了一个带有一个子应用程序的示例网站,它在本地工作正常 . 我尝试编辑弹性beanstalk的默认AMI,以添加额外的应用程序并部署到它 . 当我尝试使用新的AMI重新部署应用程序时,它无法完成部署失败并出现以下错误 .

[实例:i-3f13bc11模块:AWSEBAutoScalingGroup配置:Infra-WriteRuntimeConfig,Infra-WriteApplication1,Infra-WriteApplication2,Infra-EmbeddedPreBuild,Hook-PreAppDeploy,Hook-EnactAppDeploy,Infra-EmbeddedPostBuild,Hook-PostAppDeploy]命令在实例上失败 . 返回码:1输出:null .

我确实尝试使用visual studio附带的 Cloud 形成模板,它也没有工作,它失败了一个非常相似的错误信息 .

1 回答

  • 3

    执行此操作的最佳方法是使用CloudFormation创建自动缩放组 . 在LaunchConfiguration类型中,您可以从S3添加文件并指示IIS安装应用程序 . 例如:

    "WebAsSpotLaunchConfiguration" : {
                "Type" : "AWS::AutoScaling::LaunchConfiguration",
                "Metadata" : {
                    "AWS::CloudFormation::Init" : {
                        "config" : {
                            "sources" : {
                                "C:\\inetpub\\wwwroot" : {
                                    "Fn::Join" : [
                                        "/",
                                        [
                                            "http://s3.amazonaws.com",
                                            {
                                                "Ref" : "DeployS3Bucket"
                                            },
                                            {
                                                "Ref" : "DeployWebS3Key"
                                            }
                                        ]
                                    ]
                                }
                            },
                            "commands" : {
                                "1-add-app-1" : {
                                    "command" : "C:\\Windows\\System32\\inetsrv\\appcmd add app /site.name:MySite /path:/app1 /physicalPath:C:\inetpub\mysite\app1",
                                    "waitAfterCompletion" : "0"
                                },
                                "2-add-app-2"     : {
                                    "command" : "C:\\Windows\\System32\\inetsrv\\appcmd add app /site.name:MySite /path:/app2 /physicalPath:C:\inetpub\mysite\app2",
                                    "waitAfterCompletion" : "0"
                                }
                            }
                        }
                    },
    

    我意识到,如果您还不知道CloudFormation,可能需要一些时间来设置 . 但我认为值得投资 .

相关问题