AWS CodeCommit 不再向新客户提供。 AWS CodeCommit 的现有客户可以继续正常使用该服务。了解更多
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理 AWS CodeCommit 仓库的触发器
您可以配置 CodeCommit 存储库,以便代码推送或其他事件触发操作,例如从亚马逊简单通知服务 (AmazonSNS) 发送通知或在中 AWS Lambda调用函数。您最多可以为每个 CodeCommit 存储库创建 10 个触发器。
触发器通常配置为:
-
有人向存储库推送内容时,向订阅用户发送电子邮件。
-
有人向存储库的主分支推送内容后,通知外部构建系统启动构建。
对于通知外部构建系统等场景,需要编写 Lambda 函数来与其他应用程序交互。电子邮件场景只需要创建一个 Amazon SNS 主题即可。
本主题向您展示如何设置允许 CodeCommit 在 Amazon SNS 和 Lambda 中触发操作的权限。此外,它还包括创建、编辑、测试和删除触发器的示例的链接。
主题
创建资源并添加权限 CodeCommit
您可以将 Amazon SNS 主题和 Lambda 函数与中的触发器集成 CodeCommit,但必须先创建资源,然后使用授予与这些资源交互 CodeCommit 的权限的策略配置资源。您必须在与 CodeCommit 存储库 AWS 区域 相同的位置创建资源。例如,如果存储库位于美国东部(俄亥俄州)(us-east-2),则SNS亚马逊主题或 Lambda 函数必须位于美国东部(俄亥俄州)。
-
对于亚马逊SNS主题,如果使用与 CodeCommit 存储库相同的账户创建亚马逊SNS主题,则无需配置其他IAM策略或权限。创建并订阅了 Amazon SNS 主题后,您就可以立即创建 CodeCommit 触发器。
有关在亚马逊中创建主题的更多信息SNS,请参阅亚马逊SNS文档。
有关使用亚马逊SNS向亚马逊SQS队列发送消息的信息,请参阅亚马逊SNS开发者指南中的向亚马逊SQS队列发送消息。
-
有关使用亚马逊SNS调用 Lambda 函数的信息,请参阅亚马逊开发者指南中的调用 Lambda 函数。SNS
-
如果您想将触发器配置为在另一个 AWS 账户中使用某个 Amazon SNS 主题,则必须先使用允许 CodeCommit 向该主题发布内容的策略配置该主题。有关更多信息,请参阅 示例 1:创建允许跨账户访问亚马逊SNS主题的策略。
-
您可以通过在 Lambda 控制台中创建作为 Lambda 函数一部分的触发器来对该函数进行配置。这是最简单的方法,因为在 Lambda 控制台中创建的触发器会自动包含调用 Lambda 函数所需的 CodeCommit 权限。如果您在中创建触发器 CodeCommit,则必须包含 CodeCommit 允许调用该函数的策略。有关更多信息,请参阅为现有的 Lambda 函数创建触发器 和示例 3:创建与 CodeCommit 触发器 AWS Lambda 集成的策略。