gpt4 book ai didi

aws-lambda - 从另一个嵌套堆栈引用 lambda 函数 Arn

转载 作者:行者123 更新时间:2023-12-03 07:22:40 27 4
gpt4 key购买 nike

我有两个 sam 应用程序,一个“App1”具有 lambda 函数,另一个“App2”将使用其 Arn 来创建如下权限:

App2 模板:

  Parameters: 
LambdaFunctionArnFromApp1:
Type: String
Description: The shared value will be passed to this parameter by parent stack.


DACAdminsLoginPermission:
Type: AWS::Lambda::Permission
Properties:
Action: lambda:InvokeFunction
FunctionName: LambdaFunctionArnFromApp1
Principal: apigateway.amazonaws.com
SourceArn: !Sub arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${HttpWebServer}/*/*/digitalatcore/admins/login

App1 模板:

  LambdaFunctionArnFromApp1:
Type: AWS::Serverless::Function
Properties:
CodeUri: 'URL'
Runtime: nodejs12.x
Handler: app.handler

Outputs:
LambdaFunctionArnFromApp1:
Value: !GetAtt LambdaFunctionFromApp1.Arn
Export:
Name: LambdaFunctionArnFromApp1

当我尝试使用 sam 部署完整堆栈时,出现以下错误:“*** 未成功创建:以下资源创建失败:[DACAdminsLoginPermission]。ROLLBACK_IN_PROGRESS”

任何人都可以帮我解决这个问题吗?

谢谢。

最佳答案

假设两个嵌套堆栈具有相同的父堆栈,您可以将输出从 App1 堆栈传递到 App2 堆栈,如下所示:

  App1Stack:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: app1-template.yaml

App2Stack:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: app2-template.yaml
Parameters:
LambdaFunctionArnFromApp1: !GetAtt App1Stack.Outputs.LambdaFunctionArnFromApp1

另一个选择可能是使用 ImportValue App2 模板中的内部函数,用于获取您在 App1 模板中定义的导出:FunctionName: !ImportValue LambdaFunctionArnFromApp1

关于aws-lambda - 从另一个嵌套堆栈引用 lambda 函数 Arn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71796994/

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