首页 > 解决方案 > 在另一个堆栈上的 lambda 层内调用函数

问题描述

我有一个驻留在不同堆栈中的 lambda 层。我从 CDK 文档中获取了以下代码,并将该层部署到不同的堆栈中。我可以看到它已经注册了其他堆栈(附加到 lambda 函数),但我无法/确定如何在引用的 lambda 本身中使用它?任何帮助表示赞赏!

层代码字面意思是: module.exports.test = () => 'hello from the layer'

const layer = new lambda.LayerVersion(stack, 'MyLayer', {
  code: lambda.Code.fromAsset(path.join(__dirname, 'layers/index.zip')),
  compatibleRuntimes: [lambda.Runtime.NODEJS_10_X],
  license: 'Apache-2.0',
  description: 'A layer to test the L2 construct',
});

// To grant usage by other AWS accounts
layer.addPermission('remote-account-grant', { accountId: awsAccountId });


在我的另一个堆栈中,我有以下内容。我还可以看到该层附加了 lambda。只是不确定如何调用该函数。

const layer = LayerVersion.fromLayerVersionArn(this, 'LambdaLayer', 'arn:aws:lambda:region:account:layer:testXXXXXX:2')
const func = new lambda.Function(this, 'MyLambda', {
  code: lambda.Code.fromAsset(path.join(__dirname, 'my-lambda-handler')),
  handler: 'index.main',
  runtime: lambda.Runtime.NODEJS_10_X
});
func.addLayers(layer)

标签: amazon-web-servicesaws-lambdaaws-lambda-layers

解决方案


推荐阅读