Skip to content

jsii-java: Lambda Permission sourceAccount is required #714

@breedloj

Description

@breedloj

I am trying to add a permission to my Lambda function to allow Alexa to call it when my skill is invoked (as described here).

        function.addPermission("AlexaFunctionPermission", Permission.builder()
                .withAction("lambda:InvokeFunction")
                .withPrincipal(new ServicePrincipal("alexa-appkit.amazon.com"))
                .withEventSourceToken(props.getSkillId())
                .build());

However, when I go to synthesize my template I get the following error:

Exception in thread "main" java.lang.NullPointerException: sourceAccount is required
	at java.base/java.util.Objects.requireNonNull(Objects.java:246)
	at software.amazon.awscdk.services.lambda.Permission$Builder$1.<init>(Permission.java:188)
	at software.amazon.awscdk.services.lambda.Permission$Builder.build(Permission.java:186)
	at com.amazon.alexa.Skill.addTarget(Skill.java:37)
	at com.amazon.alexa.MyStack.<init>(MyStack.java:34)
	at com.amazon.alexa.CdkSkillApp.<init>(CdkSkillApp.java:13)
	at com.amazon.alexa.CdkSkillApp.main(CdkSkillApp.java:17)

The addPermission API states that this field is not required and it makes no sense to provide it for this use case.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis issue is a bug.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions