0

我正在使用Python for AWS Lambda。我有Profile PATCH和Profile DELETE API調用。修補程序請求正常工作。 DELETE返回InternalServerErrorast.literal_eval InternalServerError

profile_request = ast.literal_eval(str(event['_body'])) 

PATCH使用完全相同的東西。我甚至嘗試從PATCH複製粘貼來確保沒有錯字。我見過有人說一個語法問題會導致這個問題。我從PATCH複製粘貼正文並用archive_status替換配置文件以確保沒有語法問題。事件是一本字典。事件['_ body']是unicode類型。兩個請求都具有完全相同的授權和標題要求。我查看了CloudWatch日誌,以確保該實體在事件中實際上列爲_body。我無法弄清楚爲什麼我得到DELETE配置文件的InternalServerError而不是PATCH配置文件。任何建議,將不勝感激。

PATCH體:

{ 

    "AccessToken": "eyJraWQiOiIzRUZtNG1lRE45c1wvQU9XUGdiYkZJNm1wakVkOVRFR05PYTY0SXJZOWRDdz0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIwZTQ1ZDYyZi1mYzQxLTQxNTQtYjZiOC04NjBiNTdkZWNkOGUiLCJkZXZpY2Vfa2V5IjoidXMtZWFzdC0xXzhkYTA3NWQ2LWEzNmItNDZhNS04YjAyLWY3ZmNjY2UxMGZiOCIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cL3VzLWVhc3QtMV96dnNGSkYzRzEiLCJleHAiOjE1MDYzNzI2MjksImlhdCI6MTUwNjM2OTAyOSwianRpIjoiMDU3NTkwMzItYmQ5YS00MzljLWJjM2QtYWY2OGZiZjJmNTBiIiwiY2xpZW50X2lkIjoiNWNscm9vNDhtamZpb2QzaDRoZGgyZDNvZHUiLCJ1c2VybmFtZSI6IjBlNDVkNjJmLWZjNDEtNDE1NC1iNmI4LTg2MGI1N2RlY2Q4ZSJ9.G2-gGYyZajrsAikFPuuttYQAj1Yc7uj-UUz469NEUk0SoEFvcJ3E6MOINmIWYg1W6BwJG09W4C_DvBrbybNZep-TtVoAHqNeuiEubt4IABeycZ9ELhKS4G-aaIvbV6CTVFVljFcUdTqCBf0TP7kxKp6P2kRRx08PjCqfQX-34XE-YJt2FyIGzSc958OT0MasROdHxr_ozJS6LGHw52BF1UG1llpR3YPGtMe8Gz9Y65RFEIDIpXllShKSFogvy-rdJFnaJqAYYn6WfjtmqDUjYzFTNZmGNOWy7_BxGFX90lUBB0V47k8M4nxvC_qWQ9o1LTkCYXIDD9sWMCtY4ewYmw", 
    "profile": { 
     "name": "Test" 
    } 
} 

DELETE體:

{ 

    "AccessToken": "eyJraWQiOiIzRUZtNG1lRE45c1wvQU9XUGdiYkZJNm1wakVkOVRFR05PYTY0SXJZOWRDdz0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIwZTQ1ZDYyZi1mYzQxLTQxNTQtYjZiOC04NjBiNTdkZWNkOGUiLCJkZXZpY2Vfa2V5IjoidXMtZWFzdC0xXzhkYTA3NWQ2LWEzNmItNDZhNS04YjAyLWY3ZmNjY2UxMGZiOCIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cL3VzLWVhc3QtMV96dnNGSkYzRzEiLCJleHAiOjE1MDYzNzI2MjksImlhdCI6MTUwNjM2OTAyOSwianRpIjoiMDU3NTkwMzItYmQ5YS00MzljLWJjM2QtYWY2OGZiZjJmNTBiIiwiY2xpZW50X2lkIjoiNWNscm9vNDhtamZpb2QzaDRoZGgyZDNvZHUiLCJ1c2VybmFtZSI6IjBlNDVkNjJmLWZjNDEtNDE1NC1iNmI4LTg2MGI1N2RlY2Q4ZSJ9.G2-gGYyZajrsAikFPuuttYQAj1Yc7uj-UUz469NEUk0SoEFvcJ3E6MOINmIWYg1W6BwJG09W4C_DvBrbybNZep-TtVoAHqNeuiEubt4IABeycZ9ELhKS4G-aaIvbV6CTVFVljFcUdTqCBf0TP7kxKp6P2kRRx08PjCqfQX-34XE-YJt2FyIGzSc958OT0MasROdHxr_ozJS6LGHw52BF1UG1llpR3YPGtMe8Gz9Y65RFEIDIpXllShKSFogvy-rdJFnaJqAYYn6WfjtmqDUjYzFTNZmGNOWy7_BxGFX90lUBB0V47k8M4nxvC_qWQ9o1LTkCYXIDD9sWMCtY4ewYmw", 
    "archive_status": "archive" 
} 
+2

API有效負載似乎都是JSON。是否有任何理由用「ast.literal_eval」而不是「json」模塊解析它們? – jwodder

+1

什麼是實際錯誤和堆棧跟蹤? – Ryan

回答

0

對不起。我對Python和json和AWS的全新新手相當陌生。另一家公司設置了部署的聖盃和一些基本代碼的api框架。我應該把它全部弄清楚,並學習如何使它工作,因爲我的公司想要它。我正在通過郵遞員測試。去cloudwatch的lambda代碼記錄器是我追蹤這個問題的方式。原來,問題馬上就被日誌行ast.literal_eval後:

profile_request = ast.literal_eval(STR(事件[ '_體']))

logger.info(profile_request)

我假設沒有看到cloudwatch中的日誌意味着ast.literal_eval是問題。找到一種方法來在本地進行測試,以便我可以看到該跟蹤讓我找出導致AttributeError的日誌行:'dict'對象沒有屬性'strip'。這很容易,所以問題得到解決。很高興我知道如何現在在當地進行測試。謝謝你這麼快回復。

相關問題