Diese Seite gilt für Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen
Auf dieser Seite wird das YAML-Format für Apigee-Funktionsvorlagen beschrieben: die Dokumenttypen template, feature und proxy sowie alle ihre Felder. Eine konzeptionelle Einführung finden Sie unter Proxy mit YAML konfigurieren. Eine Anleitung finden Sie unter API-Proxy aus einer YAML-Vorlage erstellen.
Konventionen
- Feldnamen werden in CamelCase geschrieben. Beispiel:
schemaVersion,basePath,displayName,faultRules,defaultFaultRule,httpTargetConnection. - Das Schema ist streng. Unbekannte Felder führen beim Importieren der Datei zu einem Fehler.
- Pflichtfelder: Beim Parsen einer Datei werden nur
gatewayundschemaVersionvalidiert. Andere Felder, die in den folgenden Tabellen mit Ja gekennzeichnet sind, sind in der Praxis erforderlich, um einen funktionierenden API-Proxy zu erstellen.
Häufig verwendete Felder der obersten Ebene
Jedes template-, feature- und proxy-Dokument beginnt mit den folgenden Feldern.
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
gateway |
Das Zielgateway. Muss apigee lauten. |
– | Ja |
schemaVersion |
Die Schemaversion des Dokuments. Muss 1.0.0 lauten. |
– | Ja |
name |
Der Name des Dokuments. Bei einer Vorlage oder einem Proxy ist dies der API-Proxy-Name, der in das Bundle geschrieben wird. | – | Ja |
type |
Der Dokumenttyp: template, feature oder proxy. |
– | Ja |
description |
Eine menschenlesbare Beschreibung. | – | Nein |
priority |
Eine Ganzzahl, die die Reihenfolge steuert, in der Funktionen während der Kompilierung angewendet werden. Niedrigere Zahlen werden zuerst angewendet. | 100 |
Nein |
Dokumenttyp: Vorlage
Eine Vorlage ist der Einstiegspunkt, den Sie importieren. Sie setzt sich aus Funktionen zusammen und definiert die Endpunkte und Routen des Proxys. Eine Vorlage enthält keine Richtlinien oder Ressourcen. Diese stammen aus den Funktionen, auf die sie verweist.
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
features |
Eine Liste der Namen von Feature-Dateien, die in den Proxy aufgenommen werden sollen. Jeder Name muss in eine Datei im selben Verzeichnis wie die Vorlage aufgelöst werden. | [] |
Nein |
parameters |
Eine Liste von Parameter-Werten, die Standardwerte für die Funktionen liefern. | [] |
Nein |
endpoints |
Eine Liste von Endpunkten, die Basispfade und Routen definieren. | [] |
Nein |
targets |
Eine Liste von Zielen, die Backend-Verbindungen definieren. | [] |
Nein |
Dokumenttyp: Funktion
Ein Feature ist eine wiederverwendbare Konfigurationseinheit, die Sie in eine Vorlage einfügen. Ein Feature enthält Richtlinien und Ressourcen und kann Abläufe, Endpunkte und Ziele zum kompilierten Proxy beitragen. Zusätzlich zu den gemeinsamen Feldern der obersten Ebene hat ein Feature die folgenden Felder.
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
displayName |
Ein für Menschen lesbarer Anzeigename. | – | Nein |
uid |
Eine eindeutige Kennung, die zum Namespace der Richtlinien und Ressourcen des Features verwendet wird. Wenn kein Wert angegeben ist, wird name verwendet. |
– | Nein |
documentation |
Erweiterte Dokumentation für die Funktion. | – | Nein |
categories |
Eine Liste mit Kategorielabels mit freiem Format. | [] |
Nein |
parameters |
Eine Liste der Parameter, die vom Feature definiert werden. | [] |
Nein |
defaultEndpoint |
Ein Proxy-Endpunkt, dessen Abläufe und Standardfehlerregel in jeden Endpunkt des kompilierten Proxys eingefügt werden. Verwenden Sie diese Option, um die Richtlinien eines Features an den Anfrage- oder Antwortablauf anzuhängen. | – | Nein |
defaultTarget |
Ein Proxy-Ziel, das als Standard-Backend-Verbindung verwendet wird. | – | Nein |
endpoints |
Eine Liste der Proxy-Endpunkte, die dem Proxy hinzugefügt werden sollen. Ein Endpunkt mit demselben Namen wie ein vorhandener Endpunkt ersetzt diesen. | [] |
Nein |
targets |
Eine Liste der Proxy-Ziele, die dem Proxy hinzugefügt werden sollen. Ein Ziel mit demselben Namen wie ein vorhandenes Ziel ersetzt dieses. | [] |
Nein |
policies |
Eine Liste der Richtlinien, die das Feature bietet. Richtliniennamen werden während der Kompilierung automatisch mit dem uid (oder name) des Features versehen. |
[] |
Nein |
resources |
Eine Liste der Ressourcen, die das Feature bereitstellt, z. B. JavaScript- oder Eigenschaftendateien. | [] |
Nein |
Dokumenttyp: Proxy
Ein Proxy ist das vollständig aufgelöste Dokument, das von der CLI erstellt wird, wenn sie eine Vorlage mit ihren Funktionen kompiliert. Normalerweise erstellen Sie diesen Typ nicht direkt. Er wird hier beschrieben, weil er die Form des API-Proxy-Bundles ist.
Ein Proxy hat dieselben Felder wie eine Funktion, verwendet jedoch endpoints und targets (nicht defaultEndpoint oder defaultTarget) und stellt immer einen vollständigen, bereitstellbaren Proxy dar. type ist proxy.
Verschachtelte Objekte
Parameter
Ein Parameter liefert einen Wert für ein Feature. Der Wert eines Parameters wird in seinen default aufgelöst.
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
name |
Der Parametername. Wird in Funktionsinhalten als
{name} referenziert. |
– | Ja |
displayName |
Ein für Menschen lesbarer Name. | – | Nein |
description |
Eine Beschreibung des Parameters. | – | Nein |
default |
Der Standardwert. Wird in den Strings der Funktion durch {name} ersetzt. |
– | Nein |
examples |
Eine Liste mit Beispielwerten. | [] |
Nein |
maps |
Eine Zuordnung von Wert-Ersetzungen. Wenn der aufgelöste Wert ein Schlüssel in der Zuordnung ist, wird er durch den zugeordneten Wert ersetzt. | – | Nein |
paths |
Eine Liste von JSONPath-Ausdrücken. In diesem Release nicht unterstützt: Die Verwendung führt zu einem Fehler. | – | Nein |
endpoint
Wird in der endpoints-Liste einer Vorlage verwendet.
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
name |
Der Name des Endpunkts. | – | Ja |
basePath |
Der Basispfad, den Clients zum Aufrufen des Proxys verwenden, z. B. /v1/gemini. |
– | Nein |
routes |
Eine Liste von Routen, die Anfragen Zielen zuordnen. | [] |
Nein |
proxyEndpoint
Wird in der defaultEndpoint und endpoints einer Funktion und in einem kompilierten Proxy verwendet. Erweitert endpoint um die Ablaufverarbeitung.
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
flows |
Eine Liste von Abläufen. Abläufe mit dem Namen PreFlow oder PostFlow werden dem entsprechenden Apigee-Ablauf zugeordnet. Alle anderen Namen werden im Container für generische Abläufe platziert. |
[] |
Nein |
postClientFlow |
Ein einzelner Ablauf, der ausgeführt wird, nachdem die Antwort an den Client gesendet wurde. | – | Nein |
faultRules |
Eine Liste der Abläufe, die als Fehlerregeln verwendet werden. | [] |
Nein |
defaultFaultRule |
Eine Fehlerregel, die ausgeführt wird, wenn keine andere Fehlerregel übereinstimmt. | – | Nein |
Route
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
name |
Der Routenname. | – | Ja |
target |
Der Name des Zielendpunkts, an den weitergeleitet werden soll. | – | Nein |
condition |
Eine Bedingung, die erfüllt sein muss, damit diese Route angewendet wird. | – | Nein |
Arbeitsfluss
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
name |
Der Name des Ablaufs. Verwenden Sie PreFlow oder PostFlow für die Standardanfrage-/Antwortabläufe. |
– | Ja |
mode |
Request oder Response. Legt fest, ob die Schritte für die Anfrage oder die Antwort ausgeführt werden. |
Request |
Nein |
condition |
Eine Bedingung, die erfüllt sein muss, damit der Ablauf ausgeführt wird. | – | Nein |
steps |
Eine sortierte Liste von Schritten (Richtlinienaufrufen). | [] |
Nein |
Schritt
In einem Schritt wird eine Richtlinie in einem Ablauf ausgeführt.
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
name |
Der Name der auszuführenden Richtlinie. Verwenden Sie innerhalb eines Features den lokalen Namen der Richtlinie. Der Compiler schreibt ihn in den Namespace-Namen um. | – | Ja |
condition |
Eine Bedingung, die erfüllt sein muss, damit der Schritt ausgeführt wird. | – | Nein |
faultRule
Erweitert den Ablauf um ein zusätzliches Feld.
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
alwaysEnforce |
Wenn true, wird die Standardfehlerregel immer erzwungen. |
false |
Nein |
Ziel
Wird in der targets-Liste einer Vorlage verwendet.
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
name |
Der Name des Ziels. Wird von der target einer Route referenziert. |
– | Ja |
url |
Die Back-End-URL. | – | Nein |
auth |
Das Authentifizierungsschema für ein Google Cloud-Backend, z. B. GoogleAccessToken oder GoogleIDToken. |
– | Nein |
scopes |
Eine Liste der anzufordernden OAuth-Bereiche. Gilt, wenn auth festgelegt ist. |
[] |
Nein |
aud |
Die Zielgruppe des Tokens. Gilt, wenn auth festgelegt ist. |
– | Nein |
proxyTarget
Wird in den defaultTarget- und targets-Attributen eines Features und in einem kompilierten Proxy verwendet. Erweitert target um die Verarbeitung von Flows und Überschreibungen für Rohverbindungen.
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
flows |
Eine Liste der Abläufe, die für die Zielanfrage oder -antwort ausgeführt werden. | [] |
Nein |
faultRules |
Eine Liste der Abläufe, die als Fehlerregeln verwendet werden. | [] |
Nein |
defaultFaultRule |
Eine Fehlerregel. | – | Nein |
httpTargetConnection |
Eine Rohdarstellung des HTTPTargetConnection-Elements für die erweiterte Konfiguration. Wenn dieser Wert festgelegt ist, hat er Vorrang vor url, auth, scopes und aud. |
– | Nein |
localTargetConnection |
Eine Rohdarstellung eines LocalTargetConnection-Elements.
Wenn festgelegt, hat sie Vorrang vor einer HTTP-Verbindung. |
– | Nein |
Richtlinie
Eine Richtlinie wird in einer Funktion definiert. Die Konfiguration wird unter content mit der in Konvention für Richtlinieninhalte beschriebenen Attribut-/Textkonvention geschrieben.
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
name |
Der Richtlinienname. | – | Ja |
type |
Der Apigee-Richtlinientyp, z. B. VerifyAPIKey, SpikeArrest oder Javascript. Muss mit dem einzelnen Schlüssel der obersten Ebene in content übereinstimmen. |
– | Ja |
content |
Ein Wörterbuch mit einem Schlüssel, der type entspricht. Der verschachtelte Wert beschreibt das XML der Richtlinie gemäß der Konvention unten. |
{} |
Ja |
Konvention für Richtlinieninhalte
Apigee-Richtlinien sind XML. In YAML stellen Sie XML in content mit diesen Regeln dar:
- Das
content-Wörterbuch hat genau einen Schlüssel, der mit demtypeder Richtlinie übereinstimmen muss. - Elementattribute werden unter einem
metadata-Schlüssel angegeben. - Elementtext wird unter einem
_text-Schlüssel angegeben. Aus<Foo bar="baz">qux</Foo>wird beispielsweiseFoo: {metadata: {bar: "baz"}, _text: "qux"}. Wenn ein Element nur Text und keine Attribute enthält, können Sie den Text direkt als Wert schreiben. - Untergeordnete Elemente sind unter ihrem Tag-Namen verschachtelt. Wiederholte Tags werden zu einer Liste.
Beispiel:
policies: - name: VA-VerifyAPIKey type: VerifyAPIKey content: VerifyAPIKey: metadata: name: VA-VerifyAPIKey enabled: "true" continueOnError: "false" DisplayName: VA-VerifyAPIKey APIKey: metadata: ref: request.header.x-api-key
wird in diesen Richtlinien-XML-Code kompiliert:
<VerifyAPIKey continueOnError="false" enabled="true" name="verify-api-key-VA-VerifyAPIKey"> <APIKey ref="request.header.x-api-key"></APIKey> <DisplayName>VA-VerifyAPIKey</DisplayName> </VerifyAPIKey>
Ressource
Eine Ressource ist eine Datei, die von einem Modul zum Bundle beigetragen wird, z. B. eine JavaScript-Datei oder eine Properties-Datei.
| Name | Beschreibung | Standard | Erforderlich/Optional? |
|---|---|---|---|
name |
Der Dateiname, z. B. hello-world.js. Ressourcennamen haben bei der Kompilierung das Präfix uid (oder name) des Features. |
– | Ja |
type |
Der Ressourcentyp, der das Unterverzeichnis im Bundle bestimmt, z. B. jsc (JavaScript) oder properties. |
– | Ja |
content |
Der Rohinhalt der Datei. | – | Nein |
In diesem Release nicht unterstützte Felder
pathsfür einen Parameter (JSONPath). Die Verwendung führt dazu, dass die Kompilierung fehlschlägt.testsin einem beliebigen Dokument. Das Feld wird akzeptiert, aber ignoriert und ist nicht im generierten Bundle enthalten.
Limits
Das generierte API-Proxy-Bundle darf unkomprimiert nicht größer als 10 MiB sein und darf nicht mehr als 256 Dateien enthalten.