作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 AWS Cloud Formation 创建堆栈。我有一个 Custom::LambdaTrigger 资源导致了问题。
资源在 CREATE_IN_PROGRESS 状态停留很长时间。引用下图:
下面是相应的云形成代码:
"ApiDeployerTrigger": {
"Type": "Custom::LambdaTrigger",
"Properties": {
"ServiceToken": {
"Fn::GetAtt": [
"ApiDeployer",
"Arn"
]
},
"RestApiId": {
"Ref": "ApiGateway"
},
"StageName": "v1",
"SeqNo": {
"Ref": "PackageVersion"
}
},
"DependsOn": [
"ApiGateway"
]
}
然后,创建失败并发生回滚。
然后回滚也失败
更新:我查看了 CloudWatch 日志。我收到以下错误:
以下是创建 lambda 函数的代码:
"ApiDeployer": {
"Properties": {
"Code": {
"ZipFile": {
"Fn::Join": [
"\n", [
"var aws = require('aws-sdk');",
"var response = require('cfn-response');",
"exports.handler = function(event, context, callback){",
"console.log(event);",
"try{",
" var apigateway = new aws.APIGateway();",
" if (event.RequestType == 'Update' || event.RequestType == 'Create'){",
" var params = {};",
" params.restApiId = event.ResourceProperties.RestApiId;",
" params.stageName = event.ResourceProperties.StageName;",
" apigateway.createDeployment(params, function(err, data) {",
" if (err){",
" console.log(err);",
" response.send(event, context, response.FAILED, err);",
" callback(null);",
" }else {",
" console.log(data);",
" var id = event.PhysicalResourceId ? event.PhysicalResourceId : 'Deployment'+new Date().toISOString().replace(/[-T\\:.Z]/ig,'');",
" response.send(event, context, response.SUCCESS, data, id);",
" callback(null, 'Deployed API');",
" }",
" });",
" }else{",
" response.send(event, context, response.SUCCESS, {}, event.PhysicalResourceId);",
" allback(null);",
" }",
"} catch(e) {",
" console.log(e);",
" response.send(event, context, response.FAILED, e);",
" callback(null);",
"}",
"};"
]
]
}
},
"Handler": "index.handler",
"Role": {
"Fn::GetAtt": [
"ApiLambdaExecutionRole",
"Arn"
]
},
"Runtime": "nodejs10.x",
"Timeout": 60
},
"Type": "AWS::Lambda::Function"
}
任何线索,可能出了什么问题?
最佳答案
这似乎是 lamda 运行时 nodejs10.x 的问题。
无法找到 cfn-response 模块。
将 var response = require('cfn-response')
更改为 var response = require('./cfn-response')
解决了该问题。
关于amazon-web-services - 使用 Cloud Formation 时,Custom::LambdaTrigger 资源卡在 CREATE_IN_PROGRESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59114597/
我正在尝试使用 AWS Cloud Formation 创建堆栈。我有一个 Custom::LambdaTrigger 资源导致了问题。 资源在 CREATE_IN_PROGRESS 状态停留很长时间
对于 CDK 实现,“AWS CloudFormation 目前不支持”属性通常意味着什么,具体来说: 在 Cognito 用户池 Lambda 配置的 CloudFormation 属性中,它显示:
我是一名优秀的程序员,十分优秀!