Estás viendo la documentación de Apigee Edge.
Ve a la
Documentación de Apigee X. información
Versión 1.0.5
Invoca Cloud Functions que se implementaron a través de tu proyecto de Google Cloud.
Actualmente, esta extensión admite la invocación de funciones de activador de HTTP.
Requisitos previos
En este contenido, se proporciona referencia para configurar y usar esta extensión. Antes de utilizar la extensión desde un proxy de API con la política ExtensionReference, debes hacer lo siguiente:
Habilita la API de Cloud Functions.
Define e implementa funciones en Cloud Functions para tu proyecto de Google Cloud.
Otorga acceso de usuario a través de IAM para el nivel de acceso que quieres para la función. Por ejemplo, puedes limitar el acceso a la función solo a la cuenta de servicio que usas para configurar la extensión.
Usar GCP Console a fin de generar una clave para la cuenta de servicio
Usa el contenido del archivo JSON de claves resultante cuando agregues y configures la extensión con la referencia de configuración.
Acerca de Cloud Functions
Con Google Cloud Functions, puedes crear e implementar funciones en Google Cloud y, luego, invocarlas desde otro código. Para obtener una introducción a Cloud Functions, prueba una de las guías de inicio rápido.
Ejemplos
En el siguiente ejemplo, se muestra cómo invocar funciones en Cloud Functions con la política ExtensionReference.
Invoca la función de Node.js
En el siguiente ejemplo, se incluye una política ExtensionReference que llama a una extensión de Google Cloud Functions. La extensión llama a la configuración predeterminada “Hello World” cuando habilitas la API de Cloud Functions.
El siguiente JavaScript de Node.js se implementa en Cloud Functions para una cuenta de GCP. Si la solicitud incluye una propiedad de mensaje, el código la mostrará. De lo contrario, mostrará “Hello World!”. como respuesta.
/**
* Responds to any HTTP request.
*
* @param {!express:Request} req HTTP request context.
* @param {!express:Response} res HTTP response context.
*/
exports.helloWorld = (req, res) => {
let message = req.query.message || req.body.message || 'Hello World!';
res.status(200).send(message);
};
En este ejemplo, se incluye una extensión de Google Cloud Functions configurada con las credenciales necesarias para autenticarse y obtener autorización para invocar código en Cloud Functions.
El código de función anterior se guarda en Cloud Functions como solo helloWorld
. El siguiente código de configuración de la política ExtensionAviso usa este nombre, junto con los valores de la región y el ID del proyecto que coinciden con las características del entorno de Cloud Functions donde se implementa la función.
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "us-central1",
"projectId" : "my-project",
"functionName" : "hello-world",
"method" : "POST",
"payload" : { "message" : "Hello yourself!" }
}
]]></Input>
<Output parsed="false">function.response</Output>
La siguiente política AssignMessage captura el valor de respuesta con fines de depuración.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Function-Response">
<DisplayName>Get Function Response</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{function.response}</Payload>
</Set>
</AssignMessage>
La respuesta a la solicitud anterior sería similar a la siguiente:
Hello yourself!
El valor predeterminado de parsed
es true
. En este ejemplo, se configura parsed="false"
en la etiqueta <Output>
de la política.
lo que evita que la política analice la respuesta JSON.
Para la mayoría de las situaciones cuando usas la extensión de Cloud Functions, debes configurar parsed="false"
.
Consulta <Resultado> para obtener más información.
Si la Cloud Function muestra una respuesta JSON y configuras parsed="true"
, la respuesta de la extensión es una referencia de objeto. Para extraer la respuesta de la referencia, usa la siguiente sintaxis: {objectName}.{jsonKey}
. Por ejemplo:
function.response.message
Acciones
invocar
Invoca una Cloud Function.
Actualmente, esta extensión admite la invocación de funciones de activador de HTTP.
Sintaxis
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "deployment-region",
"projectId" : "project-id",
"functionName" : "function-name",
"method" : "http-method",
"payload" : { json-payload }
}
]]></Input>
<Output>function.response</Output>
Ejemplo
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "us-central1",
"projectId" : "my-project",
"functionName" : "hello-world",
"method" : "POST",
"payload" : { "message" : "Hello yourself!" }
}
]]></Input>
<Output>function.response</Output>
parámetros de solicitud
Parámetro | Descripción | Tipo | Predeterminada | Obligatorio |
---|---|---|---|---|
región | Es la región de Google Cloud en la que se implementa la función. | String. | Ninguno | Sí. |
ID de proyecto | ID del proyecto de GCP. | String. | Ninguno | Sí. |
functionName | El nombre de la función de HTTP que se invocará. Este es el nombre que usaste cuando creaste la función (no es necesariamente un nombre del código de la función). | String. | Ninguno | Sí. |
method | El método HTTP que se usará cuando se invoque la función. | String. | GET |
No. |
carga útil | La carga útil que se enviará con la invocación de la función. | JSON. | Ninguno | No. |
Respuesta
El valor de respuesta de la función especificada, si corresponde.
Propiedades de la respuesta
Ninguno
Referencia de configuración
Usa la siguiente información cuando configures e implementes esta extensión para usarla en proxies de API. Si quieres conocer los pasos para configurar una extensión con la consola de Apigee, consulta Agrega y configura una extensión.
Propiedades de extensión comunes
Las siguientes propiedades están presentes para cada extensión.
Propiedad | Descripción | Predeterminado | Obligatorio |
---|---|---|---|
name |
Nombre que asignas a esta configuración de la extensión. | Ninguna | Sí |
packageName |
Nombre del paquete de extensiones proporcionado por Apigee Edge. | Ninguna | Sí |
version |
El número de versión del paquete de extensiones desde el que quieres configurar la extensión. | Ninguna | Sí |
configuration |
Es un valor de configuración específico para la extensión que agregas. Consulta Propiedades para este paquete de extensiones | Ninguna | Sí |
Propiedades de este paquete de extensión
Especifica valores para las siguientes propiedades de configuración específicas de esta extensión.
Propiedad | Descripción | Predeterminado | Obligatorio |
---|---|---|---|
credenciales | Cuando se ingresa en la consola de Apigee Edge, este es el contenido del archivo de claves de su cuenta de servicio. Cuando se envía a través de la API de Management, es un valor codificado en base64 que se genera a partir del archivo de claves de la cuenta de servicio. | Ninguno | Sí. |