【问题标题】:How to map fields automatically in appflow?如何在 appflow 中自动映射字段?
【发布时间】:2021-06-18 21:34:51
【问题描述】:

我正在尝试通过云形成来自动创建应用程序流。我在源中有多个字段(130+),我无法手动映射它。从 UI 我可以直接选择多个列,但我必须从 cloudformation 中指定,因此查看是否有任何选项会自动从源中获取所有列。

AWSTemplateFormatVersion: "2010-09-09"
Metadata:
    Generator: "Automation"
Description: ""
Parameters:
  snowusername:
    Type: String
    MaxLength: 128
  snowpassword:
    Type: String
    MaxLength: 128
  ServicenowUrl:
    Type: String
    MaxLength: 180
Resources:
    AppFlowFlowTest:
        Type: "AWS::AppFlow::Flow"
        Properties:
            FlowName: "IMGroupTest"
            Description: "Servicenow"
            SourceFlowConfig:
                ConnectorType: "Servicenow"
                ConnectorProfileName: !Ref AppFlowConnectorProfile
                SourceConnectorProperties:
                    ServiceNow:
                        Object: "business_service_group"
            DestinationFlowConfigList:
              -
                ConnectorType: "S3"
                DestinationConnectorProperties:
                    S3:
                        BucketName: "raw-data
                        BucketPrefix: "servicenow/appflow"
                        S3OutputFormatConfig:
                            FileType: "PARQUET"
                            PrefixConfig:
                                PrefixType: "FILENAME"
                            AggregationConfig:
                                AggregationType: "None"
            TriggerConfig:
                TriggerType: "OnDemand"
            Tasks:
              -
                SourceFields:
                  - "id"
                  - "site_name"
                  .
                  .
                  .
                  .

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation amazon-appflow


    【解决方案1】:

    关于使用 Map_all 的 AWS 文档有点缺乏。 Map_all 任务,至少在使用 YAML 时,在没有传递 TaskProperties 时会出错。为了解决这个问题,我添加了 EXCLUDE_SOURCE_FIELDS_LIST 的属性并传递了一个空列表,因为我不希望排除任何字段。

    这是模板的相关部分:

    Tasks:
      - TaskType: Map_all
        SourceFields: []
        TaskProperties: 
        - Key: EXCLUDE_SOURCE_FIELDS_LIST
          Value: '[]'
        ConnectorOperator:
          Salesforce: NO_OP
    

    这是我的完整模板

        AWSTemplateFormatVersion: 2010-09-09
    Description: CloudFormation Template for a MAP_ALL Salesforce AppFlow
    Parameters:
      Connection:
        Type: String
      S3Bucket:
        Type: String
      BucketPrefix:
        Type: String
      ObjectName:
        Type: String
      FlowName:
        Type: String
    Resources:
    
      GenericFlow:
        Type: 'AWS::AppFlow::Flow'
        Properties:
          Description: !Join [ "", [ 'App Flow for ', !Ref ObjectName, ' object' ] ]
          DestinationFlowConfigList:
            - ConnectorType: S3
              DestinationConnectorProperties:
                S3:
                  BucketName: !Ref S3Bucket
                  BucketPrefix: !Ref BucketPrefix
                  S3OutputFormatConfig:
                    AggregationConfig:
                      AggregationType: None
                    FileType: PARQUET
          FlowName: !Ref FlowName
          SourceFlowConfig:
            ConnectorProfileName: !Ref Connection
            ConnectorType: Salesforce
            SourceConnectorProperties:
              Salesforce:
                EnableDynamicFieldUpdate: true
                IncludeDeletedRecords: false
                Object: !Ref ObjectName
          Tasks:
            - TaskType: Map_all
              SourceFields: []
              TaskProperties: 
              - Key: EXCLUDE_SOURCE_FIELDS_LIST
                Value: '[]'
              ConnectorOperator:
                Salesforce: NO_OP
          TriggerConfig:
            TriggerType: OnDemand
    

    【讨论】:

      【解决方案2】:

      要映射所有字段,您必须将 taskTypeMap_all 一起使用,并且 SourceFields 和任务属性将为空。

          tasks=[
              {
                  'sourceFields': [],
                  'taskType':'Map_all',
                  'taskProperties: '{}'
              },
          ]
      

      【讨论】:

        猜你喜欢
        • 2022-12-21
        • 2015-04-21
        • 1970-01-01
        • 2019-11-04
        • 1970-01-01
        • 1970-01-01
        • 2013-07-05
        • 1970-01-01
        • 2012-08-28
        相关资源
        最近更新 更多