확장 프로그램 만들기 및 실행

이 문서에서는 Vertex AI 확장 프로그램 서비스의 주요 기능을 보여줍니다.

Google에서 제공하는 확장 프로그램을 가져오고 실행하는 방법을 알아보려면 다음을 참조하세요.

확장 프로그램 만들기 및 가져오기

이 문서에서는 확장 프로그램을 지원할 수 있는 API 서비스가 이미 실행 중이라고 가정합니다. 확장 프로그램을 만들려면 API 사양 파일에서 외부 API와의 인터페이스를 정의해야 합니다. Cloud Storage 버킷에 이 사양 파일을 업로드하거나 문자열로 변환해야 합니다. 그런 다음 확장 프로그램 매니페스트를 정의하고 사양 파일을 포함한 후 확장 프로그램 서비스에 등록 요청을 전송해야 합니다.

API 사양 파일 만들기

확장 프로그램의 API 엔드포인트를 정의하고 설명하는 파일을 통해 누구나 확장 프로그램을 만들 수 있습니다. API 엔드포인트는 공개 또는 비공개일 수 있으며 모든 클라우드 또는 온프레미스에서 호스팅됩니다.

API 사양 파일은 API 서비스의 인터페이스를 설명합니다. OpenAPI 3.0과 호환되는 YAML 형식의 API 사양 파일을 제공해야 합니다. 이 사양 파일은 다음을 정의해야 합니다.

  • 서버 객체. 이 객체는 API 서버 URL을 정의해야 합니다. Vertex AI 확장 프로그램 서비스는 여러 서버를 지원하지 않습니다.

    servers:
      - url: API_SERVICE_URL
    
  • 경로 객체입니다. 이 객체는 API 서비스에서 제공하는 다양한 작업과 각 작업에 해당하는 입력 매개변수를 설명해야 합니다. 각 작업에는 고유 식별자와 응답이 있어야 합니다.

    paths:
      ...
        get:
          operationId: API_SERVICE_OPERATION_ID
          ...
          parameters:
            - name: API_SERVICE_INPUT_VAR
              ...
          responses:
          ...
    
  • 구성요소 객체 이 객체는 선택사항입니다. 구성요소 객체를 사용하여 재사용 가능한 객체를 정의할 수 있습니다. 예를 들어 구성요소 객체를 사용하여 경로 객체에 정의된 객체 스키마의 정의를 제공할 수 있습니다. 구성요소 객체를 사용하여 API 서비스의 출력 매개변수를 설명할 수도 있습니다.

    components:
      schemas:
        Result:
          ...
          properties:
            API_SERVICE_OUTPUT_VAR:
            ...
    

OpenAPI에 대한 자세한 내용은 OpenAPI 사양을 참조하세요.

다음 예는 요청된 언어로 'hello'라고 말하는 API 서비스의 API 사양 파일입니다.

  openapi: "3.0.0"
  info:
    version: 1.0.0
    title: Hello Extension
    description: Learn to build Vertex AI extensions
  servers:
    - url: [API_SERVICE_URL]
  paths:
    /hello:
      get:
        operationId: say_hello
        description: Say hello in prompted language.
        parameters:
          - name: apiServicePrompt
            in: query
            description: Language
            required: true
            schema:
              type: string
        responses:
          '200':
            description: Successful operation.
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/Result"
  components:
    schemas:
      Result:
        description: Hello in the requested language.
        properties:
          apiServiceOutput:
            type: string

사양 파일 업로드

사양 파일을 Cloud Storage 버킷에 업로드하거나 문자열로 변환할 수 있습니다.

사양 파일을 Cloud Storage 버킷에 업로드하는 경우 Vertex AI Extension Service Agent 서비스 계정(service-PROJECT_NUMBER@gcp-sa-vertex-ex.iam.gserviceaccount.com)에 스토리지 객체 뷰어 역할을 부여합니다. 프로젝트의 버킷을 나열하는 방법은 버킷 나열을 참조하세요. Cloud Storage 버킷에 객체를 복사하는 방법은 객체 복사, 이름 바꾸기, 이동을 참조하세요.

확장 프로그램 가져오기 요청 정의

