使用 AWS CLoudFormation 模板在 tomcat 上部署 Java 应用程序的自定义食谱

Posted

技术标签:

【中文标题】使用 AWS CLoudFormation 模板在 tomcat 上部署 Java 应用程序的自定义食谱【英文标题】:Custom cook book to deploy java app on tomcat using AWS CLoudFormation template 【发布时间】:2015-01-16 20:40:11 【问题描述】:

我正在尝试使用 AWS opsworks 部署 java webapp/tomcat,但我没有找到任何在 ec2 上配置 tomcat 然后部署我的 java 应用程序的说明书。有人可以为我提供定制食谱吗? 我需要应用程序的链接和自定义说明书。实际上我正在尝试使用云形成模板。

我的云形成模板

    "myStack": 
            "Type": "AWS::OpsWorks::Stack",
            "Properties": 
                             "CustomCookbooksSource": 
                             "Type": "git",
                             **"Url": "xxx (url for the cookbook)"**
                              
                          
     

--

"myApp": 
                "Type": "AWS::OpsWorks::App",
                "Properties": 
                    "StackId": 
                        "Ref": "myStack"
                    ,
                    "Type": "java",
                    "Name": 
                        "Ref": "AppName"
                    ,
                    "AppSource": 
                        "Type": "git",
                        **"Url": "xxx (url for the java app)",**
                        "Revision": "version2"
                    ,
                    "Attributes": 
                        "DocumentRoot": "web"
                    
                
            

**显示需要更改的地方。

【问题讨论】:

【参考方案1】:

也许我不理解某个警告,但 OpsWorks 对您的应用的默认部署是否有问题?

在 OpsWorks 中,如果您转到应用程序,您可以选择添加一个应用程序,然后将其部署到您的 Java 应用程序服务器层中的任何/所有正在运行的实例。如果您选择以这种方式添加/部署您的应用程序,OpsWorks 会为您做很多工作,并让您的应用程序以合理的默认值正确运行/设置。

我不知道 OpsWorks 在部署时的具体操作,但可以在 GitHub 上查看 OpsWorks 在不同生命周期事件中使用的 Chef 配方。您可以在 https://github.com/aws/opsworks-cookbooks 上查看它们,或者在 OpsWorks 本身中单击一个层,然后单击配方,然后单击您要查看的配方。

这个通过 OpsWorks 控制台的默认添加应用和部署对我有用。

注意:我通常做的是依赖 OpsWorks 对我的 Java webapp 的默认部署,但是我有额外的自定义说明书来制作一些目录、设置环境变量等——但对于webapp 的部署,我让 OpsWorks 处理。

【讨论】:

以上是关于使用 AWS CLoudFormation 模板在 tomcat 上部署 Java 应用程序的自定义食谱的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Cloudformation 模板/CDK 中添加 AWS IoT 配置模板

在 Cloudformation 模板中为 AWS API Gateway 使用 IAM 角色

使用 cloudformation 模板的 AWS Lambda 的动态环境变量

如何修复与 AWS::CloudFormation::Init 一起创建 EC2 的 cloudformation 模板

AWS:使用 cloudformation 模板将 WAF 附加到 api 网关

使用 PyYAML 库解析 AWS CloudFormation 模板