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/ Referencia de la API/ Ejemplos/ Ejemplo 4: Uso de una función para invocar una subfunción
Actualización más reciente 2022-11-07 GMT+08:00

Ejemplo 4: Uso de una función para invocar una subfunción

Caso

Esta sección utiliza Python como ejemplo para describir cómo invocar una subfunción mediante una función.

Para obtener más información sobre cómo llamar a las API, consulte Llamar a APIs.

Prerrequisitos

Se ha creado una delegación con el permiso de FunctionGraph Administrator o de Tenant Administrator.

Procedimiento general

  1. Creación de una subfunción.
  2. Creación de una función.
  3. Uso de la función para invocar la subfunción.

Paso 1: Crear una subfunción

  1. Cree una subfunción en la consola. Establezca los parámetros haciendo referencia a Figura 1 y conservando los valores predeterminados para otros parámetros.
    Figura 1 Configuración de parámetros

Paso 2: Crear una función

  1. Cree una subfunción en la consola. Seleccione una delegación con el permiso de FunctionGraph Administrator o de Tenant Administrator. Además, establezca los parámetros como se muestra en Figura 2 y conserve los valores predeterminados para otros parámetros.
    Figura 2 Configuración de parámetros
  2. En la página de ficha Code, edite el código. El código de ejemplo es el siguiente:
    Figura 3 Edición del código
    import json
    import requests
    def handler (event, context):
        token = context.getToken()
        project_id = context.getProjectID()
        urn = 'urn:fss:xx-xxxxx-x:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:function:xxx:subfunction:latest'  # Subfunction URN, which can be queried on the right of the topology on the subfunction details page.
        url = 'https://functiongraph.xx-xxxxx-x.xxxxxxxxxxxxx.com/v2/%s/fgs/functions/%s/invocations' % (project_id,urn)
        headers = {
            "x-auth-token": token,
            "content-type": 'application/json'
        }
        body = {"k":"v"}
        resp = requests.post(url, json=body, headers=headers, verify=False)
        print(resp.text)
        return {
            "statusCode": 200,
            "isBase64Encoded": False,
            "body": json.dumps(event),
            "headers": {
                "Content-Type": "application/json"
            }
        }

Paso 3: Usar la función para invocar la subfunción

  1. En la página de detalles de la función, haga clic en Test para invocar la función.
  2. Consulte el resultado de la ejecución.
    • El resultado de la ejecución de la función es Success y se devuelve 200.
      Figura 4 Registro de ejecución de función
    • La página de ficha Logs muestra los detalles sobre la invocación de subfunciones.
      Figura 5 Registro de ejecución de subfunción