首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建AWS Cloudwatch事件以触发AWS批处理

创建AWS Cloudwatch事件以触发AWS批处理
EN

Stack Overflow用户
提问于 2020-02-06 06:45:51
回答 1查看 1.3K关注 0票数 1

我一直在读AWS云监视事件文档触发AWS批,我不知道如何从cloudwatch事件触发aws批处理:

在aws中,我可以使用以下bash代码成功地执行aws批处理作业:

代码语言:javascript
复制
BATCH_JOB_QUEUE_NAME="test-batch-job-queue"
BATCH_JOB_DEFINITION_NAME="test-batch-job-def"

BATCH_JOB_DEFINITION_ARN=$( aws batch describe-job-definitions \
  --job-definition-name ${BATCH_JOB_DEFINITION_NAME} \
  --status ACTIVE \
  | jq -r '.jobDefinitions | max_by(.revision).jobDefinitionArn' \
) && echo ${BATCH_JOB_DEFINITION_ARN}

echo "Submitting job with additional ${SIZE_OF_RAM}GB RAM\n"
aws batch submit-job \
    --job-name ${BATCH_JOB_NAME} \
    --job-queue `aws batch describe-job-queues --job-queues $BATCH_JOB_QUEUE_NAME | jq ".jobQueues[].jobQueueArn" -r` \
    --job-definition $BATCH_JOB_DEFINITION_ARN \
    --parameters configFile="s3://${BUCKET_NAME}/${PROJECT_NAME}/config.json" \   <=== *****important configuration
    --container-overrides vcpus=16,memory=16000 \ .               <=== *****important configuration
    --profile ${PROJECT_NAME}-${environment}

但是对于AWS Cloudwatch事件,我在cloudformation中得到了一个错误

代码语言:javascript
复制
Resources:
  TestBatchSchedule:
    Type: AWS::Events::Rule
    Properties:
      Description: Test bi-monthly schedule
      Name: TestBiMonthlySchedule
      ScheduleExpression: cron(0 7 * * 2) # every two weeks at 7 am
      State: 'ENABLED'
      Targets: 
        - Arn: test-arn
          BatchParameters: 
            JobDefinition: 
              Fn::ImportValue: !Sub "${Environment}-test-batch-def"
            JobName: "test-batch-scheduled-job"
            RetryStrategy: 
              Attempts: 1
          Id: test-id
          InputTransformer: 
            InputPathsMap:
              parameters:
                configFile: s3://test-batch-bucket/test-project/config.json
              containerProperties:
                vcpus: 16
                memory: 32000
            InputTemplate: "s3://test-batch-bucket/test-project/config.json"

返回此错误:

属性InputPathsMap的值必须是具有字符串(或简单类型)属性的对象。

我的具体问题是如何将parameterscontainer overrides部分添加到cloudformation::Events::Rule?我也想把它保存在yaml里。

EN

回答 1

Stack Overflow用户

发布于 2020-02-12 08:06:58

根据https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html#cfn-events-rule-inputtransformer-inputpathsmap

InputPathsMap是一个数组键值对,其中每个值都是有效的JSON路径。你可以有多达10个键值对。您必须使用JSON点表示法,而不是括号表示法。

我还没查过,你能试一下吗?

代码语言:javascript
复制
InputPathsMap:
   parameters.configFile: s3://test-batch-bucket/test-project/config.json
   parameters.containerProperties.vcpus: 16
   parameters.containerProperties.memory: 32000
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60089140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档