Шаблон облачной информации для отправки журналов облачных часов вasticsearch - PullRequest
0 голосов
/ 19 ноября 2018

Я ищу шаблон Cloudformation для отправки журналов cloudwatch вasticsearch в другой учетной записи.Даже с той же учетной записью все будет в порядке, и я могу это обновить.

Похоже на стандартную проблему, но не видел ни одного шаблона, который автоматизировал бы шаги, описанные в https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_ES_Stream.html.

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Я должен был обновить ответ. Это то, что я написал, это минималистичная версия потоковых журналов от CW до Elastic Search.


  Resources:
      LambdaElasticSearchExecutionRole:
          Properties:
            AssumeRolePolicyDocument:
              Statement:
              - Action: ['sts:AssumeRole']
                Effect: Allow
                Principal:
                  Service: [lambda.amazonaws.com]
              Version: '2012-10-17'
            Policies:
            - PolicyDocument:
                Statement:
                - Action: ['es:ESHttpPost']
                  Effect: Allow
                  Resource: "*"
                - Action: ['logs:CreateLogGroup', 'logs:CreateLogStream', 'logs:PutLogEvents']
                  Effect: Allow
                  Resource: "arn:aws:logs:*:*:*"
                - Action: ['lambda:InvokeFunction']
                  Effect: Allow
                  Resource: "arn:aws:logs:*:*:*"
                Version: '2012-10-17'
              PolicyName: lambdaRoleElasticSearchStreaming
          Type: AWS::IAM::Role

      ESStreamingLambda:
         Type: AWS::Lambda::Function
         DependsOn: LambdaElasticSearchExecutionRole
         Properties:
           Handler: index.handler
           Role:
             Fn::GetAtt: [LambdaElasticSearchExecutionRole, Arn]
           Code:
             S3Bucket: {'Fn::Sub': 'do-not-delete-cw-es-log-streaming-lamda-${AWS::Region}'}
             S3Key: LogsToElasticsearch.zip
           Runtime: nodejs4.3

      LambdaPermissionForCWInvokation:
         DependsOn: ESStreamingLambda
         Type: AWS::Lambda::Permission
         Properties:
          Action: lambda:InvokeFunction
          FunctionName:
            Fn::GetAtt: [ESStreamingLambda, Arn]
          Principal: {'Fn::Sub': 'logs.${AWS::Region}.amazonaws.com'}
  APILogsToElasticSearchSubscriptionFilter:
    Type: AWS::Logs::SubscriptionFilter
    DependsOn: [ESStreamingLambda, LambdaPermissionForCWInvokation]
    Properties:
      DestinationArn:
        Fn::GetAtt: [ESStreamingLambda, Arn]
      FilterPattern: ''
      LogGroupName: {Ref: LambdaLogGroup}
```java
0 голосов
/ 19 ноября 2018

Я сейчас пытаюсь сделать то же самое.Я нашел эти примеры на данный момент:

...