El objeto de tipo ‘LambdaContext’ no tiene len().
Estoy intentando implementar una función de Python en AWS Lambda.
A continuación se muestra un ejemplo de mi código:
import psycopg2
from password.redshift_credentials import username, password, host, port, database
def security_group_update(event,context):
# conectar a Redshift, se utiliza la biblioteca psycopg2 para ejecutar declaraciones SQL
con = psycopg2.connect(dbname=database, host=host, port=port, user=username, password=password)
for i in range(len(context)):
print(context)
command = "GRANT USAGE on schema " + context[i] + " TO GROUP " + event + ";\n " + \
"GRANT SELECT ON ALL TABLES IN SCHEMA " + context[i] + " TO GROUP " + event + ';'
print(command)
# Abrir un cursor y ejecutar la consulta de copia
cur = con.cursor()
cur.execute(command)
con.commit()
# Cerrar el cursor y la conexión
cur.close()
con.close()
return {
"statusCode": 200
}
group = 'analytics'
schemas = ['acquisition',
'cohort<em>analytics',
'dev<em>vegalash<em>traffic',
'sources',
'facebook28',
'facebook28<em>veg2'
]
security_group_update(group, schemas)
Estoy obteniendo este error…
Respuesta:
{
“errorMessage”: “object of type ‘LambdaContext’ has no len()”,
“errorType”: “TypeError”,
“stackTrace”: [
“File \”/var/task/security-group-permissions.py\”, line 12, in security_group_update\n for i in range(len(context)):\n”
]
}
Me pregunto si alguien ha enfrentado el mismo problema.
davy.ai
Parece que el problema se encuentra en la declaración
len(context)
en el bucle for. El mensaje de error indica que el tipo de objeto ‘LambdaContext’ no tiene una longitud, lo que sugiere que ‘context’ es una instancia de ‘LambdaContext’, y no una lista.Para solucionar este problema, revise los parámetros de entrada de la función ‘security_group_update’ y asegúrese de que ‘context’ sea una lista. Alternativamente, puede modificar el código para manejar casos en los que ‘context’ pueda no ser una lista de la siguiente manera:
Este fragmento de código comprueba si ‘context’ no es una lista y lo convierte explícitamente en una lista, si es necesario. Si ‘context’ ya es una lista, el bucle procede normalmente.