【问题标题】:Trigger Gitlab-ci from aws lambda从 aws lambda 触发 Gitlab-ci
【发布时间】:2020-08-04 00:12:43
【问题描述】:

我正在寻找可以触发 Gitlab-ci 管道以部署特定分支并将结果发送到 slack 的 lambda。

谢谢。

【问题讨论】:

    标签: amazon-web-services aws-lambda gitlab-ci slack


    【解决方案1】:

    触发管道

    根据GitLab Trigger API manual

    要触发作业,您需要向 GitLab 的 API 端点发送 POST 请求:

        curl -X POST <API url>/projects/<your_awesome_gitlab_project>/trigger/pipeline
    

    必需的参数是将执行触发器的trigger’s token 和 Git ref。有效的参考是分支和标签。项目的:id 可以通过querying the API 或访问提供不言自明的示例的CI/CD 设置页面找到。

    观察管道

    要检查管道结果,请使用CloudWatch Events

    您可以设置规则以按计划运行 AWS Lambda 函数。本教程展示了如何使用 AWS 管理控制台或 AWS CLI 创建规则。如果您想使用 AWS CLI 但尚未安装,请参阅AWS Command Line Interface User Guide

    要检查作业状态,请使用:Get a single pipelineList 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 保护。一般来说,这足以保护您的端点。

    但是,如果方法还不够,还有一些技术可以“隐藏”端点:

    【讨论】:

    • 你能推荐一些使它安全的东西吗?我不会像那样在 Internet 上公开我的 CI 触发器。可能是用户应该登录到 GitLab 以触发管道或其他身份验证机制。我浏览了文档,但找不到任何东西。如果有人可以提供帮助,那就太好了。谢谢!
    • @krishnaa208 基本 CI 触发器由 token 保护。如果该方法对您来说还不够,有一些技术可以“隐藏”您的端点:(1) 客户端 IP whitelisting (2) AWS 安全组 for Lambdafor EC2 (3) Securing URLs
    猜你喜欢
    • 2019-04-11
    • 1970-01-01
    • 2020-10-30
    • 2019-11-09
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    相关资源
    最近更新 更多