Aws-cdk: Unable to create a new CfnReceiptRule - Python

Created on 1 Oct 2019  路  2Comments  路  Source: aws/aws-cdk

Here is the code that I'm using

from aws_cdk import (
    aws_s3 as s3,
    core,
    aws_ses as ses,
    aws_ses_actions as ses_actions
)


class CFStack(core.Stack):

    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        bucket = s3.Bucket(self, "MyFirstBucket", versioned=False,)

        ingress_email_rules = ses.CfnReceiptRule(
            self, 'RuleSet',
            rule=ses.CfnReceiptRule.RuleProperty(
                    recipients=['[email protected]'],
                    actions=[
                        ses_actions.S3(bucket=bucket, object_key_prefix='emails/')
                    ],
                    name='Inbox'
                )
            ,
            rule_set_name='Test'
        )

app = core.App()
CFStack(app, "demo")

app.synth()

Reproduction Steps

Just run cdk synth

Error Log

$ cdk synth
jsii.errors.JavaScriptError: 
  Error: Resolution error: Resolution error: Trying to resolve() a Construct at /Resources/${Token[demo.RuleSet.LogicalID.21]}/Properties/rule/actions/0/props/bucket/node.
  Object creation stack:
    at new Intrinsic (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/intrinsic.js:20:44)
    at new PostResolveToken (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/util.js:72:9)
    at Object.ignoreEmpty (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/util.js:32:12)
    at CfnReceiptRule._toCloudFormation (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/cfn-resource.js:169:44)
    at /private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/cfn-element.js:84:77
    at Object.findTokens (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/resolve.js:126:13)
    at CfnReceiptRule.prepare (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/cfn-element.js:84:49)
    at Function.prepare (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/construct.js:89:27)
    at Function.synth (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/construct.js:52:14)
    at App.synth (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/app.js:71:52)
    at /Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6631:51
    at Kernel._wrapSandboxCode (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:7250:20)
    at /Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6631:25
    at Kernel._ensureSync (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:7226:20)
    at Kernel.invoke (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6630:26)
    at KernelHost.processRequest (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6327:28)
    at KernelHost.run (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6270:14)
    at Immediate._onImmediate (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6273:37)
    at processImmediate (internal/timers.js:439:21).
  Object creation stack:
    at new Intrinsic (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/intrinsic.js:20:44)
    at new PostResolveToken (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/util.js:72:9)
    at CfnReceiptRule._toCloudFormation (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/cfn-resource.js:167:39)
    at /private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/cfn-element.js:84:77
    at Object.findTokens (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/resolve.js:126:13)
    at CfnReceiptRule.prepare (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/cfn-element.js:84:49)
    at Function.prepare (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/construct.js:89:27)
    at Function.synth (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/construct.js:52:14)
    at App.synth (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/app.js:71:52)
    at /Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6631:51
    at Kernel._wrapSandboxCode (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:7250:20)
    at /Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6631:25
    at Kernel._ensureSync (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:7226:20)
    at Kernel.invoke (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6630:26)
    at KernelHost.processRequest (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6327:28)
    at KernelHost.run (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6270:14)
    at Immediate._onImmediate (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6273:37)
    at processImmediate (internal/timers.js:439:21)
      at resolve (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/resolve.js:103:15)
      at Object.resolve (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/resolve.js:28:33)
      at resolve (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/resolve.js:111:43)
      at Object.resolve (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/resolve.js:28:33)
      at resolve (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/resolve.js:111:43)
      at Object.resolve (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/resolve.js:28:33)
      at resolve (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/resolve.js:111:43)
      at Object.resolve (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/resolve.js:28:33)
      at /private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/resolve.js:85:51
      at Kernel._wrapSandboxCode (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:7253:19)
      at /Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6631:25
      at Kernel._ensureSync (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:7226:20)
      at Kernel.invoke (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6630:26)
      at KernelHost.processRequest (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6327:28)
      at KernelHost.run (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6270:14)
      at Immediate._onImmediate (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6273:37)
      at processImmediate (internal/timers.js:439:21)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "app.py", line 11, in <module>
    app.synth()
  File "/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/aws_cdk/core/__init__.py", line 2852, in synth
    return jsii.invoke(self, "synth", [])
  File "/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_kernel/__init__.py", line 104, in wrapped
    return _recursize_dereference(kernel, fn(kernel, *args, **kwargs))
  File "/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_kernel/__init__.py", line 267, in invoke
    args=_make_reference_for_native(self, args),
  File "/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_kernel/providers/process.py", line 346, in invoke
    return self._process.send(request, InvokeResponse)
  File "/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_kernel/providers/process.py", line 316, in send
    raise JSIIError(resp.error) from JavaScriptError(resp.stack)
