IAM角色定义错误时,在yaml文件中提供对象数组或序列映射

问题描述

我正在使用无服务器框架在现有堆栈中定义新的Lambda。为了保持最少的特权主体和我的主要serevrless.yml文件清理器,我试图为每个函数在单独的yaml文件中提供权限(使用“ serverless-iam-roles-per-function”插件)。直到现在,当每个功能都需要在单个资源上执行某些操作时,此操作效果良好。但是现在我试图提供一个具有SQS和SES权限的函数,并且在尝试部署时遇到以下错误

iamRoleStatements应该是对象数组,其中每个对象都具有“效果”,“动作” /“非动作”,“资源” /“非资源”字段。具体来说,语句0缺少以下属性效果,动作/非动作,资源/非资源

serverless.yml:

sendSupportMessage:
    handler: src/handlers/sendSupportMessage.handler
    maximumEventAge: 60
    maximumRetryAttempts: 1
    iamRoleStatements:
      - ${file(iam/sendSupportMessageIAM.yml):sendSupportMessageIAM}
    events:
      - sqs:
          arn: ${self:custom.SupportMessagesQueue.arn}
          batchSize: 1

sendSupportMessageIAM.yml:

sendSupportMessageIAM:
  - Effect: Allow
    Action:
      - sqs:ReceiveMessage
    Resource: ${self:custom.SupportMessagesQueue.arn}
  - Effect: Allow
    Action:
      - ses:SendEmail
    Resource: arn:aws:ses:*

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)