如何通过amplify.yml(没有CLI)自动创建/调度lambda函数?

How to automatically create/schedule a lambda function through amplify.yml (without the CLI)?

提问人:Thiago Lemos 提问时间:11/10/2023 更新时间:11/10/2023 访问量:16

问:

以下是该问题的上下文摘要:

  • 使用 NextJS 应用程序;
  • 尝试在 AWS 上运行构建放大;
  • 应用程序依赖于定期调用某些 URL 的 lambda 函数;
  • 我们启用了 AWS Studio 和 PR 预览;

如果我们手动创建和调度 lambda 函数,我们可以让事情正常工作,但理想的情况是,函数会根据 amplify.yml 文件(位于项目的根目录)上的指令自动创建和调度。

我们尝试使用以下 amplify.yml 文件:

version: 1
applications:
  - appRoot: client/
    frontend:
      phases:
        preBuild:
          commands:
            - npm ci
        build:
          commands:
            - (some other preparation commands)
            
      artifacts:
        baseDirectory: .next
        files:
          - '**/*'
      cache:
        paths:
          - node_modules/**/*
    backend:
      functions:
        cronJob${env:ENV_NAME}:
          service: Lambda
          handler: lambda-functions/cronjob.handler
          runtime: nodejs14.x
          environment:
            (some envs for the lambda)
          events:
            - cloudwatchEvent:
                event:
                  source:
                    - "aws.events"
                  detail:
                    eventName:
                      - ${env:ENV_NAME}Event
                parameters:
                  schedule: "cron(0/1 * * * ? *)"  # Trigger every minute

尝试在 AWS amplify 上运行构建,它通过了后端阶段,并出现以下错误: “未找到后端环境关联,继续...”

“后端”部分的语法可能有问题(甚至可能是 AWS amplify 面板上的配置有问题),但我们找不到任何详细说明这部分的文档(关于如何通过 amplify.yml 上的指令创建/调度 lambda 函数)。

也可能是这是不可能的,例如,我们必须采用在项目上集成放大 CLI 的方式,并在构建的准备阶段调用命令来设置 lambda 函数。

无论哪种方式,都希望得到一些澄清。

亚马逊网络服务 AWS-Lambda AWS-放大 Amazon-CloudWatch

评论


答: 暂无答案