当前位置: 首页 > 知识库问答 >
问题:

AWS cdk创建新的lambda@edge版本

郑鸿朗
2023-03-14
const edgeFunction = new cloudfront.experimental.EdgeFunction(this, 'LambdaOnEdgeAuthFunction', {
   runtime: lambda.Runtime.NODEJS_12_X,
   handler: 'index.handler',
   code: lambda.Code.fromAsset('lambda/auth'),
   description: `Generated on: ${new Date().toISOString()}`
});

// A numbered version to give to cloudfront
const egdeFunctionVersion = new lambda.Version(this, "edgeVersion", {
   lambda: edgeFunction,
   description: `Generated on: ${new Date().toISOString()}`, //adding this did not create new version
});
// CloudFront distribution that provides HTTPS and used the key pair above
const distribution = new cloudfront.CloudFrontWebDistribution(this, 'SiteDistribution', {
originConfigs: [{
     s3OriginSource: {
       /* my s3 bucket*/
     },
     behaviors: [{
        isDefaultBehavior: true,
        lambdaFunctionAssociations: [{
          eventType: cloudfront.LambdaEdgeEventType.ORIGIN_REQUEST,
          lambdaFunction: egdeFunctionVersion
          }]
 /*... end of declaration ...*/

我从我的帐户中删除了所有现有的lambda函数,并从我现有的贡献中删除了所有的lambda函数。但这并没有解决问题。我还应用了这里提到的修复程序,得到了相同的结果。

你能帮我创建一个新版本或者找到并删除我必须删除的lambda版本吗?

共有1个答案

潘泰
2023-03-14

AWS lambda@edge函数仅部署在us-east-1地区。参考资料

所以你可以做两件事。尝试CDK Destroy并再次部署,看看它是否修复了问题。

或者创建一个新版本的lambda函数,然后再试一次。Lambda函数的版本参考在这里

 类似资料:
  • 我正在尝试使用CloudFormation创建Lambda函数的新版本。 我想拥有同一个Lambda函数的多个版本,这样我就可以(a)在不同的版本中指向别名——比如DEV和PROD——并且(b)能够回滚到更早的版本 这是我的Lambda版本的定义: 运行“aws cloudformation创建堆栈”时会创建一个版本,但后续的“aws cloudformation更新堆栈”命令不会执行任何操作。没

  • 问题内容: 我正在尝试按照此处描述的指南开发AWS Java lambda函数。它描述了接口的实现,还引用了aws-lambda-java- core库。但是,我尝试按此处推荐的那样使用最新的SDK,但这完全不同,而且该接口似乎不再存在。 我不清楚我需要什么Java库的名称和版本。是否有关于所有不同版本的AWS Java库的指南以及任何更新的示例。我必须承认,我完全对AWS Java库版本和命名感

  • 我想用最新的lambda@edge函数使用CLI更新cloudfront发行版。 我看到了以下文档https://docs.aws.amazon.com/cli/latest/reference/cloudfront/update-distribution.html

  • 我为函数分配了128MB内存,这真的不足以简单地获取凭据并实例化AmazonS3Client对象吗? 我尝试给AmazonS3Client构造函数 以及 编辑1如果我将分配给函数的内存增加到192MB,它就可以正常工作,尽管奇怪的是,报告在cloudwatch日志中只使用59MB内存。我只是失去了剩下的记忆吗?

  • 我可以使用以下语法序列化lambda: 然而,如果我从客户机代码接收到lambda,并且它没有被适当地强制转换,我就无法序列化它。 如何在不更改其定义的情况下序列化下面的: 我尝试序列化一个“派生”对象: 但是在每种情况下,都失败,。

  • null 有趣的是,当我有意将错误编码到一个Lambda函数中时,我确实会在一个名为的组中创建日志,该组包含错误日志,但是这里没有console.log语句的输出。 就我的一生而言,我不知道如何使用console.log()将所有请求(成功和失败)的日志记录到CloudWatch中,其中包含我的debug语句。 AWSServiceRoleForCloudFrontLogger包含一个策略: 编辑