- Descripción general del servicio
-
Guía del usuario
- Antes de comenzar
- Creación de una función de FunctionGraph
-
Configuración de la función
- Configuración de la inicialización
- Configuración de los parámetros básicos
- Configuración de permisos de delegación
- Configuración de VPC
- Configuración del montaje en disco
- Configuración de variables de entorno
- Configuración de encriptación
- Configuración de la notificación de ejecución asincrónica
- Configuración de Single-Instance Multi-Concurrency
- Gestión de versiones
- Gestión de alias
- Configuración de memoria dinámica
-
Creación de activadores
- Gestión de activadores
- Uso del activador de temporizador
- Uso de un activador APIG (dedicado)
- Uso de un activador OBS
- Uso de un activador Kafka
- Uso de un activador DIS
- Uso de un activador SMN
- Uso de un activador LTS
- Uso de un activador CTS
- Uso de un activador DDS
- Uso de un activador de GaussDB (for Mongo)
- Uso de un activador APIG (compartido)
- Uso de un activador de APIC
- Uso de un activador DMS (for RabbitMQ)
- Apéndice: Expresiones de Cron para un activador de temporizador de función
- Depuración de la función
- Invocación de la función
- Monitoreo
- Gestión de funciones
- Gestión de dependencias
- Gestión de instancias reservadas
- Aumento de la cuota de recursos
- Auditoría
-
Referencia de la API
- Antes de comenzar
- Descripción general de la API
- Llamar a APIs
-
Ejemplos
- Ejemplo 1: Uso de un activador de temporizador para descargar archivos periódicamente desde un bucket de OBS
- Ejemplo 2: Uso de un activador APIG para obtener una página web estática
- Ejemplo 3: Creación de una función mediante la carga de código en un bucket de OBS
- Ejemplo 4: Uso de una función para invocar una subfunción
-
Las API
- Invocación de función
- Cuotas de funciones
- Dependencias
- Eventos de prueba
- Rastreo de funciones
-
Gestión del ciclo de vida de la función
- Consulta de funciones
- Creación de una función
- Eliminación de una función o de la versión de función
- Consulta del código de una función
- Modificación del código de una función
- Consulta de los metadatos de una función
- Modificación de los metadatos de una función
- Actualización de las instancias máximas de una función
-
Versiones y Alias
- Consulta de todas las versiones y alias de una función
- Creación de un alias para una versión de función
- Eliminación de un alias de una versión de función
- Consulta del alias de una versión de función
- Modificación del alias de una versión de función
- Consulta de las versiones de una función
- Publicación de una versión de función
- Métricas de función
- Logs de funciones
- Importación y exportación de funciones
- Activadores de función
-
Notificación de ejecución asincrónica
- Consulta de parámetros de notificación de ejecución asíncrona de una versión de función
- Eliminación de la configuración de notificación de ejecución asincrónica
- Configuración de la notificación de ejecución asincrónica
- Consulta de configuración de notificación de ejecución asincrónica de todas las versiones de una función
- Consulta de solicitudes de invocación asincrónicas
- Detención de una solicitud de invocación asincrónica
- Políticas de permisos y acciones admitidas
- Apéndice
- Historial de revisiones
- Pasos iniciales
-
Preguntas frecuentes
-
Preguntas frecuentes generales
- ¿Qué es FunctionGraph?
- ¿Debo solicitar cualquier servicio de cómputo, de almacenamiento o de red al usar FunctionGraph?
- ¿Necesito desplegar mi código después de programar?
- ¿Cómo obtengo un token?
- ¿Qué tiempos de ejecución admite FunctionGraph?
- ¿Cuánto espacio en disco se asigna a cada función de FunctionGraph?
- ¿FunctionGraph admite versiones de funciones?
- ¿Cómo una función lee o escribe archivos?
- ¿Cómo configuro un proxy cuando uso CLI?
- ¿FunctionGraph admite la extensión de función?
- ¿Qué permisos se requieren para que un usuario de IAM use FunctionGraph?
- ¿Cómo puedo crear un paquete de dependencia de Python basado en una unidad de ODBC para la consulta de base de datos?
- ¿Cuál es la cuota de FunctionGraph?
- ¿Qué fuentes chinas admite FunctionGraph?
- ¿Cómo resuelve FunctionGraph un nombre de dominio de DNS privado?
- ¿Cómo resuelve una función basada en imagen de contenedor un nombre de dominio de DNS privado?
- ¿Cómo uso un nombre de dominio para acceder a una API registrada con API Gateway (Dedicado)?
- ¿Cuáles son los escenarios comunes de las aplicaciones de FunctionGraph?
- ¿Por qué no se puede resolver el nombre de dominio del gateway de la API vinculado a un servicio durante la invocación de funciones?
- ¿FunctionGraph admite la transmisión síncrona en el ancho de banda máximo de la intranet?
- ¿Qué pasa si se agota la cuota de VPC?
- ¿Cómo puedo imprimir logs de información, de errores o de aviso?
- ¿Puedo establecer el nombre de dominio de una API en mi propio nombre de dominio?
- ¿Puedo cambiar el tiempo de ejecución?
- ¿Puedo cambiar el nombre de una función?
- ¿Por qué se muestra el mensaje "failed to mount exist system path"?
- ¿Cómo obtengo los archivos cargados?
- ¿Por qué no puedo recibir respuestas por invocación síncrona?
- ¿Qué debo hacer si no se recopilan los logs de ejecución del os.system("command &")?
- ¿A qué directorios se puede acceder cuando se utiliza un tiempo de ejecución personalizado?
- ¿Qué versiones menores de Python 3.6 y 3.9 son compatibles?
- ¿Qué acciones se pueden utilizar en lugar de una delegación de gestión de VPC para el acceso a VPC?
- ¿Cuáles son las posibles causas del tiempo de espera de la función?
- ¿Cómo obtengo el código de una función?
- ¿Tiene un código de ejemplo para inicializadores?
- Preguntas frecuentes sobre la creación de funciones
-
Preguntas frecuentes sobre la gestión de activador
- ¿Qué eventos pueden activar una función de FunctionGraph?
- ¿Qué pasa si se informa el código de error 500 cuando las funciones que usan activadores de APIG devuelven cadenas?
- ¿Qué significan LATEST y TRIM_HORIZON en la configuración del activador de DIS?
- ¿Por qué no puedo activar o desactivar los activadores de OBS invocando a las API?
- ¿Cómo uso un activador de APIG para invocar una función?
- ¿Qué permisos se requieren para crear un activador de APIG?
- ¿Cómo obtiene una función la ruta de acceso o los parámetros de solicitud cuando se utiliza un activador de APIG?
- ¿Puedo crear un activador de OBS con un bucket existente?
-
Preguntas frecuentes sobre la gestión de dependencias
- ¿Qué es una dependencia?
- ¿Cuándo necesito una dependencia?
- ¿Cuáles son las precauciones para usar una dependencia?
- ¿Qué dependencias admite FunctionGraph?
- ¿FunctionGraph apoya las bibliotecas de clase?
- ¿Cómo uso las dependencias de FunctionGraph de terceros?
- ¿Cómo creo las dependencias de función?
- ¿Cómo puedo crear una dependencia en la consola de FunctionGraph?
- ¿Cómo agrego una dependencia a una función?
-
Preguntas frecuentes sobre la ejecución de funciones
- ¿Cuánto tiempo se tarda en ejecutar una función de FunctionGraph?
- ¿Qué pasos se incluyen en la ejecución de funciones?
- ¿Cómo procesa FunctionGraph las solicitudes simultáneas?
- ¿Qué sucede si las instancias de función no se han ejecutado durante mucho tiempo?
- ¿Cómo puedo acelerar el acceso inicial a una función?
- ¿Cómo sé la memoria real utilizada para la ejecución de funciones?
- ¿Por qué mi primera solicitud es lenta?
- ¿Qué hago si ocurre un error al invocar a una API?
- ¿Cómo leo el encabezado de solicitud de una función?
- ¿Puede una función invocar otra función?
- ¿Se puede invocar la interfaz de ejecución síncrona en una red privada?
- ¿Por qué una función utiliza más memoria de la estimada e incluso activa la alarma de falta de memoria?
- ¿Cómo puedo comprobar el uso de memoria cuando veo "runtime memory limit exceeded"?
- ¿Cómo soluciono los problemas de CrashLoopBackOff?
- Después de actualizar una imagen con el mismo nombre, las instancias reservadas siguen utilizando la imagen antigua. ¿Qué puedo hacer?
- Preguntas frecuentes sobre la configuración de funciones
- Preguntas frecuentes sobre el acceso a recursos externos
-
Otras preguntas frecuentes
- ¿Cómo puedo ver las reglas de alarma configuradas para una función?
- ¿FunctionGraph admite la descompilación de ZIP durante la transcodificación de vídeo?
- ¿Qué es una aplicación de FunctionGraph?
- ¿Necesito pagar por el tiempo de inicio en frío?
- ¿Por qué veo un mensaje que indica que mi cuenta fue suspendida al crear una función?
- ¿Se facturarán las solicitudes de todas mis funciones en diferentes regiones?
- Migración de FunctionGraph de V1 a V2
-
Preguntas frecuentes generales
- Actualmente, el contenido no está disponible en el idioma seleccionado. Sugerimos consultar la versión en inglés.
- What's New
- Function Overview
- Billing
-
Best Practices
- FunctionGraph Best Practices
- Processing DIS Data
- Integrating with LTS to Analyze Logs in Real Time
- Integrating with CTS to Analyze Login/Logout Security
- Periodically Starting or Stopping Huawei Cloud ECSs
- Building an HTTP Function with Spring Boot
- Creating a FunctionGraph Backend API That Uses a Custom Authorizer
- Uploading Files with FunctionGraph and APIG
- Processing IoT Data
- Workflow + Function: Automatically Processing Data in OBS
- Filtering Logs in Real Time by Using FunctionGraph and LTS
- Building an HTTP Function with Go
- Using FunctionGraph HTTP Functions to Process gRPC Requests
- Cold Start Optimization Practices
-
Developer Guide
- Overview
- Initializer
- Node.js
- Python
- Java
- Go
- C#
- PHP
- Development Tools
- SDK Reference
-
More Documents
-
User Guide (ME-Abu Dhabi Region)
- Service Overview
- Getting Started
- Before You Start
- Building Functions
-
Configuring Functions
- Configuring Initialization
- Configuring Basic Settings
- Configuring Agency Permissions
- Configuring the Network
- Configuring Disk Mounting
- Configuring Environment Variables
- Configuring Asynchronous Execution Notification
- Configuring Single-Instance Multi-Concurrency
- Managing Versions
- Managing Aliases
- Configuring Dynamic Memory
- Configuring Heartbeat Function
- Online Debugging
- Creating Triggers
- Invoking the Function
- Monitoring
- Function Management
- Dependency Management
- Reserved Instance Management
- Increasing Resource Quota
- Audit
-
FAQs
-
General FAQs
- What Is FunctionGraph?
- Do I Need to Apply for Any Compute, Storage, or Network Services When Using FunctionGraph?
- Do I Need to Deploy My Code After Programming?
- What Runtimes Does FunctionGraph Support?
- How Much Disk Space Is Allocated to Each FunctionGraph Function?
- Does FunctionGraph Support Function Versioning?
- How Does a Function Read or Write Files?
- Does FunctionGraph Support Function Extension?
- Which Permissions Are Required for an IAM User to Use FunctionGraph?
- How Can I Create an ODBC Drive-based Python Dependency Package for Database Query?
- What Is the Quota of FunctionGraph?
- How Does FunctionGraph Resolve a Private DNS Domain Name?
- How Does a Container Image–based Function Resolve a Private DNS Domain Name?
- How Do I Use a Domain Name to Access an API Registered with API Gateway (Dedicated)?
- What Are the Common Application Scenarios of FunctionGraph?
- Why Can't the API Gateway Domain Name Bound to a Service Be Resolved During Function Invocation?
- Does FunctionGraph Support Synchronous Transmission at the Maximum Intranet Bandwidth?
- What If the VPC Quota Is Used Up?
- How Can I Print Info, Error, or Warn Logs?
- Can I Set the Domain Name of an API to My Own Domain Name?
- Can I Change the Runtime?
- Can I Change a Function's Name?
- Why Is Message "failed to mount exist system path" Displayed?
- How Do I Obtain Uploaded Files?
- Why Can't I Receive Responses for Synchronous Invocation?
- What Should I Do If the os.system("command &") Execution Logs Are Not Collected?
- Which Directories Can Be Accessed When a Custom Runtime Is Used?
- Which Minor Versions of Python 3.6 and 3.9 Are Supported?
- Which Actions Can Be Used Instead of a VPC Administrator Agency for VPC Access?
- What Are the Possible Causes for Function Timeout?
- How Do I Obtain the Code of a Function?
- Do You Have Sample Code for Initializers?
- How Do I Enable Structured Log Query?
- Can I Enable a Listening Port in a Function to Receive External TCP Requests via EIP?
- Function Creation FAQs
-
Trigger Management FAQs
- What Events Can Trigger a FunctionGraph Function?
- What If Error Code 500 Is Reported When Functions that Use APIG Triggers Return Strings?
- What Do LATEST and TRIM_HORIZON Mean in DIS Trigger Configuration?
- Why Can't I Enable or Disable OBS Triggers by Calling APIs?
- How Do I Use an APIG Trigger to Invoke a Function?
- How Does a Function Obtain the Request Path or Parameters When Using an APIG Trigger?
- Can I Create an OBS Trigger with an Existing Bucket?
-
Dependency Management FAQs
- What Is a Dependency?
- When Do I Need a Dependency?
- What Are the Precautions for Using a Dependency?
- What Dependencies Does FunctionGraph Support?
- Does FunctionGraph Support Class Libraries?
- How Do I Use Third-Party Dependencies on FunctionGraph?
- How Do I Create Function Dependencies?
- How Do I Create a Dependency on the FunctionGraph Console?
- How Do I Add a Dependency to a Function?
-
Function Execution FAQs
- How Long Does It Take to Execute a FunctionGraph Function?
- Which Steps Are Included in Function Execution?
- How Does FunctionGraph Process Concurrent Requests?
- What If Function Instances Have Not Been Executed for a Long Time?
- How Can I Speed Up Initial Access to a Function?
- How Do I Know the Actual Memory Used for Function Execution?
- Why Is My First Request Slow?
- What Do I Do If an Error Occurs When Calling an API?
- How Do I Read the Request Header of a Function?
- Why Does a Function Use More Memory Than Estimated and Even Trigger the Out of Memory Alarm?
- How Do I Check the Memory Usage When Seeing "runtime memory limit exceeded"?
- How Do I Troubleshoot "CrashLoopBackOff"?
- After I Updated an Image with the Same Name, Reserved Instances Still Use the Old Image. What Can I Do?
- Function Configuration FAQs
- External Resource Access FAQs
- Other FAQs
-
General FAQs
-
API Reference (ME-Abu Dhabi Region)
- Before You Start
- API Overview
- Calling APIs
- Function Model Definition
-
Function Management Zone APIs
- Querying a Function List
- Querying the Metadata of a Function
- Querying the Code of a Function
- Creating a Function
- Deleting a Function or Function Version
- Modifying the Code of a Function
- Modifying the Metadata of a Function
- Publishing a Function Version
- Querying the Versions of a Function
- Creating an Alias for a Function Version
- Modifying the Alias Information About a Function Version
- Deleting an Alias of a Function Version
- Querying the Alias Information About a Function Version
- Querying the Version Alias List of a Function
- Querying All Triggers of a Function
- Querying the Information About a Trigger
- Deleting All Triggers of a Function
- Creating a Trigger
- Deleting a Trigger
- Function Data Zone APIs
- Permissions Policies and Supported Actions
- Appendix
- Change History
- Developer Guide (ME-Abu Dhabi Region)
-
User Guide (Kuala Lumpur Region)
- Service Overview
- Getting Started
- Before You Start
- Building Functions
-
Configuring Functions
- Configuring Initialization
- Configuring Basic Settings
- Configuring Agency Permissions
- Configuring the Network
- Configuring Disk Mounting
- Configuring Environment Variables
- Configuring Asynchronous Execution Notification
- Configuring Single-Instance Multi-Concurrency
- Managing Versions
- Managing Aliases
- Configuring Dynamic Memory
- Online Debugging
- Creating Triggers
- Invoking the Function
- Monitoring
- Function Management
- Dependency Management
- Reserved Instance Management
- Audit
-
FAQs
-
General FAQs
- What Is FunctionGraph?
- Do I Need to Apply for Any Compute, Storage, or Network Services When Using FunctionGraph?
- Do I Need to Deploy My Code After Programming?
- What Runtimes Does FunctionGraph Support?
- How Much Disk Space Is Allocated to Each FunctionGraph Function?
- Does FunctionGraph Support Function Versioning?
- How Does a Function Read or Write Files?
- Does FunctionGraph Support Function Extension?
- Which Permissions Are Required for an IAM User to Use FunctionGraph?
- How Can I Create an ODBC Drive-based Python Dependency Package for Database Query?
- What Is the Quota of FunctionGraph?
- How Does a Container Image–based Function Resolve a Private DNS Domain Name?
- How Do I Use a Domain Name to Access an API Registered with API Gateway (Dedicated)?
- What Are the Common Application Scenarios of FunctionGraph?
- Why Can't the API Gateway Domain Name Bound to a Service Be Resolved During Function Invocation?
- Does FunctionGraph Support Synchronous Transmission at the Maximum Intranet Bandwidth?
- What If the VPC Quota Is Used Up?
- How Can I Print Info, Error, or Warn Logs?
- Can I Set the Domain Name of an API to My Own Domain Name?
- Can I Change the Runtime?
- Can I Change a Function's Name?
- Why Is Message "failed to mount exist system path" Displayed?
- How Do I Obtain Uploaded Files?
- Why Can't I Receive Responses for Synchronous Invocation?
- What Should I Do If the os.system("command &") Execution Logs Are Not Collected?
- Which Directories Can Be Accessed When a Custom Runtime Is Used?
- Which Minor Versions of Python 3.6 and 3.9 Are Supported?
- Which Actions Can Be Used Instead of a VPC Administrator Agency for VPC Access?
- What Are the Possible Causes for Function Timeout?
- How Do I Obtain the Code of a Function?
- Do You Have Sample Code for Initializers?
- How Do I Enable Structured Log Query?
- Can I Enable a Listening Port in a Function to Receive External TCP Requests via EIP?
- Function Creation FAQs
-
Trigger Management FAQs
- What If Error Code 500 Is Reported When Functions that Use APIG Triggers Return Strings?
- What Do LATEST and TRIM_HORIZON Mean in DIS Trigger Configuration?
- Why Can't I Enable or Disable OBS Triggers by Calling APIs?
- How Do I Use an APIG Trigger to Invoke a Function?
- How Does a Function Obtain the Request Path or Parameters When Using an APIG Trigger?
- Can I Create an OBS Trigger with an Existing Bucket?
-
Dependency Management FAQs
- What Is a Dependency?
- When Do I Need a Dependency?
- What Are the Precautions for Using a Dependency?
- What Dependencies Does FunctionGraph Support?
- Does FunctionGraph Support Class Libraries?
- How Do I Use Third-Party Dependencies on FunctionGraph?
- How Do I Create Function Dependencies?
- How Do I Create a Dependency on the FunctionGraph Console?
- How Do I Add a Dependency to a Function?
-
Function Execution FAQs
- How Long Does It Take to Execute a FunctionGraph Function?
- Which Steps Are Included in Function Execution?
- How Does FunctionGraph Process Concurrent Requests?
- What If Function Instances Have Not Been Executed for a Long Time?
- How Can I Speed Up Initial Access to a Function?
- How Do I Know the Actual Memory Used for Function Execution?
- Why Is My First Request Slow?
- What Do I Do If an Error Occurs When Calling an API?
- How Do I Read the Request Header of a Function?
- Why Does a Function Use More Memory Than Estimated and Even Trigger the Out of Memory Alarm?
- How Do I Check the Memory Usage When Seeing "runtime memory limit exceeded"?
- How Do I Troubleshoot "CrashLoopBackOff"?
- After I Updated an Image with the Same Name, Reserved Instances Still Use the Old Image. What Can I Do?
- Function Configuration FAQs
- External Resource Access FAQs
- Other FAQs
-
General FAQs
- Change History
-
API Reference (Kuala Lumpur Region)
- Before You Start
- API Overview
- Calling APIs
- Examples
-
APIs
- Function Invocation
- Function Quotas
- Dependencies
- Test Events
- Function Tracing
-
Function Lifecycle Management
- Querying Functions
- Creating a Function
- Deleting a Function or Function Version
- Querying the Code of a Function
- Modifying the Code of a Function
- Querying the Metadata of a Function
- Modifying the Metadata of a Function
- Updating Max. Instances of a Function
- Enabling or Disabling the Snapshot Function
- Querying Snapshot Status
- Querying Resource Tags
- Querying Resources
- Deleting Resource Tags
- Creating Resource Tags
- Creating a VPC Endpoint
- Deleting a VPC Endpoint
- Versions and Aliases
- Function Metrics
- Function Logs
- Reserved Instances
- Function Import and Export
- Function Triggers
-
Asynchronous Execution Notification
- Querying Asynchronous Execution Notification Settings of a Function Version
- Deleting Asynchronous Execution Notification Settings
- Configuring Asynchronous Execution Notification
- Querying Asynchronous Execution Notification Settings of a Function's All Versions
- Querying Asynchronous Invocation Requests
- Stopping an Asynchronous Invocation Request
- Appendix
- Developer Guide (Kuala Lumpur Region)
-
User Guide (ME-Abu Dhabi Region)
- Videos
Copiado.
Ejemplo 2: Uso de un activador APIG para obtener una página web estática
Caso
Este ejemplo le guía a través del procedimiento para crear una función de Python 2.7 y asociar un activador APIG con ella para obtener una página web estática.
Para obtener más información sobre cómo llamar a las API, consulte Llamar a APIs.
Prerrequisitos
Ha creado un grupo de API en API Gateway y ha registrado el ID y el nombre de subdominio del grupo de API.
Procedimiento general
Cree una función de FunctionGraph y asocie un activador APIG para obtener una página web estática. Siga el siguiente procedimiento:
- Creación de una función: Crear una función para devolver una página web estática.
- Creación de un activador: Crear un activador APIG.
- Llamar a la API del activador APIG para obtener una página estática.
Paso 1: Crear una función para devolver una página web estática
URI: POST /v2/{project_id}/fgs/functions
Para obtener más información, consulte Creación de una función.
- Ejemplo de la solicitud
POST https://{Endpoint}/v2/{project_id}/fgs/functions { "code_filename": "index.zip", "code_type": "inline", "func_code": { "file": "UEsDBAoAAAAIABY7vFD7lxPkAgMAALoHAAAIAAAAaW5kZXgucHndVdtu00AQfc9XrMKDExQ7zqW50VYqFZRKIFUQhFBVobU9iU1tr9mdbRKqSHwNH8aXMLtxrgoS8ISIosg7c+bszNnjzRPmPnVZKKIkn440TtyBCVQcx6mMY2ATkaZiRjmWKMZzdnFzfcXgAXJkYsI4UzwrUoLpPMRE5B77KDQLCYigkGFMVescCxZMQQq0IDokcl4kruVyEYiGI5TU66VXqTxWGKvGiMUbwFhE1RGrXr0YVxsmXHCMTaBpNmvGQK1uEzdc8gwQpCKIYTFxKeYLU7HCUnBp8V80yMU7lNTYsbKcIqaKfjclMfBoDzR3FfKpxZl2bCMUfiXomWIz7GU5tNXw3oM5hBrBpfE9rdwZod22xzP+VeR8prxQZOvq9wqkezElTQxHqrkrCb1wjSBN32v5rPZa8zrLp/NPlG22fN8fbJsMRGTH/fHtO31X2kigaRVeihxhjtv+j3Zfgq+t7lHU7XT6nV479NthP+r328Mh9Af9QSuAoBu01kU016qg2wq6J8A7bt8PTtxWC3pu0A8itzcMTjiHgEiGZbNL67gkK4QkZ6n102cl8vVzwBX0upVKBBMW8zxKQdasXRpkXztMfWQbKOgckTl02CEoxcoZ2ESKzFiOvCeT6RSkU7FwlItVnfmQvIXIFYwXBbCzlR1vnaP+cO5unV24c2dZYB5Cgb9kdKh9rlMsN08mBwBCxJilzpbALN+WGCJ43CTMx6FjQ60uRQTOiLV9v7GfTtRzK9uLnF5xiAgzlhoOQKWXndEBuT1NaxTzilJ7K3vM6V2jnp6xMOZSAZ7Za6O6V7o82MI4kfhXZ+gFvS7YhmrOqaE6P41b5x8gJecDQ8E0TfqyvDauJC/i0yYBTu225059y73ckRm1zK1hvEhnhart6lZfqQ3pMb1NzY7eZvkP6c2LIk1CbqRomtb+UufH6j3Yu+CBpxqqy99VcVeNjYoKtnKVfv7fHXqTAmXMTaNQ6hDtH5iWKZslGDN7QbBiczfsmezMEDT2Q0bWP/TzgdD1n1BLAQIeAwoAAAAIABY7vFD7lxPkAgMAALoHAAAIAAAAAAAAAAAAAADzAgAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAAoAwAAAAA=" }, "func_name": "get_html", "handler": "index.handler", "memory_size": 256, "package": "default", "runtime": "Python2.7", "timeout": 5 }
- Ejemplo de la respuesta
{ "func_urn": "urn:fss:{project_name}:{project_id}:function:default:get_html:latest", "func_name": "get_html", "domain_id": "89fexxxd636", "namespace": "{project_id}", "project_name": "xxx", "package": "default", "runtime": "Python2.7", "timeout": 5, "handler": "index.handler", "memory_size": 256, "cpu": 400, "code_type": "inline", "code_filename": "index.zip", "code_size": 884, "digest": "b08fef5e97dd130037978db07f0e9109aa43a191517cd1196bcab822f17dddcf37f7506a15691177962f9803ba6d170a1c87aafb4fa1b9f0d07f9415642b26d2", "version": "latest", "image_name": "latest-200604105808@we0qo", "last_modified": "2020-06-04T10:58:08+08:00", "strategy_config": { "concurrency": -1 }, "StrategyConfig": {}, "enterprise_project_id": "0" }
Registre el URN de la función, es decir, el valor de func_urn en la respuesta.
Paso 2: Crear un activador APIG
URI: POST /v2/{project_id}/fgs/triggers/{function_urn}
Para obtener más información, consulte Creación de un activador.
- Ejemplo de la solicitud
POST https://{Endpoint}/v2/{project_id}/fgs/triggers/{function_urn} { "event_data": { "group_id": "a9ad0d5df4d7475c9bc35a7c17d89304", "env_id": "DEFAULT_ENVIRONMENT_RELEASE_ID", "auth": "NONE", "protocol": "HTTP", "name": "API_GetHtml", "path": "/test", "match_mode": "SWA", "req_method": "ANY", "backend_type": "FUNCTION", "sl_domain": "a9ad0d5df4d7475c9bc35a7c17d89304.apig.xxx.xxxapis.com", "type": 1, "env_name": "RELEASE" }, "event_type_code": "APICreated", "trigger_status": "ACTIVE", "trigger_type_code": "APIG" }
- function_urn: función URN registrada en Paso 1: Crear una función para devolver una página web estática
- group_id: ID de grupo de API
- sl_domain: nombre de subdominio que API Gateway asigna al grupo API
- Ejemplo de la respuesta
{ "trigger_id": "1b3ec74b86454aa39001a9f89cc70ee2", "trigger_type_code": "APIG", "trigger_status": "ACTIVE", "event_data": { "api_id": "cbc698153d1f4265bdd8384b5cf6e581", "api_name": "API_GetHtml", "auth": "NONE", "env_id": "", "env_name": "", "func_info": { "function_urn": "urn:fss:{project_name}:{project_id}:function:default:get_html", "invocation_type": "sync", "timeout": 5000, "version": "latest" }, "group_id": "a9ad0d5df4d7475c9bc35a7c17d89304", "group_name": "APIGroup_gethtml", "invoke_url": "http://a9ad0d5df4d7475c9bc35a7c17d89304.apig.xxx.xxxapis.com/test", "match_mode": "SWA", "name": "API_GetHtml", "path": "/test", "protocol": "HTTP", "req_method": "ANY", "triggerid": "1b3ec74b86454aa39001a9f89cc70ee2", "type": 1 }, "last_updated_time": "2020-06-04T17:14:32+08:00", "created_time": "2020-06-04T17:14:32+08:00" }
Registre el valor de invoca_url.
Paso 3: Llamar a la API del activador APIG para obtener una página web estática
Introduzca el valor invoke_url en la barra de direcciones de un navegador para obtener una página web estática.
