[英]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.