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