我正在尝试利用 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
我不确定我做错了什么。我以为我正确遵循了他们的指示,但我不知道从哪里可以获得有关此错误的更多信息。
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"
}
在哪里可以看到 $oauth_authorization_code 参数?