gpt4 book ai didi

amazon-web-services - 使用 Cloud Formation 时,Custom::LambdaTrigger 资源卡在 CREATE_IN_PROGRESS

转载 作者:行者123 更新时间:2023-12-03 07:19:09 24 4
gpt4 key购买 nike

我正在尝试使用 AWS Cloud Formation 创建堆栈。我有一个 Custom::LambdaTrigger 资源导致了问题。

资源在 CREATE_IN_PROGRESS 状态停留很长时间。引用下图:

enter image description here

下面是相应的云形成代码:

 "ApiDeployerTrigger": {
"Type": "Custom::LambdaTrigger",
"Properties": {
"ServiceToken": {
"Fn::GetAtt": [
"ApiDeployer",
"Arn"
]
},
"RestApiId": {
"Ref": "ApiGateway"
},
"StageName": "v1",
"SeqNo": {
"Ref": "PackageVersion"
}
},
"DependsOn": [
"ApiGateway"
]
}

然后,创建失败并发生回滚。

enter image description here

然后回滚也失败

enter image description here

更新:我查看了 CloudWatch 日志。我收到以下错误:

enter image description here

以下是创建 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com