Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ FunctionGraph/ Perguntas frequentes/ Migração do FunctionGraph V1 para V2/ Quais problemas de compatibilidade existem durante a migração?
Atualizado em 2023-09-28 GMT+08:00

Quais problemas de compatibilidade existem durante a migração?

  1. Diferença de args
    V1:
    args = parser.parse_args()

    Após a migração para V2, será:

    args = parser.parse_args(args=[])

    O sys.argv do tempo de execução do Python varia entre as duas versões.

    Para V2, é ['/home/snuser/runtime/python3.6/server.py', '127.0.0.1:31536', '/opt/function/code'], cujos dois últimos parâmetros não estão disponíveis para V1.

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

    Após a migração para 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()

    Na V1, asyncio.get_event_loop() obtém o loop de eventos atual de thread do SO (thread principal). Ele lançará RuntimeError na V2, porque o tempo de execução do Python da V2 não executa funções em thread principal.

    Para usar asyncio na V2, crie um loop de eventos.