簡體   English   中英

如何將 AWS Glue 作業連接到 Salesforce

[英]How to connect AWS Glue Job to Salesforce

我正在關注這樣的問題和類似他的博客,但由於(我認為)庫版本沖突,我無法使連接正常工作。

我想使用這個庫(afaik 是最常用和引用最多的庫)從 aws 膠水作業連接到 Salesforce。 這段代碼在我的本地機器上工作,但是當我使用“python shell”配置時,我收到以下消息: ERROR: botocore 1.12.232 has requirement urllib3<1.26,>=1.20; python_version >= "3.4", but you'll have urllib3 1.26.2 which is incompatible. ERROR: botocore 1.12.232 has requirement urllib3<1.26,>=1.20; python_version >= "3.4", but you'll have urllib3 1.26.2 which is incompatible.

或者,如果我使用“spark”選項: Traceback (most recent call last): File "/tmp/bp-etl-crm-sparkV2", line 1, in <module> from simple_salesforce import Salesforce File "/tmp/simple_salesforce-1.10.1-py2.py3-none-any.whl/simple_salesforce/__init__.py", line 4, in <module> from.api import Salesforce, SFType File "/tmp/simple_salesforce-1.10.1-py2.py3-none-any.whl/simple_salesforce/api.py", line 18, in <module> from.login import SalesforceLogin File "/tmp/simple_salesforce-1.10.1-py2.py3-none-any.whl/simple_salesforce/login.py", line 16, in <module> from authlib.jose import jwt ModuleNotFoundError: No module named 'authlib'

代碼就像連接和查詢一樣簡單,我再次測試過,當我從本地控制台嘗試而不是 aws 膠水時,憑據和連接確實有效:

from simple_salesforce import Salesforce

def main():
    print("INIT")
    sf = Salesforce(username='username', password='pw', security_token='securitytoken', domain='test')
    res_bulk = sf.bulk.Account.query('SELECT Id, Name FROM Table')
    print(res_bulk)

if __name__ == "__main__":
    main()

到目前為止我嘗試了什么:

  • 正如我所說,我嘗試將作業配置為 python shell,使用 Glue 1.0 和使用 Glue 2.0 的 Spark。 由於依賴問題,兩者都失敗了。

  • 我曾嘗試降級 simple-salesforce 版本。 到目前為止,沒有任何工作,它一直在拋出ERROR: botocore 1.12.232 has requirement urllib3<1.26,>=1.20; python_version >= "3.4", but you'll have urllib3 1.26.2 which is incompatible. ERROR: botocore 1.12.232 has requirement urllib3<1.26,>=1.20; python_version >= "3.4", but you'll have urllib3 1.26.2 which is incompatible.

  • 我嘗試獲取低於 1.26.2 的 urllib 版本,將其上傳到 S3,並將其添加到我的代碼要使用的庫列表中。 到目前為止,這還沒有奏效,但我不知道為什么,因為我不知道 Glue 在被命令使用某個版本的庫時會做什么,無論你做什么,它都被設計為使用,比如 urllib。

關於我可能做錯什么的任何想法,或者我還能嘗試使其發揮作用。

simple_salesforce 模塊依賴於 authlib、密碼學等。在 Glue 版本 2.0(Spark 2.4、python 3)上,您需要將以下參數添加到膠水作業中:

--additional-python-modules: 密碼學==3.0,simple-salesforce==1.11.1 image_screenshot

您必須編輯作業並在“安全配置、腳本庫和作業參數(可選)”下找到“作業參數”選項。

(這些版本是兼容的並且對我有用)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM