Я пытаюсь написать функцию Lambda, которая создает папку в ведре s3, когда новый подтвержденный пользователь Cognito. Это позволит мне ограничить доступ этого пользователя к его папке. Я создал лямбда-функцию, которая может отображать текущих пользователей, зарегистрированных в пользовательском пуле. Я знаю, что в Cognito есть триггер события «подтверждение» и «пост-аутентификация», и я выбрал свою функцию для запуска по этому триггеру.
Но я не знаю, как создать папку, когда пользователь аутентифицируется или подтверждает это событие. На приведенном ниже снимке экрана показан мой лямбда-код.
Вот мой код для триггера пост-аутентификации, но он не работает:
from __future__ import print_function
def lambda_handler(event, context):
# Send post authentication data to Cloudwatch logs
print ("Authentication successful")
print ("Trigger function =", event['triggerSource'])
print ("User pool = us-east-1_EVPcl4p64", event['userPoolId'])
print ("App client ID = ", event['callerContext']['clientId'])
print ("User ID = ", event['userName'])
# Return to Amazon Cognito
return event
Вот код для пользователя списка. Это работает, но как теперь получить только имя пользователя и на этой основе создать папку в ведре s3?
import json
import boto3
import re
def lambda_handler(event, context):
# TODO implement
client = boto3.client('cognito-idp')
response = client.list_users(
UserPoolId='us-east-1_EVPcl4p64',
AttributesToGet=['email']
)
x = response
print json.dumps(x)
print(y["email"])
pattern = '^@gmail.com$'
test_string = response
result = re.match(pattern, test_string)
print(response)
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}