jsii.errors.JSIIError: Resolution error: Resolution error: Trying to resolve() a Construct at /Resources/${Token[demo.RuleSet.LogicalID.21]}/Properties/rule/actions/0/props/bucket/node.
Object creation stack:
  at new Intrinsic (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/intrinsic.js:20:44)
  at new PostResolveToken (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/util.js:72:9)
  at Object.ignoreEmpty (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/util.js:32:12)
  at CfnReceiptRule._toCloudFormation (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/cfn-resource.js:169:44)
  at /private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/cfn-element.js:84:77
  at Object.findTokens (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/resolve.js:126:13)
  at CfnReceiptRule.prepare (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/cfn-element.js:84:49)
  at Function.prepare (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/construct.js:89:27)
  at Function.synth (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/construct.js:52:14)
  at App.synth (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/app.js:71:52)
  at /Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6631:51
  at Kernel._wrapSandboxCode (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:7250:20)
  at /Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6631:25
  at Kernel._ensureSync (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:7226:20)
  at Kernel.invoke (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6630:26)
  at KernelHost.processRequest (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6327:28)
  at KernelHost.run (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6270:14)
  at Immediate._onImmediate (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6273:37)
  at processImmediate (internal/timers.js:439:21).
Object creation stack:
  at new Intrinsic (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/intrinsic.js:20:44)
  at new PostResolveToken (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/util.js:72:9)
  at CfnReceiptRule._toCloudFormation (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/cfn-resource.js:167:39)
  at /private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/cfn-element.js:84:77
  at Object.findTokens (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/private/resolve.js:126:13)
  at CfnReceiptRule.prepare (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/cfn-element.js:84:49)
  at Function.prepare (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/construct.js:89:27)
  at Function.synth (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/construct.js:52:14)
  at App.synth (/private/var/folders/_5/4q0rmjss69lfg45yqtws0tcm0000gn/T/jsii-kernel-BYjQNE/node_modules/@aws-cdk/core/lib/app.js:71:52)
  at /Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6631:51
  at Kernel._wrapSandboxCode (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:7250:20)
  at /Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6631:25
  at Kernel._ensureSync (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:7226:20)
  at Kernel.invoke (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6630:26)
  at KernelHost.processRequest (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6327:28)
  at KernelHost.run (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6270:14)
  at Immediate._onImmediate (/Users/pabloarias/Desktop/Test/.env/lib/python3.7/site-packages/jsii/_embedded/jsii/jsii-runtime.js:6273:37)
  at processImmediate (internal/timers.js:439:21)
Subprocess exited with error 1

Environment

  • **CLI Version : 1.10.0 (build 19ae072)
  • **OS : MacOS
  • **Language : Python

This is :bug: Bug Report

@aws-cdaws-ses bug causpython-no-types closing-soon languagpython

Most helpful comment

You cannot use aws_ses_actions with the CfnReceiptRule (it's a L1 construct, =1:1 CloudFormation).

You have to use it with the ReceiptRule (L2 construct) from aws_ses. See examples (in typescript): https://github.com/aws/aws-cdk/blob/v1.10.0/packages/%40aws-cdk/aws-ses-actions/test/integ.actions.ts

More info on low level constructs here: https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib

All 2 comments

You cannot use aws_ses_actions with the CfnReceiptRule (it's a L1 construct, =1:1 CloudFormation).

You have to use it with the ReceiptRule (L2 construct) from aws_ses. See examples (in typescript): https://github.com/aws/aws-cdk/blob/v1.10.0/packages/%40aws-cdk/aws-ses-actions/test/integ.actions.ts

More info on low level constructs here: https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib

@jogold Ok noted, let me close the issue, since it was from my side.

Was this page helpful?
0 / 5 - 0 ratings