无服务器 - 添加触发器以使用现有池失败部署 - CREATE_FAILED:CustomDashresourceDashexistingDashcupLambdaFunction

问题描述 投票:0回答:1

我正在向现有 Cognito 用户池添加新触发器,但是当对其使用“existing: true”时,部署失败并出现以下错误:

Environment: darwin, node 16.16.0, framework 3.35.2 (local), plugin 7.0.5, SDK 4.4.0
Credentials: Local, "XXX-XXXX" profile
Docs:        docs.serverless.com
Support:     forum.serverless.com
Bugs:        github.com/serverless/serverless/issues


Error:
CREATE_FAILED: CustomDashresourceDashexistingDashcupLambdaFunction (AWS::Lambda::Function)
Resource handler returned message: "Function creation failed because the function already exists" (RequestToken: XXXXX-XXXX-25bb-XXX-07099XXX, HandlerErrorCode: AlreadyExists)

我已遵循官方文档docs-providers-aws-events-cognito-user-pool#forcing-deploying-of-triggers

  postConfirmation:
    handler: triggers.postConfirmation
    events:
      - cognitoUserPool:
          pool: ${self:custom.userPoolName}
          trigger: PostConfirmation
          existing: true #here's the issue
amazon-cognito amazon-cognito-triggers
1个回答
0
投票

我找到了解决方案。

即使删除整个堆栈后,故障仍然存在,这非常令人沮丧。

我意识到无服务器框架部署了一个 lambda 函数来处理预先存在的 Cognito 资源。即使删除堆栈,该 lambda 函数也不会被删除,也不会链接到任何堆栈。结果,每次我尝试新的部署时,lambda 都已创建,并且由于无法重新创建相同的 lambda 而发生失败。

enter image description here

虽然我的问题是在不到一天前发布的,但我已经尝试解决它一个多星期了。

© www.soinside.com 2019 - 2024. All rights reserved.