如何在AWS Cloudformation模板中将批处理作业队列配置为AWS :: Events :: Rule的目标

时间:2018-10-09 20:27:11

标签: amazon-web-services aws-batch

我的AWS cloudformation模板具有以下内容:

"ScheduledRule": { "Type": "AWS::Events::Rule", "Properties": { "Description": "ScheduledRule", "ScheduleExpression": "cron(0/5 * * * ? *)", "State": "ENABLED", "Targets": [{ "Here I want to set batch job queue" }] } }

我已经在模板中为AWS Batch创建了必要的实体。

"JobDefinition": {
  "Type": "AWS::Batch::JobDefinition",
  "Properties": {
    "Type": "container",
    "ContainerProperties": {
      "Image": {
                    "Ref": "ImageUrl"
                },
      "Vcpus": 2,
      "Memory": 2000,
      "Command": ["node", "server.js"]
    },
    "RetryStrategy": {
      "Attempts": 1
    }
  }
},
"JobQueue": {
  "Type": "AWS::Batch::JobQueue",
  "Properties": {
    "Priority": 1,
    "ComputeEnvironmentOrder": [
      {
        "order": 1,
        "ComputeEnvironment": { "Ref": "ComputeEnvironment" }
      }
    ]
  }
},
"ComputeEnvironment": {
  "Type": "AWS::Batch::ComputeEnvironment",
  "Properties": {
    "Type": "MANAGED", 
    "ComputeResourses": {
      "Type": "EC2",
      "MinvCpus": 2,
      "DesiredvCpus": 4,
      "MaxvCpus": 64,
      "InstanceTypes": [
        "optimal"
      ],
      "Subnets" : [{ "Ref" : "Subnet" }],
      "SecurityGroupIds" : [{ "Ref" : "SecurityGroup" }],
      "InstanceRole" : { "Ref" : "IamInstanceProfile" }
    },
    "ServiceRole" : { "Ref" : "BatchServiceRole" }
  }
}

我知道可以通过aws cloudwatch事件提交批处理作业。 AWS cloudwatch event target

我想使用批处理作业队列目标通过cloudformation模板提交我的作业。我已经看到了许多示例,这些示例通过AWS lambda函数完成批处理作业提交,但是我不想使用lambda函数。我找不到在“ AWS :: Events :: Rule”中配置了批处理作业队列目标的任何cloudformation模板

1 个答案:

答案 0 :(得分:0)

嘿,我试图自己寻找一个样本,但没有找到任何样本。通过一些测试,我弄清楚了。以为我会在这里分享。

Targets: - Arn: Ref: BatchProcessingJobQueue Id: {your_id} RoleArn: {your_role_arn} BatchParameters: JobDefinition: Ref: BatchProcessingJobDefinition JobName: {your_job_name} Input: !Sub - '{"Parameters": {"param1": "--param.name1=${param1}", "param2": "--param.name2=${param2}"}}' - param1: {param1_value} param2: {param2_value}