AWS-CDK和Powershell Lambda

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

我有一个Powershell Lambda,我想通过AWS CDK进行部署,但是在运行它时遇到了问题。

通过手动Publish-AWSPowerShellLambda部署Powershell:

Publish-AWSPowerShellLambda -ScriptPath .\PowershellLambda.ps1 -Name PowershellLambda

然而,即使CDK部署了相同的脚本,它也没有登录到CloudWatch Logs,尽管它具有许可:

import events = require('@aws-cdk/aws-events');
import targets = require('@aws-cdk/aws-events-targets');
import lambda = require('@aws-cdk/aws-lambda');
import cdk = require('@aws-cdk/core');

export class LambdaCronStack extends cdk.Stack {
  constructor(app: cdk.App, id: string) {
    super(app, id);

    const lambdaFn = new lambda.Function(this, 'Singleton', {      
      code: new lambda.AssetCode('./PowershellLambda/PowershellLambda.zip'),
      handler: 'PowershellLambda::PowershellLambda.Bootstrap::ExecuteFunction',
      timeout: cdk.Duration.seconds(300),
      runtime: lambda.Runtime.DOTNET_CORE_2_1
    });

    const rule = new events.Rule(this, 'Rule', {
      schedule: events.Schedule.expression('rate(1 minute)')
    });

    rule.addTarget(new targets.LambdaFunction(lambdaFn));
  }
}

const app = new cdk.App();
new LambdaCronStack(app, 'LambdaCronExample');
app.synth();

powershell脚本当前仅包含以下几行,并且在CLI上由Publish-AWSPowerShellLambda部署时可以工作:

#Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.335.0'}
Write-Host "Powershell Lambda Executed" 

注意:对于CDK部署,我使用package.json中的构建步骤生成.zip文件:

 "scripts": {
    "build": "tsc",
    "build-package": "pwsh -NoProfile -ExecutionPolicy Unrestricted -command New-AWSPowerShellLambdaPackage -ScriptPath './PowershellLambda/PowershellLambda.ps1' -OutputPackage ./PowershellLambda/PowershellLambda.zip",
    "watch": "tsc -w",
    "cdk": "cdk"
  }

CDK部署良好,Lambda可以按预期运行,但是Cloudwatch Logs中唯一的事情是:START RequestId:4c12fe1a-a9e0-4137-90cf-747b6aecb639版本:$ LATEST

[我已经检查了CDK脚本中的Handler是否与Publish-AWSPowerShellLambda的输出匹配,并且zip文件上传正常并且包含正确的代码。

关于为何不起作用的任何建议?

amazon-web-services powershell aws-lambda aws-cdk
1个回答
0
投票

在lambda内将内存大小设置为512mb。此功能已解决了该问题。

cloudwatch条目显示了lambda开始,但似乎没有足够的内存来初始化和运行.net运行时。

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