首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CDK -将特定lambda版本传递给步骤函数任务。

CDK -将特定lambda版本传递给步骤函数任务。
EN

Stack Overflow用户
提问于 2020-01-01 13:56:17
回答 1查看 1.4K关注 0票数 1

我有一个CDK堆栈,它创建lambda函数和任务。每个任务都使用lambda函数。目前,step函数任务仅指向$LATEST别名。我的目标是更新lambda函数版本或别名,并相应地更新step函数任务。

Lambda创作:

代码语言:javascript
复制
    createLambda(scope: cdk.Construct, name: string, lambdaPath: string, handler: string = 'app.handler', timeout: number = 900): lambda.Function {
            const lambdaFunction = new lambda.Function(scope, name, {
              functionName: name, 
              runtime: lambda.Runtime.NODEJS_10_X,
              code: lambda.Code.asset(lambdaPath),
              handler: handler,
              timeout: Duration.seconds(timeout),
              description: `Generated on: ${new Date().toISOString()}`
            });
            const version  = lambdaFunction.addVersion(new Date().toISOString());

            new lambda.Alias(scope, `alias-${new Date().toISOString()}`, {
              aliasName: 'live',
              version: version,
            });

            return lambdaFunction;
          }

任务创建:

代码语言:javascript
复制
    createTask(scope: cdk.Construct,lambdaFunction: lambda.Function,duration: number = 1200,name: string): sfn.Task {
            const task = new sfn.Task(scope, name, {
              task: new tasks.InvokeFunction(lambdaFunction),
              timeout: Duration.seconds(duration)
            });
            return task;
          }

因此,我的问题是:函数任务中的可以指向特定的lambda版本吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-02 14:45:50

最后使用lambda,每当lambda发生更改时,CDK创建新版本并返回lambda版本ARN:

代码语言:javascript
复制
createLambda(scope: cdk.Construct, name: string, lambdaPath: string, handler: string = 'app.handler', timeout: number = 900): string {
    const lambdaFunction = new lambda.Function(scope, name, {
      functionName: name, 
      runtime: lambda.Runtime.NODEJS_10_X,
      code: lambda.Code.asset(lambdaPath),
      handler: handler,
      timeout: Duration.seconds(timeout),
    });
    const lambdaFunctionARN  = lambdaFunction.addVersion(`${new Date().toISOString()}`).functionArn;

    return lambdaFunctionARN;
  }

稍后,步骤函数任务获取ARN作为输入,并使用以下方法导入lambda函数:

代码语言:javascript
复制
const lambdaVersion = lambda.Function.fromFunctionArn(scope,'LambdaImportUsingARN',lambdaVersionARN)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59553125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档