根据AWS CodeCommit 事件执行自定义操作 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

根据AWS CodeCommit 事件执行自定义操作

由 Abdullahi Olaoye 创作 () AWS

摘要

注意: AWS CodeCommit 已不再向新客户开放。的现有客户 AWS CodeCommit 可以继续照常使用该服务。了解更多

使用AWS CodeCommit 存储库存储代码时,您可能需要监视存储库并在发生特定事件时启动操作工作流程。例如,您可能希望在用户对提交中的一行代码发表评论时发送电子邮件通知,或者在提交后启动 AWS Lambda 函数对存储库内容执行安全扫描。此模式概述了为自定义操作配置 CodeCommit 存储库的步骤。该模式使用AWS CodeCommit 通知规则来捕获感兴趣的事件,然后将这些事件发送到已配置的目标。

先决条件和限制

先决条件

  • 一个活动的 AWS 账户。

  • 熟悉 Git 命令。

  • AWS CodeCommit,设置。有关说明,请参阅 AWS 设置 CodeCommit

  • (推荐)AWS命令行界面 (AWSCLI),已安装并配置。有关说明,请参阅《入门》AWSCLI

架构

AWS代码提交事件、Amazon SNS 订阅和生成的操作的架构图。

工具

AWS 服务

  • AWS CodeCommit是一项完全托管的源代码控制服务,用于托管基于 Git 的安全存储库。它使团队可以轻松地在安全且高度可扩展的生态系统中就代码进行协作。 CodeCommit 无需操作自己的源代码控制系统或担心扩展其基础架构

  • 亚马逊简单通知服务 (AmazonSNS) 是一项网络服务,它使应用程序、最终用户和设备能够立即从云端发送和接收通知。Amazon SNS 为高吞吐量、基于推送的消息传递提供主题(通信渠道)。 many-to-many使用亚马逊SNS主题,发布者可以向大量订阅者分发消息以进行并行处理,包括亚马逊简单队列服务 (AmazonSQS) 队列、AWS Lambda 函数和 HTTP /S webhook。您还可以使用 Amazon SNS 通过移动推送和电子邮件向最终用户发送通知。SMS

操作说明

任务描述所需技能

创建 CodeCommit 存储库。

使用 CodeCommit 控制台或AWSCLI创建 CodeCommit 存储库。有关说明,请参阅创建 CodeCommit 存储库

DevOps 工程师

将内容推送到 CodeCommit 存储库。

创建存储后,使用 Git 命令向其中添加内容。您可以从计算机迁移现有 Git 存储库的内容,或本地未受版本控制的内容。有关说明,请参阅向存储库添加文件迁移到AWS CodeCommit

DevOps 工程师
任务描述所需技能

创建一个 SNS 主题。

本SNS主题接收来自的事件 CodeCommit。有关说明,请参阅创建 Amazon SNS 主题

云架构师、 DevOps 工程师

为自定义操作创建资源。

若要执行自定义操作,必须创建相应的资源。例如,如果您的自定义操作是运行 Lambda 代码并将消息发送到SQS队列,则必须创建 Lambda 函数和队列。SQS诸如电子邮件和SMS通知之类的操作不需要资源。有关更多信息,请参阅您正在创建的资源类型的AWS文档

云架构师、 DevOps 工程师

将自定义操作资源订阅到该SNS主题。

根据自定义操作,您可按相应的协议创建订阅。例如,您订阅电子邮件地址以接收电子邮件通知,订阅用于运行自定义代码的 Lambda 函数,或订阅用于向 Amazon 发送事件的SQS队列。SQS对于电子邮件和之类的订阅协议SMS,您需要分别通过发送到电子邮件或电话号码的链接确认订阅。有关说明,请参阅订阅 Amazon SNS 主题

云架构师、 DevOps 工程师
任务描述所需技能

为 CodeCommit 存储库创建通知规则。

创建通知规则时,您可以选择应启动通知的 Git 事件,选择SNS主题作为目标类型,然后选择之前创建SNS的主题。您也可为存储库配置多个目标。有关说明,请参阅创建通知规则

DevOps 工程师

测试自定义操作。

配置以下事件,以发起通知。例如,如果您选择拉取请求作为触发条件,请创建拉取请求。您应看到自定义操作总数。例如,如果您订阅了该SNS主题的电子邮件地址,则应该会收到一封电子邮件通知。

DevOps 工程师

相关资源