title: CDK generating empty targets for CfnCrawler
body: <p>I'm using CDK Python API to define a Glue crawler, however, the CDK generated template contains empty 'Targets' block in the Crawler resource. </p>
  
  <p>I've not been able to find an example to emulate. I've tried varying the definition of the targets object, but the object definition seems to be ignored by CDK. </p>
  
  <pre class="lang-py prettyprint-override"><code>from aws_cdk import cdk
  
  BUCKET='poc-1-bucket43879c71-5uabw2rni0cp'
  
  class PocStack(cdk.Stack):
  
      def __init__(self, app: cdk.App, id: str, **kwargs) -&gt; None:
          super().__init__(app, id)
  
          from aws_cdk import (
              aws_iam as iam,
              aws_glue as glue,
              cdk
          )
  
          glue_role = iam.Role(
              self, 'glue_role',
              assumed_by=iam.ServicePrincipal('glue.amazonaws.com'),
              managed_policy_arns=['arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole']
          )
  
          glue_crawler = glue.CfnCrawler(
              self, 'glue_crawler',
              database_name='db',
              role=glue_role.role_arn,
              targets={"S3Targets": [{"Path": f'{BUCKET}/path/'}]},
          )
  </code></pre>
  
  <p>I expect the generated template to contain a valid 'targets' block with a single S3Target. However, <code>cdk synth</code> outputs a template with empty Targets in the AWS::Glue::Crawler resource:</p>
  
  <pre><code>  gluecrawler:
      Type: AWS::Glue::Crawler
      Properties:
        DatabaseName: db
        Role:
          Fn::GetAtt:
            - glueroleFCCAEB57
            - Arn
        Targets: {}
  </code></pre>