Google Cloud Functions 확장 프로그램

<ph type="x-smartling-placeholder"></ph> 현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서.
정보

<ph type="x-smartling-placeholder">

버전 1.0.5

Google Cloud 프로젝트를 통해 배포된 Cloud Functions를 호출합니다.

현재 이 확장 프로그램은 HTTP 트리거 함수 호출을 지원합니다.

기본 요건

이 콘텐츠는 이 확장 프로그램을 구성하고 사용하기 위한 참조를 제공합니다. 확장 문구 정책을 사용하여 API 프록시의 확장 프로그램을 사용하려면 먼저 다음 요건을 충족해야 합니다.

  1. Cloud Functions API를 사용 설정합니다.

  2. Cloud Functions에서 Google Cloud 프로젝트에 대한 함수를 정의하고 배포합니다.

  3. 함수에 필요한 액세스 수준을 위해 IAM을 통해 사용자 액세스 권한을 부여합니다. 예를 들어 확장 프로그램을 구성하는 데 사용하는 서비스 계정으로만 함수에 대한 액세스를 제한할 수 있습니다.

  4. GCP 콘솔을 사용하여 서비스 계정의 키를 생성합니다.

  5. 구성 참조를 사용하여 확장 프로그램을 추가 및 구성할 때 결과 키 JSON 파일의 콘텐츠를 사용합니다.

Cloud Functions 정보

Google Cloud Functions를 사용하면 Google Cloud에서 함수를 만들고 배포한 다음 다른 코드에서 해당 함수를 호출할 수 있습니다. Cloud Functions에 대한 소개는 빠른 시작 중 하나를 참조하세요.

샘플

다음 예는 Extension콜아웃 정책을 사용하여 Cloud Functions에서 함수를 호출하는 방법을 보여줍니다.

Node.js 함수 호출

다음 예에는 Google Cloud Functions 확장 프로그램을 호출하는 Extension콜아웃 정책이 나와 있습니다. 확장 프로그램은 기본 'hello world'를 호출합니다. 함수와 함께 Cloud Functions API를 사용 설정할 수 있습니다.

다음 Node.js JavaScript가 GCP 계정의 Cloud Functions에 배포되어 있습니다. 요청에 메시지 속성이 포함되어 있으면 코드에서 메시지 속성을 반환합니다. 그렇지 않으면 'Hello World!'를 반환합니다. 반환합니다.

/**
 * 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);
};

이 예에는 Cloud Functions에서 코드를 호출할 수 있도록 인증하고 승인을 받는 데 필요한 사용자 인증 정보로 구성된 Google Cloud Functions 확장 프로그램이 포함되어 있습니다.

위의 함수 코드는 Cloud Functions에 helloWorld로 저장됩니다. 다음 Extension콜아웃 정책 구성 코드는 이 이름과 함께 함수가 배포된 Cloud Functions 환경의 세부정보와 일치하는 리전 및 프로젝트 ID 값을 사용합니다.

<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>

다음 AssignMessage 정책은 디버깅을 위해 응답 값을 캡처합니다.

<?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>

위 요청에 대한 응답은 다음과 같습니다.

Hello yourself!

parsed의 기본값은 true입니다. 이 예시에서는 정책의 <Output> 태그에 parsed="false"를 설정합니다. 이로 인해 정책이 JSON 응답을 파싱하지 못하게 됩니다. Cloud Functions 확장 프로그램을 사용하는 대부분의 상황에서는 parsed="false"를 설정합니다. <Output>을 참조하세요. 요소를 참조하세요.

Cloud 함수가 JSON 응답을 반환하고 parsed="true"를 설정하면 확장 프로그램의 응답은 객체 참조입니다. 참조에서 응답을 추출하려면 {objectName}.{jsonKey} 구문을 사용합니다. 예를 들면 다음과 같습니다.

function.response.message

작업

<ph type="x-smartling-placeholder">

호출하기

Cloud 함수를 호출합니다.

현재 이 확장 프로그램은 HTTP 트리거 함수 호출을 지원합니다.

구문

<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>

<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>

요청 매개변수

매개변수 설명 유형 기본값 필수
지역 함수가 배포된 Google Cloud 리전입니다. 문자열. 없음 예.
projectId GCP 프로젝트 ID입니다. 문자열. 없음 예.
functionName 호출할 HTTP 함수의 이름입니다. 이 이름은 함수를 만들 때 사용한 이름입니다 (반드시 함수 코드의 이름일 필요는 없음). 문자열. 없음 예.
method 함수를 호출할 때 사용할 HTTP 메서드입니다. 문자열. GET 아니요.
payload 함수 호출과 함께 전송할 페이로드. JSON입니다. 없음 아니요.

응답

지정된 함수의 응답 값입니다(있는 경우).

응답 속성

없음

구성 참조

API 프록시에서 사용하기 위해 이 확장 프로그램을 구성하고 배포할 때 다음을 사용하세요. Apigee 콘솔을 사용하여 확장 프로그램을 구성하는 단계는 확장 프로그램 추가 및 구성을 참조하세요.

일반적인 확장 속성

모든 확장 프로그램에는 다음과 같은 속성이 있습니다.

속성 설명 기본 필수
name 확장 프로그램의 구성에 지정할 이름입니다. 없음 지원됨
packageName Apigee Edge에서 제공하는 확장 프로그램 패키지 이름입니다. 없음 지원됨
version 확장 프로그램을 구성하는 확장 프로그램 패키지의 버전 번호입니다. 없음 지원됨
configuration 추가하는 확장 프로그램 관련 구성 값입니다. 이 확장 프로그램 속성의 속성을 참조하세요. 없음 지원됨

이 확장 프로그램의 속성

이 확장 프로그램과 관련된 다음 구성 속성의 값을 지정합니다.

속성 설명 기본값 필수
사용자 인증 정보 Apigee Edge 콘솔에 입력하면 서비스 계정 키 파일의 콘텐츠입니다. 관리 API를 통해 전송되는 경우 서비스 계정 키 파일에서 생성되는 base64 인코딩 값입니다. 없음 예.