使用gitlab CI无服务器删除lamda



我正在使用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(来提供基础设施,这些资源可能完全在指定的appstageCF堆栈之外,也可能不在指定的之外。

事实上,您也可以将基础设施提供给其他提供商(AWS、GCP、Azure、OpenWhisk,或者实际上是这些提供商的任何组合(。

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

最新更新