Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 使用aws SAM local测试lambda策略的工作流_Amazon Web Services_Serverless_Sam - Fatal编程技术网

Amazon web services 使用aws SAM local测试lambda策略的工作流

Amazon web services 使用aws SAM local测试lambda策略的工作流,amazon-web-services,serverless,sam,Amazon Web Services,Serverless,Sam,aws SAM local文档说明SAM local将使用本地配置的IAM凭据调用函数 我想测试一个cloudformation模板,该模板由一个Lambda函数和一个附加到此函数的角色组成,该函数授予删除一个特定s3 bucket内容的访问权。bucket名称既是模板参数,也是lambda函数的参数。(不确定这是否重要,但我不在CFN模板中使用无服务器转换。) 我避免用我的管理员配置文件测试这个功能,因为在bucket名称中输入错误会删除错误bucket的所有内容 测试此类功能的建议工作流程是

aws SAM local文档说明SAM local将使用本地配置的IAM凭据调用函数

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

我避免用我的管理员配置文件测试这个功能,因为在bucket名称中输入错误会删除错误bucket的所有内容

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

我目前正在做的事情:

  • 创建临时IAM用户/组
  • 将要测试的策略附加到此组
  • 在调用
    sam本地调用之前导出access环境变量

有没有更快捷的方法来执行此操作?

使用DryRun调用Lambda

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

aws lambda invoke --function-name <name> --invocation-type DryRun
执行变更集

aws cloudformation execute-change-set --stack-name example --change-set-name changeset-1

是的
DryRun
很有用,我不知道,谢谢。然而,这与SAM Local无关,或者我遗漏了什么?如果我使用aws lambda
,我必须同时上传函数和策略,理想情况下,为了快速测试,我希望两者都不上传。SAM local允许我在本地测试函数,但不允许测试策略。当然我是个初学者,所以我可能错过了一些东西。
aws cloudformation execute-change-set --stack-name example --change-set-name changeset-1