API 사양 파일을 만든 후 JSON 파일에서 확장 프로그램 가져오기 요청을 정의할 수 있습니다. 확장 프로그램 가져오기 요청에는 API 사양 파일(apiSpec) 및 인증 구성(authConfig)에 대한 참조가 포함되어야 합니다. 확장 프로그램이 작동하는 방식을 확인하기 위해 확장 프로그램을 대규모 언어 모델(LLM)에 연결하려면 선택적 toolUseExamples 파라미터를 포함하세요. 확장 프로그램만 실행하려면 toolUseExamples 매개변수를 포함하지 마세요.

확장 프로그램 가져오기 요청의 형식은 다음과 같습니다.

{
  "displayName":  "DISPLAY_NAME_HUMAN",
  "description": "DESCRIPTION_HUMAN",
  "manifest": {
    "name": "EXTENSION_NAME_LLM",
    "description": "DESCRIPTION_LLM",
    "apiSpec": { ... },
    "authConfig": { ... },
  }
  "toolUseExamples": [ ... ],
}
  • DISPLAY_NAME_HUMAN: 사용자에게 표시되는 확장 프로그램의 이름입니다.
  • DESCRIPTION_HUMAN: 사용자에게 표시되는 확장 프로그램에 대한 설명입니다.
  • EXTENSION_NAME_LLM: 추론을 위해 LLM에 사용되는 확장 프로그램의 이름입니다.
  • DESCRIPTION_LLM: 추론을 위해 LLM에 사용되는 확장 프로그램에 대한 설명입니다. 의미 있고 유용한 설명을 제공해야 합니다.

API 사양 파일 참조

확장 프로그램 가져오기 요청에는 API 사양 파일에 대한 참조가 포함되어야 합니다. 다음 두 가지 방법으로 사양 파일을 제공할 수 있습니다.

  • openApiGcsUri를 사용하여 YAML 파일의 Cloud Storage URI를 전달합니다.

    "apiSpec": {
      "openApiGcsUri": "gs://BUCKET_NAME/SPECIFICATION_FILE_NAME.yaml"
    },
    
    • BUCKET_NAME: 사양 파일을 저장하는 Cloud Storage 버킷의 이름입니다.
    • SPECIFICATION_FILE_NAME: API 사양 파일의 이름입니다.
  • openApiYaml을 사용하여 YAML 파일을 문자열로 전달합니다.

인증 구성

확장 프로그램은 공개(모든 사용자가 사용 가능) 또는 비공개(하나 이상의 조직 내에서 승인된 사용자만 사용 가능)일 수 있습니다.

확장 프로그램 가져오기 요청에는 인증 구성이 포함되어야 합니다. 다음 인증 방법 중에서 선택할 수 있습니다.

  • NO_AUTH: 인증이 필요하지 않음
  • API_KEY_AUTH: API 키 인증
  • HTTP_BASIC_AUTH: HTTP 기본 인증
  • OAUTH: OAuth 인증
  • OIDC_AUTH: OIDC 인증

인증 구성에 대한 자세한 내용은 인증 구성 지정을 참조하세요.

확장 프로그램의 작동 방식을 보여주는 예시

최상의 결과를 얻으려면 확장 프로그램 가져오기 요청에 확장 프로그램의 작동 방식을 보여주는 예시가 포함되어야 합니다. toolUseExamples 매개변수를 사용하여 이러한 예시를 제공합니다.

다음 코드는 단일 입력 매개변수와 단일 출력 파라미터가 있는 단일 예시의 toolUseExamples 형식을 보여줍니다. 이 예시에서 요청 파라미터와 응답 매개변수는 모두 string 유형입니다.

