1

aws SAM 本地文档指出 SAM Local 将使用我在本地配置的 IAM 凭证调用函数。

我想测试一个由 Lambda 函数和附加到该函数的角色组成的 cloudformation 模板,该角色授予删除一个特定 s3 存储桶内容的权限。存储桶名称既是模板参数,也是 lambda 函数的参数。(不确定这是否重要,但我不在 CFN 模板中使用无服务器转换。)

我避免使用我的管理员配置文件测试此功能,因为存储桶名称中的拼写错误会删除错误存储桶的所有内容。

测试此类功能的建议工作流程是什么?

我目前在做什么:

  • 创建临时 IAM 用户/组
  • 将要测试的策略附加到该组
  • 调用前导出访问环境变量sam local invoke

有没有更快的方法来做到这一点?

4

1 回答 1

2

使用 DryRun 调用 Lambda

使用 Dryrun 调用函数以请求 AWS Lambda 不执行函数但进行一些验证,例如调用者是否有权调用函数以及输入是否有效。

aws lambda invoke --function-name <name> --invocation-type DryRun

为 Cloudformation 创建变更集:变更集 = 试运行模式

使用“create-change-set”创建变更集并在控制台 UI 或 CLI 中查看更改,然后使用 CLI 或 UI 执行更改来应用更改。

创建变更集:

aws cloudformation create-change-set --stack-name example --template-body file://templates/instance_and_route53.yml --parameters file://parameters/instance_and_route53.json --change-set-name changeset-1

执行变更集

aws cloudformation execute-change-set --stack-name example --change-set-name changeset-1
于 2018-02-26T02:52:07.603 回答