我正在嘗試構建一個連接到 API 網關 POST 方法的 lambda 函式,該方法將允許用戶在給定池中創建和注冊 cognito 用戶:
def lambda_handler(event, context):
username = json.dumps(event["body"])
try:
response = client.admin_create_user(
UserPoolId=user_pool,
Username=username,
TemporaryPassword="TemporaryPassword1234",
)
return response
except ClientError as e:
return {
"statusCode": 400,
"headers": misc.response_parameters_standard,
"body": e.response["Error"]["Message"],
}
電子郵件格式的用戶名在事件正文中給出。
我已通過日志陳述句確認用戶名變數已成功提取為格式為“[email protected]”的字串
我已經確認 lambda 函式具有以管理員身份訪問 cognito 的適當權限。
在運行這個 lambda 時,我遇到了 ClientError:
Username should be an email.
我已直接從 CLI 以相同格式發送用戶名,并且用戶池接受相同的用戶名而不會出錯。
uj5u.com熱心網友回復:
json.dumps轉換物件-> JSON。
json.loads轉換 JSON -> 物件。
如果event是 JSON,您想轉換 JSON -> 物件,因此請嘗試username = json.loads(event["body"])。
如果不是,并且您只是將用戶名作為字串傳遞,請嘗試username = event[“body”].
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/476138.html
