如何从触发的Fargate任务访问CloudWatch事件数据? [英] How to access CloudWatch Event data from triggered Fargate task?

查看:13
本文介绍了如何从触发的Fargate任务访问CloudWatch事件数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我阅读了有关如何Run an Amazon ECS Task When a File is Uploaded to an Amazon S3 Bucket的文档。但是,本文档并未说明如何从Fargate任务代码本身的触发事件中获取存储桶/键值。如何做到这一点?

推荐答案

我不确定您是否还需要这个问题的答案。但我做了一些与Steven1978提到的类似的事情,但只使用了CloudForms。

您要查找的配置是InputTransformer。检查此示例以获取事件规则的YAML CloudForment模板:

rEventRuleForFileUpload:
Type: AWS::Events::Rule
Properties:
  Description: "EventRule"
  State: "ENABLED"
  EventPattern:
    source:
      - "aws.s3"
    detail-type:
      - 'AWS API Call via CloudTrail'
    detail:
      eventSource:
        - s3.amazonaws.com
      eventName:
        - "PutObject"
        - "CompleteMultipartUpload"
      requestParameters:
        bucketName: "{YOUR_BUCKET_NAME}"

  Targets:
    - Id: '{YOUR_ECS_CLUSTER_ID}'
      Arn: !Sub "arn:aws:ecs:${AWS::Region}:${AWS::AccountId}:cluster/${NAME_OF_YOUR_CLUSTER_RESOURCE}"
      RoleArn: !GetAtt {YOUR_ROLE}.Arn
      EcsParameters:
        TaskCount: 1
        TaskDefinitionArn: !Ref {YOUR_TASK_DEFINITION}
        LaunchType: FARGATE

        {... WHATEVER CONFIG YOU MIGHT HAVE...}

      InputTransformer:
        InputPathsMap:
          s3_bucket: "$.detail.requestParameters.bucketName"
          s3_key: "$.detail.requestParameters.key"
        InputTemplate: '{ "containerOverrides": [ { "name": "{THE_NAME_OF_YOUR_CONTAINER_DEFINITION}", "environment": [ { "name": "EVENT_BUCKET", "value": <s3_bucket> }, { "name": "EVENT_OBJECT_KEY", "value": <s3_key> }] } ] }'

使用此方法,您将能够将S3存储桶名称(EVENT_BACKET)和S3对象键(EVENT_OBJECT_KEY)作为容器内的环境变量。

信息确实不是很清楚,但以下是我用来最终使其正常工作的一些来源:

容器覆盖; https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerOverride.html

InputTransformer: https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html#API_InputTransformer_Contents

这篇关于如何从触发的Fargate任务访问CloudWatch事件数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