Skip to content

Error when using destinations with per-function IAM role #13292

@theburningmonk

Description

@theburningmonk

Issue description

When using a combination of per-function IAM roles, and Lambda destinations, sls package or sls deploy throws an error:

✖ TypeError: Cannot read properties of undefined (reading 'Properties')
    at AwsCompileFunctions.ensureTargetExecutionPermission (file:///Users/yancui/.serverless/releases/4.31.0/package/dist/sf-core.js:1476:70387)
    at AwsCompileFunctions.memoized [as ensureTargetExecutionPermission] (file:///Users/yancui/.serverless/releases/4.31.0/package/dist/sf-core.js:72:27294)
    at AwsCompileFunctions.compileFunctionEventInvokeConfig (file:///Users/yancui/.serverless/releases/4.31.0/package/dist/sf-core.js:1476:69251)
    at AwsCompileFunctions.compileFunction (file:///Users/yancui/.serverless/releases/4.31.0/package/dist/sf-core.js:1476:65654)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Promise.all (index 0)
    at async PluginManager.runHooks (file:///Users/yancui/.serverless/releases/4.31.0/package/dist/sf-core.js:1801:11236)
    at async PluginManager.invoke (file:///Users/yancui/.serverless/releases/4.31.0/package/dist/sf-core.js:1801:12005)
    at async PluginManager.run (file:///Users/yancui/.serverless/releases/4.31.0/package/dist/sf-core.js:1801:12738)
    at async Serverless.run (file:///Users/yancui/.serverless/releases/4.31.0/package/dist/sf-core.js:1808:10524)

Switching off per-function IAM mode stops the error.

Here's a minimal serverless.yml you can use to reproduce the error:

service: prsls-sls-yancui

provider:
  name: aws
  runtime: nodejs20.x
  iam:
    role:
      mode: perFunction

functions:
  notify-restaurant:
    handler: functions/notify-restaurant.handler
    destinations:
      onFailure:
        type: sqs
        arn: !GetAtt OnFailureQueue.Arn    

resources:
  Resources:
    OnFailureQueue:
      Type: AWS::SQS::Queue

Context

serverless v4.31.0

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions