Управление ресурсами

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

Узнайте, как управлять ресурсами, в следующих разделах.

О ресурсах

Многие типы правил зависят от ресурсов. Ресурсы – это файлы, в которых реализован код или конфигурация, которые должны выполняться правилом при подключении к прокси API. В некоторых случаях, например с JavaScript и JavaCallout, правило просто определяет точку прикрепления в прокси-сервере API, в которой должен выполняться код. Правило JavaScript или JavaCallout – это указатель на ресурс.

В приведенном ниже примере кода JavaScript путь HTTP-запроса устанавливается равным значению переменной proxy.basepath.

request.headers["RequestPath"] = context.getVariable("proxy.basepath");

Типы ресурсов

В таблице ниже приведены типы ресурсов.

Тип ресурса Описание
JAR (java) Классы Java в файле JAR, на который ссылаются правила JavaCallout.
JavaScript (js) JavaScript, на который ссылаются правила JavaScript.
JavaScript (jsc) Скомпилированный код JavaScript, на который ссылаются правила JavaScript.
Hosted target (hosted) Файлы Node.js для развертывания в размещенных целевых объектах. Вы можете развернуть Node.js в качестве целевых приложений для внутреннего сервера Edge.
Node (node) Файлы Node.js, в том числе основной файл Node.js, связанные исходные файлы и зависимости модулей.
Python (py) Скрипты Python, на которые ссылаются правила PythonScript. Ресурсы должны быть реализованы на чистом Python (только на языке Python).
WSDL (wsdl) Файлы WSDL, на которые ссылаются правила SOAPMessageValidation.
XSD (xsd) Схемы XML, на которые ссылаются правила проверки сообщений SOAP.
XSL Transformations (xsl) Преобразования XSLT, на которые ссылаются правила XSLTransform.

Где хранятся ресурсы

Ресурсы могут храниться в одном из трех мест:

  • Ревизия прокси-сервера API. Ресурсы доступны только в тех ревизиях прокси-сервера API, в которые они включены. Например, вы можете включить ресурс JavaScript в версию 1 прокси-сервера API, а затем изменить реализацию, чтобы использовать скрипт Python в версии 2 прокси-сервера. Ревизия 1 имеет доступ только к ресурсу JavaScript, а ревизия 2 – только к ресурсу Python.
  • Среда. Если ресурсы хранятся в среде (например, test или prod), они доступны любому прокси-серверу API, развернутому в той же среде.
  • Организация. Если ресурсы хранятся в организации, они доступны любому прокси-серверу API, развернутому в любой среде.

Репозитории доступны по следующим URI, как описано в Resource files API и далее в разделе Управление ресурсами с помощью API:

  • Организация: /organizations/{org}/resourcefiles
  • Среда: /organizations/{org}/environments/{env}/resourcefiles
  • Прокси API: /organizations/{org}/apis/{api}/revisions/{rev}/resources

В таблице ниже перечислены методы, которые можно использовать для создания, обновления и удаления ресурсов в каждом репозитории.

Хранилище Создать Открыть Обновить Удалить
API Интерфейс API Интерфейс API Интерфейс API Интерфейс
Ревизия прокси-сервера API
Среда
Организация

Например, все файлы JavaScript, доступные в среде test, хранятся в следующем репозитории и доступны любому прокси-серверу API, работающему в среде test:

/organizations/{org}/environments/test/resourcefiles/jsc

Разрешение имен ресурсов

Edge преобразует названия ресурсов от наиболее конкретной области к наиболее общей. Имена ресурсов разрешаются "по цепочке" от уровня ревизии прокси-сервера API до уровня среды и уровня организации (только в Edge).

Предположим, что один и тот же ресурс заполнен в двух разных репозиториях: в ревизии прокси-сервера API и в среде prod.

Рассмотрим прокси-сервер API, настроенный со следующим правилом:

<Javascript name='PathSetterPolicy' timeLimit='200'>
    <ResourceURL>jsc://pathSetter.js</ResourceURL>
</Javascript>

Ссылка на правила не может явно указывать на репозиторий. Разрешается первый ресурс с наиболее детализированной областью действия, название которого совпадает с названием ресурса в правиле.

Таким образом, когда прокси-сервер API развертывается в среде prod, правило будет разрешаться в ресурс pathSetter.js, ограниченный средой.

При развертывании в среде test правило будет разрешено для ресурса, ограниченного версией прокси-сервера API, поскольку ресурс, ограниченный средой, находится в среде prod, а не в среде test.

Правила в отношении ресурсов Java

Вы можете добавить скомпилированные ресурсы Java в виде JAR-файлов, используя различные варианты команды curl, например -T, --data-binary или -F (не -d). Пример:

