Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
Versão 1.3.1
Invoque funções do Cloud que são implantadas por meio do seu projeto do Google Cloud.
Atualmente, essa extensão é compatível com a invocação de funções de gatilho HTTP.
Pré-requisitos
Este conteúdo fornece referência para configurar e usar essa extensão. Antes de usar a extensão de um proxy de API com a política Extension callout, você precisa:
Ative a API Cloud Functions.
Defina e implante funções no Cloud Functions para seu projeto do Google Cloud.
Conceda acesso ao usuário via IAM para o nível de acesso que você vai precisar para a função. Por exemplo, você pode limitar o acesso à função apenas à conta de serviço usada para configurar a extensão.
Use o Console do GCP para gerar uma chave para a conta de serviço.
Use o conteúdo do arquivo JSON da chave resultante ao adicionar e configurar a extensão usando a referência de configuração.
Sobre o Cloud Functions
Com o Google Cloud Functions, é possível criar e implantar funções no Google Cloud e, em seguida, invocá-las de outro código. Para uma introdução ao Cloud Functions, confira um dos guias de início rápido.
Amostras
O exemplo a seguir ilustra como invocar funções no Cloud Functions usando a política ExtensionExtension.
Invocar a função Node.js
O exemplo a seguir apresenta uma política Extension callout que chama uma extensão do Google Cloud Functions. A extensão chama o padrão "hello world" incluída quando você ativa a API Cloud Functions.
O JavaScript Node.js a seguir é implantado no Cloud Functions para uma conta do GCP. Se a solicitação incluir uma propriedade de mensagem, o código a retornará. Caso contrário, ele retornará "Hello World!" como resposta.
/**
* 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);
};
Este exemplo inclui uma extensão do Google Cloud Functions configurada com as credenciais necessárias para autenticar e receber autorização para invocar código no Cloud Functions.
O código da função anterior é salvo no Cloud Functions como simplesmente helloWorld
. O código de configuração da política Extension dinâmicos usa esse nome, junto com os valores de região e ID do projeto correspondentes às especificações do ambiente do Cloud Functions em que a função está implantada.
<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>
A políticaAssignMessage a seguir captura o valor da resposta para fins de depuração.
<?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>
A resposta à solicitação acima seria assim:
Hello yourself!
O valor padrão de parsed
é true
. Este exemplo define parsed="false"
na tag <Output>
da política.
o que impede que a política analise a resposta JSON.
Para a maioria das situações ao usar a extensão do Cloud Functions, você define parsed="false"
.
Consulte <Saída> elemento correspondente para saber mais.
Se a função do Cloud retornar uma resposta JSON e você definir parsed="true"
, a resposta da extensão será uma referência de objeto. Para extrair a resposta da referência, use a seguinte sintaxe: {objectName}.{jsonKey}
. Exemplo:
function.response.message
Ações
invocar
Invoca uma função do Cloud.
Atualmente, essa extensão é compatível com a invocação de funções de gatilho HTTP.
Sintaxe
<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>
Exemplo
<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 solicitação
Parâmetro | Descrição | Tipo | Padrão | Obrigatório |
---|---|---|---|---|
região | A região do Google Cloud em que a função é implantada. | String. | Nenhum. | Sim. |
projectId | ID do projeto do GCP. | String. | Nenhum. | Sim. |
functionName | O nome da função HTTP a ser invocada. Esse é o nome usado quando você criou a função (não necessariamente um nome do código da função). | String. | Nenhum. | Sim. |
method | O método HTTP a ser usado ao invocar a função. | String. | GET |
Não. |
payload | O payload a ser enviado com a invocação da função. | JSON. | Nenhum. | Não. |
Resposta
O valor de resposta da função especificada, se houver.
Propriedades da resposta
Nenhum.
Referência de configuração
Use o seguinte ao configurar e implantar esta extensão para uso em proxies de API. Para ver as etapas para configurar uma extensão usando o console da Apigee, consulte Como adicionar e configurar uma extensão.
Propriedades de extensão comuns
As propriedades a seguir estão presentes para cada extensão.
Propriedade | Descrição | Padrão | Obrigatório |
---|---|---|---|
name |
Nome que será dado a esta configuração da extensão. | Nenhum | Sim |
packageName |
Nome do pacote de extensão fornecido pelo Apigee Edge. | Nenhum | Sim |
version |
Número da versão do pacote de extensão a partir do qual você está configurando uma extensão. | Nenhum | Sim |
configuration |
Valor de configuração específico da extensão que você está adicionando. Consulte Propriedades para este pacote de extensão. | Nenhum | Sim |
Propriedades deste pacote de extensões
Especifique valores para as seguintes propriedades de configuração específicas desta extensão.
Propriedade | Descrição | Padrão | Obrigatório |
---|---|---|---|
credenciais | Quando inserido no console do Apigee Edge, este é o conteúdo do arquivo de chave da conta de serviço. Quando enviado pela API de gerenciamento, é um valor codificado em base64 gerado a partir do arquivo de chave da conta de serviço. | Nenhum. | Sim. |