0

我有一个 lambda 函数,它需要与几个 aws 服务(EC2、其他 lambda 函数、api 网关、Elastic Search 服务)通信。所有这些服务都在现有 vpc 的私有子网内。如何通过 cloudformation 模板添加策略/角色,以便我可以访问我的 lambda 函数以与这些其他服务进行通信。另外,我是否需要定义一个安全组。现在有一个默认安全组应用于没有任何入站/出站规则的所有资源。

AWSTemplateFormatVersion: 2010-09-09

Parameters: 

  VPCId: 
    Type: AWS::EC2::VPC::Id

Resources:
  # S3 Bucket
  S3Bucket:
    Type: AWS::S3::Bucket

  # Functions
  S3-Lambda-trigger:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: .
      Handler: lambda.handler
      Description: s3 object creation triggers lambda
      Runtime: nodejs12.x
      Events:
        S3Bucket:
          Type: S3
          Properties:
            Bucket: !Ref S3Bucket
            Events: 's3:ObjectCreated:*'

  # Permissions
  Allow-lamda-invocation-s3:
    Type: AWS::Lambda::Permission
    Properties:
      Action: 'lambda:InvokeFunction'
      FunctionName: !Ref S3-Lambda-trigger
      Principal: s3.amazonaws.com
      SourceArn: !GetAtt S3Bucket.Arn

4

0 回答 0