如何将带参数的命名参数传递给aws批处理?

Che*_*rry 7 amazon-web-services aws-cloudformation docker aws-batch

考虑一下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"
Run Code Online (Sandbox Code Playgroud)

调用哪个结果:

java -jar my-application-SNAPSHOT.jar --param1 someValue1 --param2 someValue2
Run Code Online (Sandbox Code Playgroud)

如何更改作业定义以使其喜欢(注意等号):

java -jar my-application-SNAPSHOT.jar --param1=someValue1 --param2=someValue2
Run Code Online (Sandbox Code Playgroud)

请注意,Ref::param1它不是cloudformation模板参数,而是批量作业参数.

Man*_*ash -2

据我了解,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"
Run Code Online (Sandbox Code Playgroud)

  • 这是错误的。批处理不支持字符串内替换。仅用于完整的论证。 (4认同)