Amazon web services AWS云信息:ECS任务定义ARN

Amazon web services AWS云信息:ECS任务定义ARN,amazon-web-services,amazon-cloudformation,amazon-ecs,amazon-cloudwatch,Amazon Web Services,Amazon Cloudformation,Amazon Ecs,Amazon Cloudwatch,我已经创建了cfn模板来定期触发cloudwatch事件,以运行Fargate启动类型的ecs任务。 CW规则如下所示: sfECSScheduleEventRule: Type: AWS::Events::Rule Description: '' Properties: State: ENABLED ScheduleExpression: rate(1 minute) Name: !Sub sf-eventrule-ecs-${WPRegion}-${WPEnv} Target

我已经创建了cfn模板来定期触发cloudwatch事件,以运行Fargate启动类型的ecs任务。 CW规则如下所示:

sfECSScheduleEventRule:
Type: AWS::Events::Rule
Description: ''
Properties:
  State: ENABLED
  ScheduleExpression: rate(1 minute)
  Name: !Sub sf-eventrule-ecs-${WPRegion}-${WPEnv}
  Targets:
  - Id: !Sub sf-ecs-target-task-${WPRegion}-${WPEnv}
    Arn: !GetAtt
      - ECSCluster
      - Arn
    RoleArn: !GetAtt
      - ECSTaskExecutionRole
      - Arn
    EcsParameters:
      #arn:aws:ecs:ap-northeast-1:448965722616:task-definition/fargate-task-jp-stg:latest
      TaskDefinitionArn: !Ref sfECSTaskDefinition          
      TaskCount: !Ref ECSTaskDesiredCount
      LaunchType: FARGATE
      PlatformVersion: 'LATEST'
      NetworkConfiguration:
        AwsVpcConfiguration:
          AssignPublicIp: DISABLED
          Subnets:
          - !Ref sfPrivateSubnet1
创建堆栈时,我发现规则的目标如下所示:

无法触发任务。但是,当我手动将任务修订版从4更改为最新的,它就会工作。任务定期执行

如何更改规则以使其指向最新规则?

您正在使用:

TaskDefinitionArn: !Ref sfECSTaskDefinition 
根据版本号,返回带有修订号的arn。还根据:

如果未提供任务修订,则默认为创建资源时的最新修订

因此,我认为如果您手动创建arn,您应该能够获得最新版本

!Sub "arn:aws:ecs:${AWS::Region}:${AWS::AccountId}:task-definition/fargate-task-jp-stg"

不知道您的任务系列名称
fargate task jp stg
是否在模板中参数化。如果是,那么您也可以在
子部分
内在函数中引用它。

我不知道还有什么问题?您为什么创建CW事件规则而不使用功能?非常感谢。手动arn工作正常。顺便说一句,不是AWS::Account Id,而是AWS::AccountId