amazon-appflow 创建新的连接器配置文件返回服务错误

问题描述 投票:0回答:2

我正在尝试利用 aws-appflow 从 salesforce 检索数据,但无法使用 boto3 创建连接器配置文件。我不断地

Service Error

我的尝试:

    appflow.create_connector_profile(
      connectorProfileName='appflow-sfdc-test',
      kmsArn='{{ encryption-key-arn }}',
      connectorType='Salesforce',
      connectionMode='Public',
      connectorProfileConfig={
        'connectorProfileProperties': {
            'Salesforce': {
                'instanceUrl': 'https://{{ our-domain }}.my.salesforce.com',
                'isSandboxEnvironment': False
            }
        },
        'connectorProfileCredentials': {
            'Salesforce': {  
                'accessToken': '{{ access-token }}',
                'refreshToken': '{{ refresh-token }}',
                'clientCredentialsArn': '{{ secretsmanager arn with the client id & secret }}'
            }
        }
      }
    )

# returns this error
botocore.errorfactory.InternalServerException: An error occurred (InternalServerException) when calling the CreateConnectorProfile operation (reached max retries: 4): Service Error

我不确定我做错了什么。我以为我正确遵循了他们的指示,但我不知道从哪里可以获得有关此错误的更多信息。

salesforce amazon-appflow
2个回答
3
投票

AppFlow Salesforce 集成的 AWS 文档有点令人困惑。

下面是一个有效的 AWS CLI 代码段:

aws appflow create-connector-profile \
--connector-profile-name salesforce-connector \
--connector-type Salesforce \
--kms-arn arn:aws:kms:$region:$account_id:key/$key_id \
--connection-mode Public \
--connector-profile-config '{
    "connectorProfileProperties": {
        "Salesforce": {
            "instanceUrl": "https://your-domain.my.salesforce.com",
            "isSandboxEnvironment": false
        }
    },
    "connectorProfileCredentials": {
        "Salesforce": {
            "oAuthRequest": {
                "authCode": $oauth_authorization_code,
                "redirectUri": $redirect_uri
            },
            "clientCredentialsArn": "arn:aws:secretsmanager:$region:$account:secret:$secret"
        }
    }
}'

请注意,我们不需要

accessToken
refreshToken
,因为它们将在创建时使用
authCode
和来自
clientCredentialsArn
的凭据获取。

另一点是 Secret Manager 密钥应使用与

--kms-arn
参数中相同的 KMS 密钥进行加密。

clientCredentialsArn
秘密内容应类似于:

{
  "clientId": "XXX",
  "clientSecret": "YYY"
}

0
投票

在哪里可以看到 $oauth_authorization_code 参数?

© www.soinside.com 2019 - 2024. All rights reserved.