curl "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java" \
  -X POST \
  --data-binary @{jar_file} \
  -H "Content-Type: application/octet-stream" \
  -u email:password
curl -v "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java"
  -X POST \
  -H "Content-Type: application/octet-stream" \
  -T "{jar_file}" \
  -u email:password
curl -v "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java"
  -X POST \
  -H "Content-Type: application/multipart/form-data" \
  -F "file=@{jar_file}" \
  -u email:password

Статьи по теме

Правила использования ресурсов Node.js

При использовании скрипта Node.js в прокси-сервере API вы ссылаетесь на него с помощью элемента <ResourceURL> в конфигурации TargetEndpoint прокси-сервера API, как описано в разделе Как добавить Node.js в существующий прокси-сервер API. Пример:

<ScriptTarget>
    <ResourceURL>node://hello-world.js</ResourceURL>
</ScriptTarget>

Скрипт Node.js и все вспомогательные модули должны находиться в области действия версии прокси-сервера API (в каталоге /resources/node набора прокси). В редакторе прокси-сервера API это можно сделать, добавив ресурс Node.js в раздел Scripts (Скрипты). То же самое происходит при использовании API (import и update) для сохранения ресурса в области действия версии прокси-сервера API.

Как управлять ресурсами с помощью интерфейса

Управлять ресурсами, относящимися к ревизии прокси-сервера API, можно с помощью интерфейса, как описано в следующих разделах.

Как посмотреть ресурсы с помощью интерфейса

Чтобы посмотреть ресурсы, относящиеся к определенной версии прокси-сервера API, выполните следующие действия:

  1. Войдите в аккаунт на сайте apigee.com/edge.

  2. На панели навигации слева выберите Develop > API Proxies (Разработка > Прокси API).
  3. Выберите в списке прокси-сервер API, для которого хотите создать ресурс.
    Откроется редактор прокси-сервера API, и по умолчанию будет показана вкладка "Обзор".
  4. Нажмите на вкладку Разработка.
  5. При необходимости выберите версию в раскрывающемся списке Версия.

    Ресурсы, относящиеся к определенной версии прокси-сервера API, перечислены в разделе Ресурсы в представлении навигатора.

Как создать ресурс с помощью интерфейса

Чтобы создать ресурсы, относящиеся к определенной версии прокси-сервера API, с помощью интерфейса:

  1. Посмотреть ресурсы, относящиеся к определенной версии прокси-сервера API.
  2. Нажмите + в разделе "Ресурсы" в представлении навигатора, чтобы открыть диалоговое окно "Новый ресурс".
  3. Введите нужные данные:
    Поле Описание
    Источник Выберите, хотите ли вы создать новый файл или импортировать существующий.
    Тип файла Выберите тип ресурса в раскрывающемся списке.
    Имя файла Название файла. Расширение файла должно быть допустимым для выбранного типа файла.

Как изменить ресурс с помощью интерфейса

Чтобы обновить ресурс, относящийся к определенной версии прокси-сервера API, с помощью интерфейса:

  1. Посмотреть ресурсы, относящиеся к определенной версии прокси-сервера API.
  2. В представлении навигатора в разделе "Ресурсы" нажмите на ресурс, который хотите изменить.
    Примечание. Для JAR-файлов наведите указатель на ресурс, который вы хотите изменить, и нажмите .
  3. При необходимости обновите ресурс.
    Примечание. После загрузки нового JAR-файла нажмите Обновить.

Как удалить ресурс с помощью интерфейса

Чтобы удалить ресурс, относящийся к определенной версии прокси-сервера API, с помощью интерфейса:

  1. Посмотреть ресурсы, относящиеся к определенной версии прокси-сервера API.
  2. В представлении навигатора в разделе "Ресурсы" наведите указатель на ресурс, который хотите удалить, чтобы открыть меню действий.
  3. Нажмите .
  4. Нажмите Удалить, чтобы подтвердить действие.

Как управлять ресурсами с помощью API

Управлять ресурсами с помощью API можно так, как описано в следующих разделах.

Как создавать ресурсы с помощью API

Создайте ресурсы, относящиеся к ревизии прокси-сервера API, среде или организации (только в Edge), как описано в следующих разделах.

Как создать ресурсы, относящиеся к определенной версии прокси-сервера API, с помощью API

Создайте ресурс, ограниченный версией прокси-сервера API, с помощью API, отправив запрос POST к следующему ресурсу: https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles

В запросе укажите следующую информацию:

  • Задайте для параметра запроса name название ресурса.
  • Установите для параметра запроса type нужный тип ресурса.
  • Передайте содержимое файла ресурса как application/octet-stream или multipart/form-data.

