如何在CloudFormation cfn-init中启动长期运行的JAR?

时间:2019-06-12 09:00:19

标签: amazon-web-services spring-boot amazon-cloudformation

我正在尝试使用JAR文件启动Spring引导服务器。 通常,这是通过java -jar springboot.jar &

执行的

但是我在使用CloudFormation执行此操作时遇到了麻烦,但这似乎不起作用。

我正在尝试通过cfn-init来做到这一点:

"AWS::CloudFormation::Init" : {
    "config" : {
        "commands": {
            "start_server": {
                "command": "bash startup_script.sh &",
                "cwd": "/home/ec2-user"
             }
        }

但是初始化没有通过。

2 个答案:

答案 0 :(得分:1)

在这种情况下,我认为使用ec2的userdata属性就足够了。但是,如果您在生成繁琐的AWS :: CloudFormation :: Init对象方面需要更多帮助,则可以使用cloudkast,它是在线cloudformation模板生成器。

答案 1 :(得分:0)

一种非常简单的方法是添加一个CreationPolicy并根据需要设置超时时间

CreationPolicy:
    ResourceSignal:
      Count: '3'
      Timeout: PT15M

根据需要进行调整。我在cfn-init块中使用了此功能,该块需要执行可能需要半小时的任务。