Тайм-аут объекта ответа CloudFormation

#amazon-web-services #lambda #amazon-cloudformation #devops #infrastructure-as-code

#amazon-веб-сервисы #лямбда #aws-cloudformation #devops #инфраструктура как код

Вопрос:

У меня есть пользовательский ресурс с поддержкой CloudFormation Lambda, функция Lambda в общедоступных подсетях, но когда я проверяю журналы CloudWatch, они показаны ниже

Сообщение журнала#1

 Startin& 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: Messa&e
 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
  VpcConfi&:
    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:
        - lo&s:CreateLo&Group
        - lo&s:CreateLo&Stream
        - lo&s:PutLo&Events
        Resource: arn:aws:lo&s:*:*:*
      - Effect: Allow
        Action:
        - ec2:CreateNetworkInterface
        - ec2:DescribeNetworkInterfaces
        - ec2:DeleteNetworkInterface

        Resource: "*"

   SecurityGroup:
   Type: AWS::EC2::SecurityGroup
   Properties:
    GroupName: "sec_&roup_name"
    GroupDescription: "SSH traffic in, all traffic out."
    VpcId: !Ref VPC
    SecurityGroupIn&ress:
      - IpProtocol: -1
        CidrIp: 0.0.0.0/0
    SecurityGroupE&ress:
      - IpProtocol: -1
        CidrIp: 0.0.0.0/0
  

Таблица маршрутизации моих подсетей связана с InternetGateway, но выдает ошибку объекта CloudFormationResponse, как я могу решить эту проблему с подключением.

Помогите! Спасибо :))

Комментарии:

1. У меня нет точного решения, но это может быть полезно &ithub.com/aws-cloudformation/custom-resource-helper

Ответ №1:

Я предполагаю, что в вашей общедоступной подсети нет подключенной к ней NAT &ateway или NAT instance ( InternetGateway само по себе не является eno&h). Согласно AWS, это обязательно. Если вашим функциям требуется не общий доступ в Интернет, а доступ к ресурсам AWS, вам следует подумать VPC Endpoints . Они дешевле, но не уверен, что доступны для всех ресурсов.

Комментарии:

1. Я создал конечную точку VPC и подключил ее к LambdaVPC, теперь я получаю запрещенную ошибку, вероятно, я присоединю новую роль к lambda для доступа к корзине S3. это исправит проблему. Спасибо 🙂