【问题标题】:CloudFormation Response Object TimeoutCloudFormation 响应对象超时
【发布时间】:2019-08-04 02:28:21
【问题描述】:

我有一个 CloudFormation Lambda 支持的自定义资源, 公共子网中的 Lambda 函数,但是当我检查下面显示的 cloudWatch 日志时

日志消息#1

Starting new HTTPS connection (1): cloudformation-custom-resource-response-eucentral1.s3.eu-central-1.amazonaws.com

日志消息#2

Task timed out after 30.03 seconds

我该如何处理这个问题,我的cloudformation如下所示。

 Resources:
 HelloWorld: #Custom Resource
Type: Custom::HelloWorld
Properties:
  ServiceToken:
    Fn::GetAtt:
    - TestFunction #Reference to Function to be run
    - Arn #ARN of the function to be run
  Input1:
    Ref: Message
 TestFunction: #Lambda Function
 Type: AWS::Lambda::Function
 Properties:
  Code:
    S3Bucket:
      Ref: S3Bucket
    S3Key:
      Ref: S3Key
  Handler:
    Fn::Join:
    - ''
    - - Ref: ModuleName
      - ".lambda_handler"
  Role:
    Fn::GetAtt:
    - LambdaExecutionRole
    - Arn
  VpcConfig:
    SecurityGroupIds:
      - !Ref SecurityGroup
    SubnetIds:
      - Fn::Select: [ 0, !Ref PublicSubnet1 ]
      - Fn::Select: [ 0, !Ref PublicSubnet2 ]
  Runtime: python2.7
  Timeout: '30'
   LambdaExecutionRole: #IAM Role for Custom Resource
Type: AWS::IAM::Role
Properties:
  AssumeRolePolicyDocument:
    Version: '2012-10-17'
    Statement:
    - Effect: Allow
      Principal:
        Service:
        - lambda.amazonaws.com
      Action:
      - sts:AssumeRole
  Path: "/"
  Policies:
  - PolicyName: root
    PolicyDocument:
      Version: '2012-10-17'
      Statement:
      - Effect: Allow
        Action:
        - logs:CreateLogGroup
        - logs:CreateLogStream
        - logs:PutLogEvents
        Resource: arn:aws:logs:*:*:*
      - Effect: Allow
        Action:
        - ec2:CreateNetworkInterface
        - ec2:DescribeNetworkInterfaces
        - ec2:DeleteNetworkInterface

        Resource: "*"

   SecurityGroup:
   Type: AWS::EC2::SecurityGroup
   Properties:
    GroupName: "sec_group_name"
    GroupDescription: "SSH traffic in, all traffic out."
    VpcId: !Ref VPC
    SecurityGroupIngress:
      - IpProtocol: -1
        CidrIp: 0.0.0.0/0
    SecurityGroupEgress:
      - IpProtocol: -1
        CidrIp: 0.0.0.0/0

我的子网路由表与 InternetGateway 关联,但它给出 CloudFormationResponse 对象错误,我该如何解决这个连接问题。

帮助!谢谢:))

【问题讨论】:

标签: amazon-web-services lambda amazon-cloudformation devops infrastructure-as-code


【解决方案1】:

我猜您的公共子网没有附加NAT gatewayNAT instance(仅InternetGateway 还不够)。根据AWS,这是必需的。如果您的函数不需要一般的 Internet 访问,但需要访问 AWS 资源,您应该考虑VPC Endpoints。它们更便宜,但不确定是否适用于所有资源。

【讨论】:

  • 我已经创建了 VPC Endpoint 并将其附加到 LambdaVPC ,现在我收到了 Forbidden 错误,可能我会将新角色附加到 lambda 以访问 S3 存储桶。这将解决这个问题。谢谢:)
猜你喜欢
  • 1970-01-01
  • 2014-03-09
  • 1970-01-01
  • 2020-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-17
  • 1970-01-01
相关资源
最近更新 更多