无服务器使用 gitlab 删除 lambda CI

serverless remove lamda using gitlab CI

我正在使用 gitlab CI 进行部署。

我 运行 在删除审查分支时遇到了问题。

stop_review:
  variables:
    GIT_STRATEGY: none
  stage: cleanup
  script:
    - echo "$AWS_REGION"
    - echo "Stopping review branch"
    - serverless config credentials --provider aws --key ${AWS_ACCESS_KEY_ID} --secret ${AWS_SECRET_ACCESS_KEY}
    - echo "$CI_COMMIT_REF_NAME"
    - serverless remove --stage=$CI_COMMIT_REF_NAME --verbose
  only:
    - branches
  except:
    - master
  environment:
    name: review/$CI_COMMIT_REF_NAME
    action: stop
  when: manual

错误是This command can only be run in a Serverless service directory. Make sure to reference a valid config file in the current working directory if you're using a custom config file

我尝试了不同的 GIT_STRATEGY,有人能给我指明正确的方向吗?

为了 运行 serverless remove,您需要有可用的 serverless.yml 文件,这意味着需要克隆实际的存储库。 (或者该文件需要以某种方式到达 GitLab)。

当您 运行 serverless remove 时,需要有一个 serverless.yml 配置文件可用,因为无服务器框架允许用户不仅使用框架的 YML 配置而且还使用其他资源来配置基础设施(如 AWS 中的 CloudFormation)可能完全位于指定的 appstage CF 堆栈之外,也可能不存在。

事实上,您也可以将基础设施提供给其他提供商(AWS、GCP、Azure、OpenWhisk,或者它们的任意组合)。

因此,在 运行 宁 sls remove 时,仅识别舞台名称是不够的,您需要完整的 serverless.yml 模板。