написание шаблона cfn для запуска fargate через события cloudwatch - PullRequest
0 голосов
/ 04 апреля 2020

Я не могу получить TaskDefinitionArn в переменной.

Я пытаюсь сделать следующее:

cloudwatchTriggerForLambdaFunction:
Type: 'AWS::Events::Rule'
Properties:
  Description: 'Trigger Lambda function according to the specified schedule'
  ScheduleExpression: !Ref CronExpression
  State: ENABLED
  Targets:
    - Arn: !Sub '${LambdaFunction.Arn}'
      Id: cloudwatchTriggerForLambdaFunction
    - Arn: !GetAtt FargateLauncher.Arn
      Id: fargate-launcher
      Input: 
        !Sub |
          {
               taskDefinition: "${TaskDefinitionArn}"
           }

, но выше выдает ошибку, как показано ниже:

 An error occurred (ValidationError) when calling the CreateStack operation: Template error: instance of Fn::Sub references invalid resource attribute TaskDefinitionArn.

Я не могу получить значение TaskDefinitionArn в параметре, так как он будет создан во время выполнения, поэтому должен получить значение l ie выше. Просьба предложить какое-то решение этого. Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 05 апреля 2020

Я согласен - но я использую эту подходную ссылку ниже для запуска задачи fargate с триггером cloudwatch, где он использует TaskDefinitionArn в качестве параметра. Что я не хочу делать. Я хочу получить значение самого Арна во время выполнения моей задачи.

Дайте мне знать, если вы не получили мой запрос.

создание 'Target' для правила события cloudwatch с помощью облачной информации для задачи запуска типа fargate

0 голосов
/ 07 апреля 2020

Мне пришлось немного изменить свой подход.

Теперь я использую прямой триггер Cloudwatch для задачи fargate вместо запуска лямбда-функции для запуска задачи fargate.

Таким образом, этот запрос кажется недействительным.

Если вы попробуете этот способ, попробуйте создать в обычном порядке , как

**arn:aws:ecs:${AWS::AccountId}:${AWS:Region}**
0 голосов
/ 05 апреля 2020

Поскольку ваше имя ресурса TaskDefinition, вы должны ссылаться на него по имени.

{
    taskDefinition: "${TaskDefinition}"
}

Но согласно этой aws документации , должно быть определено правило события ecs. как показано ниже

{
  "Group" : String,
  "LaunchType" : String,
  "NetworkConfiguration" : NetworkConfiguration,
  "PlatformVersion" : String,
  "TaskCount" : Integer,
  "TaskDefinitionArn" : String
}

, поэтому ключ должен быть TaskDefinitionArn, а не taskDefinition. Пожалуйста, посмотрите на ссылку.

...