"toolUseExamples": [
  {
      "extensionOperation": {
        "operationId": "API_SERVICE_OPERATION_ID",
      },
      "displayName": "EXAMPLE_DISPLAY_NAME",
      "query": "EXAMPLE_QUERY",
      "requestParams": {
        "fields": [
          {
            "key": "API_SERVICE_INPUT_VAR",
            "value": {
              "string_value": "EXAMPLE_INPUT",
            }
          }
        ]
      },
      "responseParams": {
        "fields": [
          {
            "key": "API_SERVICE_OUTPUT_VAR",
            "value": {
              "string_value": "EXAMPLE_OUTPUT",
            },
          }
        ],
      },
      "responseSummary": "EXAMPLE_SUMMARY"
    }
],
  • query: 이 확장 프로그램을 활용할 수 있는 쿼리의 예시입니다. EXAMPLE_QUERY를 사용하여 쿼리 텍스트를 제공합니다.
  • extensionOperation: query에 답변하는 데 적합한 확장 프로그램 작업입니다. API_SERVICE_OPERATION_ID를 사용하여 API 사양 파일에 정의된 확장 프로그램 작업의 ID를 제공합니다.
  • displayName: 예시의 표시 이름입니다. EXAMPLE_DISPLAY_NAME를 사용하여 간단한 설명을 제공합니다.
  • requestParams: extensionOperation에 필요한 요청 파라미터 및 예시 값으로, 키-값 형식입니다. API_SERVICE_INPUT_VAR를 사용하여 API 사양 파일에 정의되어 있고 API_SERVICE_OPERATION_ID에 해당하는 입력 매개변수를 제공합니다. EXAMPLE_INPUT를 사용하여 EXAMPLE_QUERY에 해당하는 입력 값의 예시를 제공합니다.
  • responseParams: extensionOperation의 응답 매개변수 및 키-값 형식의 예시 값입니다. API_SERVICE_OUTPUT_VAR를 사용하여 API 사양 파일에 정의되어 있고 API 서비스와 일치하는 출력 매개변수를 제공합니다. EXAMPLE_OUTPUT를 사용하여 EXAMPLE_INPUT에 해당하는 출력 값의 예시를 제공합니다.
  • responseSummary: 애플리케이션이 query에 대한 응답으로 제공할 수 있는 요약의 예시입니다. EXAMPLE_SUMMARY를 사용하여 요약 텍스트를 제공합니다.

다음은 요청된 언어로 'hello'라고 말하는 API 서비스의 toolUseExamples 예시입니다.

"toolUseExamples": [
  {
      "extensionOperation": {
        "operationId": "say_hello",
      },
      "displayName": "Say hello in the requested language",
      "query": "Say hello in French",
      "requestParams": {
        "fields": [
          {
            "key": "apiServicePrompt",
            "value": {
              "string_value": "French",
            }
          }
        ]
      },
      "responseParams": {
        "fields": [
          {
            "key": "apiServiceOutput",
            "value": {
              "string_value": "bonjour",
            },
          }
        ],
      },
      "responseSummary": "Bonjour"
    }
],

인증 구성 지정

확장 프로그램 가져오기 요청을 정의할 때 인증 구성을 지정해야 합니다.

확장 프로그램에 인증이 필요하지 않으면 authType 변수를 NO_AUTH로 설정합니다.

"authConfig": {
  "authType": "NO_AUTH"
}

확장 프로그램에 인증이 필요한 경우 authType 변수에 해당 인증 유형을 설정하고 인증 구성을 제공해야 합니다. 다음 인증 방법 중에서 선택할 수 있습니다.

API 키 인증

API 키 인증을 지원하기 위해 Vertex AI는 보안 비밀 스토리지 및 액세스를 위한 SecretManager와 통합됩니다. Vertex AI 확장 프로그램 플랫폼은 보안 비밀 데이터를 직접 저장하지 않습니다. SecretManager 리소스의 수명 주기를 관리할 책임은 사용자에게 있습니다.

다음과 같이 authConfig를 지정합니다.

"authConfig": {
  "authType": "API_KEY_AUTH",
  "apiKeyConfig": {
    "name": "API_KEY_CONFIG_NAME",
    "apiKeySecret": "API_KEY_SECRET",
    "httpElementLocation": "HTTP_ELEMENT_LOCATION",
  },
}
  • API_KEY_CONFIG_NAME: API 키의 이름. 예를 들어 API 요청 https://example.com/act?api_key=<API KEY>에서 API_KEY_CONFIG_NAMEapi_key에 해당합니다.
  • API_KEY_SECRET: 키를 저장하는 SecretManager 보안 비밀 버전 리소스. 이 매개변수의 형식은 projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION입니다.
  • HTTP_ELEMENT_LOCATION: HTTP 요청에서 API 키의 위치. 가능한 값은 다음과 같습니다.

    • HTTP_IN_QUERY
    • HTTP_IN_HEADER
    • HTTP_IN_PATH
    • HTTP_IN_BODY
    • HTTP_IN_COOKIE

    자세한 내용은 매개변수 설명을 참고하세요.

HTTP 기본 인증

HTTP 기본 인증을 지원하기 위해 Vertex AI는 보안 비밀 스토리지 및 액세스를 위한 SecretManager와 통합됩니다. Vertex AI 확장 프로그램 플랫폼은 보안 비밀 데이터를 직접 저장하지 않습니다. SecretManager 리소스의 수명 주기를 직접 관리해야 합니다.

다음과 같이 authConfig를 지정합니다.

"authConfig": {
  "authType": "HTTP_BASIC_AUTH",
  "httpBasicAuthConfig": {
    "credentialSecret": "CREDENTIAL_SECRET"
  },
}
  • CREDENTIAL_SECRET: base64 인코딩 사용자 인증 정보를 저장하는 SecretManager 보안 비밀 버전 리소스 이 매개변수의 형식은 projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION입니다.

OAuth 인증

Vertex AI는 액세스 토큰과 서비스 계정이라는 두 가지 OAuth 인증 방법을 지원합니다.

액세스 토큰

다음과 같이 authConfig를 지정합니다.

"authConfig": {
  "authType": "OAUTH",
  "oauthConfig": {}
}

확장 프로그램을 가져올 때 oauthConfig 필드를 비워 둡니다. 등록된 확장 프로그램을 실행하기로 선택한 경우 실행 요청의 oauthConfig 필드에 액세스 토큰을 제공해야 합니다. 자세한 내용은 확장 프로그램 실행을 참조하세요.

서비스 계정

다음과 같이 authConfig를 지정합니다.

"authConfig": {
  "authType": "OAUTH",
  "oauthConfig": {"service_account": "SERVICE_ACCOUNT_NAME"}
}
  • SERVICE_ACCOUNT_NAME: Vertex AI는 이 서비스 계정을 사용하여 액세스 토큰을 생성합니다.

Vertex AI Extension Service AgentSERVICE_ACCOUNT_NAME에서 액세스 토큰을 가져올 수 있도록 하려면 다음 단계를 따르세요.

  1. IAM 페이지로 이동합니다.

    IAM으로 이동

  2. 서비스 계정 탭을 선택합니다.

  3. 서비스 계정을 클릭합니다. authConfigSERVICE_ACCOUNT_NAME 값은 서비스 계정의 이름과 일치해야 합니다.

  4. 권한 탭을 클릭합니다.

  5. 액세스 권한 부여를 클릭합니다.

  6. 주 구성원 추가 섹션의 새 주 구성원 필드에 service-PROJECT_NUMBER@gcp-sa-vertex-ex.iam.gserviceaccount.com를 입력합니다. 이 주 구성원은 Vertex AI Extension Service Agent 서비스 계정에 해당합니다.

  7. 역할 할당 섹션에서 Service Account Token Creator 역할을 찾아 선택합니다. 이 역할에는 iam.serviceAccounts.getAccessToken 권한이 포함됩니다.

  8. 저장 버튼을 클릭합니다.

OIDC 인증

Vertex AI는 ID 토큰과 서비스 계정이라는 두 가지 OIDC 인증 방법을 지원합니다.

ID 토큰

다음과 같이 authConfig를 지정합니다.

"authConfig": {
  "authType": "OIDC_AUTH",
  "oidcConfig": {}
}

확장 프로그램을 가져올 때 oidcConfig 필드를 비워 둡니다. 등록된 확장 프로그램을 실행하려면 실행 요청의 oidcConfig 필드에 ID 토큰을 제공해야 합니다. 자세한 내용은 확장 프로그램 실행을 참조하세요.

서비스 계정

다음과 같이 authConfig를 지정합니다.

"authConfig": {
  "authType": "OIDC_AUTH",
  "oidcConfig": {"service_account": "SERVICE_ACCOUNT_NAME"}
}
  • SERVICE_ACCOUNT_NAME: Vertex AI는 이 서비스 계정을 사용하여 OpenID Connect(OIDC) 토큰을 생성합니다. Vertex AI는 API 사양 파일에 정의된 대로 토큰의 잠재고객을 API_SERVICE_URL로 설정합니다.