В следующем примере создается файл JavaScript с именем pathSetter.js для версии 1 прокси-сервера API helloworld:

curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles?name=pathSetter.js&type=jsc
  -H "Content-type:application/octet-stream" \
  -d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
  -u email:password

В следующем примере показано, как загрузить ресурс в виде файла с локального компьютера. Важно использовать -F для загрузки двоичных файлов в curl, чтобы файлы JavaScript, относящиеся к среде или организации, были доступны для правил JavaScript.

curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles?name=pathSetter.js&type=jsc
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js \
  -u email:password

Ниже приведен пример ответа на любой из этих вызовов API.

{
  "name": "pathSetter.js",
  "type": "jsc"
}

Подробнее о том, как импортировать файл ресурса для версии прокси-сервера API…

Также можно использовать API для обновления ревизии прокси-сервера API, как показано ниже.

  1. Создайте файл ресурсов.
  2. Добавьте файл ресурса в пакет конфигурации прокси-сервера API.
  3. Загрузите набор, используя один из следующих API:

Как создавать ресурсы, ограниченные средой, с помощью API

Создайте ресурс JavaScript, область действия которого ограничена средой, с помощью API, отправив запрос POST к следующему ресурсу: /organizations/{org}/environments/{env}/resourcefiles

В запросе укажите следующую информацию:

  • Задайте для параметра запроса name название ресурса.
  • Установите для параметра запроса type нужный тип ресурса.
  • Передайте содержимое файла ресурса как application/octet-stream или multipart/form-data.

В следующем примере показано, как создать ресурс JavaScript, передав его содержимое в теле запроса.

curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc
  -H "Content-type:application/octet-stream" \
  -d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
  -u email:password

В следующем примере показано, как загрузить ресурс в виде файла с локального компьютера. Важно использовать -F для загрузки двоичных файлов в curl, чтобы файлы JavaScript, относящиеся к среде или организации, были доступны для правил JavaScript.

curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js \
  -u email:password

Ниже приведен пример ответа.

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

Как создавать ресурсы, ограниченные организацией, с помощью API

Чтобы создать ресурс, область действия которого ограничена организацией, с помощью API, отправьте запрос POST к следующему ресурсу: https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles

В запросе укажите следующую информацию:

  • Задайте для параметра запроса name название ресурса.
  • Установите для параметра запроса type тип файла ресурса (см. Типы ресурсов).
  • Передайте содержимое файла ресурса как application/octet-stream или multipart/form-data.

Подробнее о том, как импортировать файл ресурсов для организации…

Как посмотреть ресурсы с помощью API

В разделах ниже описано, как просматривать ресурсы с помощью API.

Как посмотреть все ресурсы с помощью API

С помощью API можно просматривать ресурсы, относящиеся к ревизии прокси-сервера API, среде или организации.

Например, чтобы посмотреть ресурсы, относящиеся к среде, с помощью API, отправьте запрос GET к следующему ресурсу: https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles

В следующем примере перечислены все ресурсы в среде test:

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/environments/test/resourcefiles/{type}" \
  -u email:password

Ниже приведен пример ответа.

{
  "resourceFile": [
{
  "name" : "pathSetter.js",
  "type" : "jsc"
}
  ]
}

Как посмотреть содержимое ресурса с помощью API

Посмотреть содержимое ресурса с помощью API можно так, как описано в следующих разделах.

С помощью API можно просматривать ресурсы, относящиеся к ревизии прокси-сервера API, среде или организации.

Например, чтобы посмотреть содержимое ресурса в среде с помощью API, отправьте запрос GET к следующему ресурсу: https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/name

В следующем примере перечислены ресурсы JavaScript из файла pathSetter.js в среде test:

curl -X GET https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js" \
  -H "Accept: application/json" \
  -u email:password

Ниже приведен пример ответа.

request.headers["RequestPath"] = context.getVariable("proxy.basepath");

Как обновлять ресурсы с помощью API

Обновите ресурсы, относящиеся к ревизии прокси-сервера API, среде или организации (только в Edge), как описано в следующих разделах.

Как обновить ресурсы, относящиеся к определенной версии прокси-сервера API, с помощью API

Чтобы обновить ресурс, относящийся к определенной версии прокси-сервера API, отправьте запрос PUT к следующему ресурсу: https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}

Передайте содержимое файла ресурса как application/octet-stream или multipart/form-data.

В следующем примере обновляется ресурс JavaScript с именем pathSetter для версии 1 прокси-сервера API helloworld:

curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js
  -H "Content-type:application/octet-stream" \
  -d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
  -u email:password

В следующем примере показано, как обновить ресурс в виде файла с локального компьютера. Важно использовать -F для загрузки двоичных файлов в curl, чтобы файлы JavaScript, относящиеся к среде или организации, были доступны для правил JavaScript.

curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js \
  -u email:password

Ниже приведен пример ответа на любой из этих вызовов API.

{
  "name": "pathSetter.js",
  "type": "jsc"
}

Подробнее о том, как импортировать файл ресурса для версии прокси-сервера API…

Также можно использовать API для обновления ревизии прокси-сервера API, как показано ниже.

  1. Скачайте пакет конфигурации прокси-сервера API, используя API экспорта прокси-сервера API со следующими параметрами:
    • Установите для параметра запроса format значение bundle.
    • Задайте для заголовка Accept значение application/zip.
  2. Обновите файл ресурсов в пакете конфигурации прокси-сервера API.
  3. Загрузите пакет с помощью Update API proxy revision API.

Как обновлять ресурсы, относящиеся к определенной среде, с помощью API

Чтобы обновить ресурс, относящийся к среде, с помощью API, отправьте запрос PUT к следующему ресурсу: /organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

Передайте содержимое файла ресурса как application/octet-stream или multipart/form-data.

В следующем примере показано, как обновить ресурс JavaScript, передав его содержимое в теле запроса.

curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
  -H "Content-type:application/octet-stream" \
  -d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
  -u email:password

В следующем примере показано, как обновить файл ресурса, используя файл с локального компьютера. Важно использовать -F для загрузки двоичных файлов в curl, чтобы файлы JavaScript, относящиеся к среде или организации, были доступны для правил JavaScript.

curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js \
  -u email:password

Ниже приведен пример ответа.

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

Как обновлять ресурсы, относящиеся к организации, с помощью API

Чтобы обновить ресурс, область действия которого ограничена организацией, с помощью API, отправьте запрос POST к следующему ресурсу: https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles/{type}/{name}

Передайте содержимое файла ресурса как application/octet-stream или multipart/form-data.

Подробнее о том, как импортировать файл ресурсов для организации…

Как удалить ресурсы с помощью API

Удалите ресурс, относящийся к ревизии прокси-сервера API, среде или организации (только в Edge), как описано в следующих разделах.

Как удалить ресурсы, относящиеся к определенной версии прокси-сервера API, с помощью API

Чтобы удалить ресурс, относящийся к определенной версии прокси-сервера API, с помощью API, отправьте запрос DELETE к следующему ресурсу: https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}

В следующем примере удаляется файл ресурса JavaScript pathSetter.js из версии 1 прокси-сервера API helloworld:

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js" \
  -u email:password
  

Ниже приведен пример ответа.

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

Также можно использовать API для обновления ревизии прокси-сервера API, как показано ниже.

  1. Скачайте пакет конфигурации прокси-сервера API, используя API экспорта прокси-сервера API со следующими параметрами:
    • Установите для параметра запроса format значение bundle.
    • Задайте для заголовка Accept значение application/zip.
  2. Удалите файл ресурса из пакета конфигурации прокси-сервера API.
  3. Загрузите пакет с помощью Update API proxy revision API.

Как удалить ресурс, ограниченный средой, с помощью API

Удалить ресурс, относящийся к определенной среде, можно с помощью API, как описано в следующих разделах.

Чтобы удалить ресурс, область действия которого ограничена средой, с помощью API, отправьте запрос DELETE к следующему ресурсу: https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

В следующем примере показано, как удалить файл ресурса JavaScript pathSetter.js из среды test:

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/environments/test/resourcefiles/jsc/pathSetter.js" \
  -u email:password

Ниже приведен пример ответа.

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

Удаление ресурсов, относящихся к организации, с помощью API (только Edge)

Чтобы удалить ресурс, область действия которого ограничена организацией, с помощью API, отправьте запрос DELETE к следующему ресурсу: https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles/{type}/{name}

Подробнее о том, как удалить файл ресурса из организации…

Как получить доступ к ресурсу

Способ доступа к ресурсу зависит от его типа. Подробную информацию можно найти в документации по правилам.

В примерах, приведенных в этом разделе, показано, как создать и настроить ресурс JavaScript с именем pathSetter.js, чтобы на него могли ссылаться правила типа JavaScript.

Чтобы прикрепить JavaScript к запросу PostFlow, создайте правило PathSetterPolicy.xml, которое ссылается на файл pathSetter.js:

<Javascript name='PathSetterPolicy' timeLimit='200'>
    <ResourceURL>jsc://pathSetter.js</ResourceURL>
</Javascript>

Затем укажите правило в конфигурации конечной точки:

<PostFlow>
  <Request>
    <Step><Name>PathSetterPolicy</Name></Step>
  </Request>
<PostFlow>

Подробнее о правилах в отношении JavaScript…