Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ FunctionGraph/ Preguntas frecuentes/ Migración de FunctionGraph de V1 a V2/ ¿Qué problemas de compatibilidad existen durante la migración?
Actualización más reciente 2023-05-09 GMT+08:00

¿Qué problemas de compatibilidad existen durante la migración?

  1. Diferencia de args
    V1:
    args = parser.parse_args()

    Después de la migración a V2, será:

    args = parser.parse_args(args=[])

    El sys.argv del tiempo de ejecución de Python varía entre las dos versiones.

    Para V2, es ['/home/snuser/runtime/python3.6/server.py', '127.0.0.1:31536', '/opt/function/code'], cuyos dos últimos parámetros no están disponibles para V1.

  2. Diferencia de asyncio
    V1:
    loop = asyncio.get_event_loop()
    loop.run_until_complete(func(arg1, arg2))
    loop.close()

    Después de la migración a V2, será:

    loop_tmp = asyncio.new_event_loop()
    asyncio.set_event_loop(loop_tmp)
    loop = asyncio.get_event_loop()
    loop.run_until_complete(func(arg1, arg2))
    loop.close()

    En V1, asyncio.get_event_loop() obtiene el bucle de evento actual del subproceso del SO (subproceso principal). Lanzará RuntimeError en V2, porque el tiempo de ejecución de Python de V2 no ejecuta funciones en el subproceso principal.

    Para utilizar asyncio en V2, cree un bucle de eventos.