Vertex AI Extension Service AgentSERVICE_ACCOUNT_NAME에서 액세스 토큰을 가져올 수 있도록 하려면 다음 단계를 따르세요.

  1. IAM 페이지로 이동합니다.

    IAM으로 이동

  2. 서비스 계정 탭을 선택합니다.

  3. 서비스 계정을 클릭합니다. authConfigSERVICE_ACCOUNT_NAME 값은 서비스 계정의 이름과 일치해야 합니다.

  4. 권한 탭을 클릭합니다.

  5. 액세스 권한 부여를 클릭합니다.

  6. 주 구성원 추가 섹션의 새 주 구성원 필드에 service-PROJECT_NUMBER@gcp-sa-vertex-ex.iam.gserviceaccount.com를 입력합니다. 이 주 구성원은 Vertex AI Extension Service Agent 서비스 계정에 해당합니다.

  7. 역할 할당 섹션에서 Service Account Token Creator 역할을 찾아 선택합니다. 이 역할에는 iam.serviceAccounts.getOpenIdToken 권한이 포함됩니다.

  8. 저장 버튼을 클릭합니다.

Vertex AI로 확장 프로그램 가져오기

확장 프로그램 가져오기 요청을 정의한 후 Vertex AI로 확장 프로그램을 가져올 수 있습니다.

  1. 다음 셸 변수를 설정합니다.

    ENDPOINT="LOCATION-aiplatform.googleapis.com"
    URL="https://${ENDPOINT}/v1beta1/projects/PROJECT_ID/locations/LOCATION"
    
    • PROJECT_ID: 내 프로젝트입니다.
    • LOCATION: 선택한 리전입니다. 확실하지 않으면 us-central1을 선택합니다.
  2. 다음 curl 명령어를 실행하여 가져오기 요청을 제출합니다.

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" \
      -d @IMPORT_REQUEST.json "${URL}/extensions:import"
    

    응답의 형식은 다음과 같습니다.

    {
      "name": "projects/[PROJECT_NUMBER]/locations/[LOCATION]/extensions/[EXTENSION_ID]/operations/[IMPORT_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.ImportExtensionOperationMetadata",
        "genericMetadata": {
          "createTime": "[CREATE_TIME]",
          "updateTime": "[UPDATE_TIME]"
        }
      }
    }
    
  3. 가져오기 요청의 출력을 기반으로 셸 변수를 설정합니다.

    EXTENSION_ID=EXTENSION_ID
    IMPORT_OPERATION_ID=IMPORT_OPERATION_ID
    
  4. 가져오기 상태를 확인하려면 다음 curl 명령어를 실행합니다.

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" \
    "${URL}/operations/${IMPORT_OPERATION_ID}"
    

확장 프로그램 관리

등록된 모든 확장 프로그램을 나열하려면 다음 curl 명령어를 실행합니다.

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
"${URL}/extensions"

확장 프로그램을 가져오려면 다음 curl 명령어를 실행합니다.

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
"${URL}/extensions/${EXTENSION_ID}"

확장 프로그램의 displayName, description 또는 toolUseExamples를 업데이트할 수 있습니다. 확장 프로그램을 업데이트할 때 toolUseExamples를 지정하면 업데이트가 예시를 대체합니다. 예를 들어 예시 ab가 있고 확장 프로그램을 예시 c로 업데이트하면 업데이트된 확장 프로그램에는 예시 c만 포함됩니다. 확장 프로그램 설명을 업데이트하려면 다음 curl 명령어를 실행합니다.

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
${URL}/extensions/${EXTENSION_ID}?update_mask="description" \
-d '{
  "description": "A nice tool.",
}'

확장 프로그램을 삭제하려면 다음 curl 명령어를 실행합니다.

curl \
 -X DELETE \
 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
 -H "Content-Type: application/json" \
${URL}/extensions/${EXTENSION_ID}

확장 프로그램 실행

확장 프로그램을 실행하는 방법에는 두 가지가 있습니다.

  • execute: 이 모드는 API 실행에만 중점을 둡니다. 확장 프로그램은 지정된 API 작업을 트리거하고 추가 처리 없이 원시 결과를 반환합니다.

  • query: 이 모드는 지능형 상호작용을 위해 설계되었습니다. 이 과정은 여러 단계로 이루어집니다.

    • 모델 요청: 쿼리와 확장 프로그램의 스키마가 각각 프롬프트와 FunctionDeclaration로 Gemini에 제공됩니다.
    • API 실행: 모델에서 도구 사용이 필요하다고 판단하면 확장 프로그램은 모델을 대신하여 API 작업을 자동으로 호출하고 결과를 가져옵니다.
    • 모델 통합: API 결과가 모델에 제공되고 모델은 이를 처리하여 문맥과 관련된 최종 응답을 생성합니다. 본질적으로 query는 API를 사용하여 목표를 달성하는 단일 도구 에이전트 역할을 합니다.

