9

考虑一段 AWS 批处理作业定义:

    MyJobDefinition:
        Type: "AWS::Batch::JobDefinition"
        Properties:
            Type: container
            Parameters: {}
            JobDefinitionName: "my-job-name"
            ContainerProperties:
                Command:
                    - "java"
                    - "-jar"
                    - "my-application-SNAPSHOT.jar"
                    - "--param1"
                    - "Ref::param1"
                    - "--param2"
                    - "Ref::param2"

调用哪个结果:

java -jar my-application-SNAPSHOT.jar --param1 someValue1 --param2 someValue2

如何更改工作定义以使其成为这样?(注意=标志):

java -jar my-application-SNAPSHOT.jar --param1=someValue1 --param2=someValue2

请注意,这Ref::param1不是 cloudformation 模板参数,而是aws 批处理作业参数

4

2 回答 2

-1

据我了解,AWS 批处理参数是通过查找 Ref:: 前缀来替换的。我只能找到一个线程,他们试图在更大的字符串中使用参数并且它可以工作。

鉴于此,以下应该有效

MyJobDefinition:
    Type: "AWS::Batch::JobDefinition"
    Properties:
        Type: container
        Parameters: {}
        JobDefinitionName: "my-job-name"
        ContainerProperties:
            Command:
                - "java"
                - "-jar"
                - "my-application-SNAPSHOT.jar"
                - "--param1=Ref::param1"
                - "--param2=Ref::param2"
于 2019-02-25T10:20:29.077 回答
-2

通过使用!Subwhich 评估模板中的表达式:

MyJobDefinition:
Type: "AWS::Batch::JobDefinition"
Properties:
    Type: container
    Parameters: {}
    JobDefinitionName: "my-job-name"
    ContainerProperties:
        Command:
            - "java"
            - "-jar"
            - "my-application-SNAPSHOT.jar"
            - !Sub "--param1=${param1}"
            - !Sub "--param2=${param2}"
于 2018-06-06T12:55:38.490 回答