首页 > 解决方案 > CodeStar 触发的 CloudFormation 堆栈更新中的 lambda:GetAlias 警告

问题描述

我正在按照 AWS CodeStar 文档中的无服务器项目教程使用 Python 3.7 Lambda 模板创建的基本项目来探索 CodeStar:

https://docs.aws.amazon.com/codestar/latest/userguide/sam-tutorial.html

我的构建和部署成功。但是,在我的 CloudFormation 事件日志中看到警告:

IAM 用户不允许 CloudFormation 调用 lambda:GetAlias,这可能会导致为 CodeDeploy 部署制定具有陈旧 CurrentVersion 的 appspec 文件。请修复它以避免任何可能的 CodeDeploy 部署失败。

我只是使用 CodeStar 控制台自动创建的 AWS 资源。

我该怎么做才能解决此警告?

细节

CodePipeline 中的 CodeDeploy 步骤通过更新名为的 CloudFormation 堆栈来部署 lambda 函数:awscodestar-<codestar project name>-lambda

当我查看此堆栈的事件日志时,我注意到上述资源名为HelloWorldAliaslive

标签: amazon-web-servicesamazon-cloudformationaws-code-deployaws-codestar

解决方案


要解决此问题,请将lambda:GetAlias权限添加到与名为 IAM 角色关联的内联策略CodeStarWorker-<project>-CloudFormation

  1. 打开 CodeStar 的 AWS 控制台
  2. 单击左侧导航栏中的项目
  3. 找到项目资源部分。AWS IAM 资源之一将具有名称 CodeStarWorker-<project>-CloudFormation。单击表的ARN列中的链接以在 IAM 中打开角色。
  4. 找到名为CodeStarWorkerCloudFormationRolePolicy的内联策略,然后单击编辑按钮。
  5. "lambda:GetAlias"操作添加到此策略。

该策略由 CodeStar 自动创建。在我的帐户中,该政策包括几个Statements。我选择将动作添加"lambda:GetAlias"到已经有"lambda:CreateAlias"动作的语句中。

进行此更改后,警告不再出现在我的 CloudFormation 事件日志中。


推荐阅读