이 섹션에서는 확장 프로그램을 execute하는 방법을 설명합니다.

확장 프로그램에서 OAuth 인증 및 액세스 토큰을 사용하는 경우 OAuth 인증 및 액세스 토큰으로 확장 프로그램 실행을 참조하세요.

확장 프로그램에서 OIDC 인증 및 ID 토큰을 사용하는 경우 OIDC 인증 및 ID 토큰으로 확장 프로그램 실행을 참조하세요.

또는 다음 단계에 따라 실행할 수 있습니다.

  1. 다음 콘텐츠로 execute-extension.json라는 파일을 만듭니다.

    {
      "operation_id": "API_SERVICE_OPERATION_ID",
      "operation_params": {
        "API_SERVICE_INPUT_VAR": "API_SERVICE_INPUT_VALUE"
      }
    }
    
    • API_SERVICE_OPERATION_ID: 실행할 API 서비스 작업의 ID입니다. API 서비스 작업은 API 사양 파일에 정의되어 있습니다.
    • API_SERVICE_INPUT_VAR: API_SERVICE_OPERATION_ID에 해당하며 API 사양 파일에 정의된 입력 변수입니다.
    • API_SERVICE_INPUT_VALUE: 확장 프로그램의 입력 값입니다.
  2. 다음 curl 명령어를 실행합니다.

    curl \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" -d @execute-extension.json \
    "${URL}/extensions/${EXTENSION_ID}:execute"
    

    응답의 형식은 다음과 같습니다.

    {
      "output": {
        "content": "{\"API_SERVICE_OUTPUT_VAR\": \"API_SERVICE_OUTPUT_VALUE\"}"
      }
    }
    
    • API_SERVICE_OUTPUT_VAR: API 사양 파일에 정의되어 있고 API 서비스와 일치하는 출력 매개변수입니다.
    • API_SERVICE_OUTPUT_VALUE: 응답 객체의 직렬화인 문자열 값입니다. API 사양 파일에서 JSON 응답 스키마를 정의하는 경우 이 출력 문자열을 직접 JSON으로 파싱해야 합니다.

OAuth 인증 및 액세스 토큰으로 확장 프로그램 실행

확장 프로그램에서 OAuth 인증 및 액세스 토큰을 사용하는 경우 다음 단계에 따라 실행할 수 있습니다.

  1. 다음 콘텐츠로 execute-extension.json라는 파일을 만듭니다.

    {
      "operation_id": "API_SERVICE_OPERATION_ID",
      "operation_params": {...},
      "runtime_auth_config": {
        "authType": "OAUTH",
        "oauth_config": {"access_token": "'$(gcloud auth print-access-token)'"}
      }
    }
    
    • API_SERVICE_OPERATION_ID: 실행할 API 서비스 작업의 ID입니다. API 서비스 작업은 API 사양 파일에 정의되어 있습니다.
  2. 다음 curl 명령어를 실행합니다.

    curl \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" -d @execute-extension.json \
    "${URL}/extensions/${EXTENSION_ID}:execute"
    

OIDC 인증 및 ID 토큰으로 확장 프로그램 실행

확장 프로그램에서 OIDC 인증 및 ID 토큰을 사용하는 경우 다음 단계에 따라 실행할 수 있습니다.

  1. 다음 콘텐츠로 execute-extension.json라는 파일을 만듭니다.

    {
      "operation_id": "API_SERVICE_OPERATION_ID",
      "operation_params": {...},
      "runtime_auth_config": {
        "authType": "OIDC_AUTH",
        "oidc_config": {"id_token": "$(gcloud auth print-identity-token)"}
      }
    }
    
    • API_SERVICE_OPERATION_ID: 실행할 API 서비스 작업의 ID입니다. API 서비스 작업은 API 사양 파일에 정의되어 있습니다.
  2. 다음 curl 명령어를 실행합니다.

    curl \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" -d @execute-extension.json \
    "${URL}/extensions/${EXTENSION_ID}:execute"
    

다음 단계