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

标签 amazon-web-services docker aws-cloudformation 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"

调用哪个结果:

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

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

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

请注意,Ref::param1不是cloudformation模板参数,而是aws batch job params .

最佳答案

在 Java 中,从命令行运行应用程序时,您可以使用 -D 选项传递环境变量。将 param1 替换为环境变量的名称,将 param1_value 替换为您要分配给它的实际值。

  MyJobDefinition:
            Type: "AWS::Batch::JobDefinition"
            Properties:
                Type: container
                Parameters: {}
       
    
         JobDefinitionName: "my-job-name"
            ContainerProperties:
                Command:
                    - "java"
                    - "-Dparam1=${param1_value}"
                    - "-Dparam2={param2_value}"
                    - "-Dparam3={param2_value}"
                    - "-jar"
                    - "my-application-SNAPSHOT.jar"

例如,如果您有一个名为 DATABASE_URL 的环境变量,并且希望将其值传递给 Java 应用程序,则可以使用:

java -DDATABASE_URL=jdbc:mysql://localhost:3306/dbname -jar YourApplication.jar

在 Java 应用程序中,您可以使用 System.getProperty() 方法访问环境变量值:

String databaseUrl = System.getProperty("DATABASE_URL");

databaseUrl 变量将包含从命令行传递的值。希望这会有所帮助。

关于amazon-web-services - 如何将带参数的命名参数传递给 aws 批处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50703311/

相关文章:

amazon-web-services - 如何在无服务器 1.0 中更改 aws 凭据?

javascript - 如何在 Docker 构建上缓存 node_modules?

aws-cloudformation - 是否有一种机制可以从云形成模板中创建的实例中获取值

amazon-web-services - AWS Cloudformation 向 lambda 函数添​​加多层

amazon-web-services - Jenkins Cloudformation 插件给出无效客户端 ID 错误

amazon-web-services - 是否可以使用本地负载均衡器连接到 AWS EC2 Autoscaling 组?

java - DynamoDB 表达式 - 多个 ExpectedAttributeValues 比较

amazon-web-services - 使用 AWS ALB 让子域指向不同的目标组

python - salt : several minions on one host?

docker - 没有此类属性:类:Script4的ToInputStream