#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. это исправит проблему. Спасибо 🙂