使用 aws SAM local 测试 lambda 策略的工作流程
workflow for testing lambda policies with aws SAM local
aws SAM 本地文档指出 SAM Local 将使用我在本地配置的 IAM 凭据调用函数。
我想测试一个 cloudformation 模板,它由一个 Lambda 函数和一个附加到该函数的角色组成,该角色授予删除一个特定 s3 存储桶内容的权限。存储桶名称既是模板参数,也是 lambda 函数的参数。 (不确定这是否重要,但我没有在 CFN 模板中使用无服务器转换。)
我避免使用我的管理员配置文件测试此功能,因为存储桶名称中的拼写错误会删除错误存储桶中的所有内容。
测试此类功能的建议工作流程是什么?
我目前在做什么:
- 创建临时 IAM user/group
- 将要测试的策略附加到该组
- 调用前导出访问环境变量
sam local invoke
有更快的方法吗?
使用 Dry 调用 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
aws SAM 本地文档指出 SAM Local 将使用我在本地配置的 IAM 凭据调用函数。
我想测试一个 cloudformation 模板,它由一个 Lambda 函数和一个附加到该函数的角色组成,该角色授予删除一个特定 s3 存储桶内容的权限。存储桶名称既是模板参数,也是 lambda 函数的参数。 (不确定这是否重要,但我没有在 CFN 模板中使用无服务器转换。)
我避免使用我的管理员配置文件测试此功能,因为存储桶名称中的拼写错误会删除错误存储桶中的所有内容。
测试此类功能的建议工作流程是什么?
我目前在做什么:
- 创建临时 IAM user/group
- 将要测试的策略附加到该组
- 调用前导出访问环境变量
sam local invoke
有更快的方法吗?
使用 Dry 调用 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