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()
Just run cdk synth
$ 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
This is :bug: Bug Report
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.
Most helpful comment
You cannot use
aws_ses_actionswith theCfnReceiptRule(it's a L1 construct, =1:1 CloudFormation).You have to use it with the
ReceiptRule(L2 construct) fromaws_ses. See examples (in typescript): https://github.com/aws/aws-cdk/blob/v1.10.0/packages/%40aws-cdk/aws-ses-actions/test/integ.actions.tsMore info on low level constructs here: https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib