【发布时间】:2020-08-04 00:12:43
【问题描述】:
我正在寻找可以触发 Gitlab-ci 管道以部署特定分支并将结果发送到 slack 的 lambda。
谢谢。
【问题讨论】:
标签: amazon-web-services aws-lambda gitlab-ci slack
我正在寻找可以触发 Gitlab-ci 管道以部署特定分支并将结果发送到 slack 的 lambda。
谢谢。
【问题讨论】:
标签: amazon-web-services aws-lambda gitlab-ci slack
要触发作业,您需要向 GitLab 的 API 端点发送
POST请求:curl -X POST <API url>/projects/<your_awesome_gitlab_project>/trigger/pipeline必需的参数是将执行触发器的trigger’s
token和 Gitref。有效的参考是分支和标签。项目的:id可以通过querying the API 或访问提供不言自明的示例的CI/CD 设置页面找到。
要检查管道结果,请使用CloudWatch Events:
您可以设置规则以按计划运行 AWS Lambda 函数。本教程展示了如何使用 AWS 管理控制台或 AWS CLI 创建规则。如果您想使用 AWS CLI 但尚未安装,请参阅AWS Command Line Interface User Guide。
要检查作业状态,请使用:Get a single pipeline 或 List project pipelines API 调用。
curl --header "PRIVATE-TOKEN:" "https://gitlab.example.com/api/v4/projects/1/pipelines/46"
Slack
要使用lambda 发送Slack 通知,请使用本教程:
Creating an AWS Lambda Function and API Endpoint | Slack
CI 触发器由token 保护。一般来说,这足以保护您的端点。
但是,如果方法还不够,还有一些技术可以“隐藏”端点:
GitLab
AWSSecurity Groupsfor Lambda或for EC2
Nginx 或 HAProxy
【讨论】: