forked from docs/doc-exports
Reviewed-by: Eotvos, Oliver <oliver.eotvos@t-systems.com> Co-authored-by: Chen, Junjie <chenjunjie@huawei.com> Co-committed-by: Chen, Junjie <chenjunjie@huawei.com>
96 lines
17 KiB
HTML
96 lines
17 KiB
HTML
<a name="functiongraph_01_0204"></a><a name="functiongraph_01_0204"></a>
|
|
|
|
<h1 class="topictitle1">Using an APIG (Dedicated) Trigger</h1>
|
|
<div id="body32001227"><div class="section" id="functiongraph_01_0204__en-us_topic_0000001251588440_section76949209512"><h4 class="sectiontitle">Prerequisites</h4><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p4612947505">You have created an API group, for example, <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b1985122117203">APIGroup_test</strong>. For details, see <a href="https://docs.otc.t-systems.com/api-gateway/umn/api_opening/api_group_management/creating_an_api_group.html#apig-en-ug-180307015" target="_blank" rel="noopener noreferrer">Creating an API Group</a>.</p>
|
|
</div>
|
|
<div class="section" id="functiongraph_01_0204__en-us_topic_0000001251588440_section0341823105810"><h4 class="sectiontitle">Creating an APIG Trigger</h4><ol id="functiongraph_01_0204__en-us_topic_0000001251588440_ol43222141212827"><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li155710337386"><span>Log in to the FunctionGraph console. In the navigation pane, choose <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b19643653115812">Functions</strong> > <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b36431553165810">Function List</strong>.</span></li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li1140195018364"><span>On the <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b27341718192913">Function List</strong> page, click <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b374010185292">Create Function</strong> in the upper right corner.</span></li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li477419293572"><span>Set the following parameters:</span><p><ul id="functiongraph_01_0204__en-us_topic_0000001251588440_ul1194281711425"><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li14680330124215"><strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b19628135253315">Function Name</strong>: Enter a function name, for example, <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b1096494011339">apig</strong>.</li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li1737435210422"><strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b1792141518349">Agency</strong>: Select <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b119210156344">Use no agency</strong>.</li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li134611116112"><strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b1482253215589">Enterprise Project</strong>: Select <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b116121819584">default</strong>.</li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li118751474316"><strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b16326151453816">Runtime</strong>: Select <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b13508201763810">Python 2.7</strong>.</li></ul>
|
|
</p></li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li1973616273289"><span>Click <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b18265201162817">Create</strong>.</span></li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li5111143611283"><span>On the <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b3201106133116">Code</strong> tab page, copy the following code to the code window and click <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b13442423163113">Deploy</strong>.</span><p><pre class="screen" id="functiongraph_01_0204__en-us_topic_0000001251588440_screen6111636192817"># -*- coding:utf-8 -*-
|
|
import json
|
|
def handler (event, context):
|
|
body = "<html><title>Functiongraph Demo</title><body><p>Hello, FunctionGraph!</p></body></html>"
|
|
print(body)
|
|
return {
|
|
"statusCode":200,
|
|
"body":body,
|
|
"headers": {
|
|
"Content-Type": "text/html",
|
|
},
|
|
"isBase64Encoded": False
|
|
}</pre>
|
|
</p></li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li53812137105421"><span>Choose <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b289510228329">Configuration</strong> > <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b156971032183216">Triggers</strong> and click <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b98432283337">Create Trigger</strong>.</span><p><div class="fignone" id="functiongraph_01_0204__en-us_topic_0000001251588440_fig546212168431"><span class="figcap"><b>Figure 1 </b>Creating a trigger</span><br><span><img id="functiongraph_01_0204__en-us_topic_0000001251588440_image94621716114320" src="en-us_image_0000001679340817.png"></span></div>
|
|
</p></li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li20575124814517"><span>Configure the trigger information.</span><p>
|
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="functiongraph_01_0204__en-us_topic_0000001251588440_table105751048184510" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Trigger information</caption><thead align="left"><tr id="functiongraph_01_0204__en-us_topic_0000001251588440_row3571144884513"><th align="left" class="cellrowborder" valign="top" width="24.54%" id="mcps1.4.2.2.7.2.1.2.3.1.1"><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p1857154834518">Parameter</p>
|
|
</th>
|
|
<th align="left" class="cellrowborder" valign="top" width="75.46000000000001%" id="mcps1.4.2.2.7.2.1.2.3.1.2"><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p155717480456">Description</p>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody><tr id="functiongraph_01_0204__en-us_topic_0000001251588440_row837561774612"><td class="cellrowborder" valign="top" width="24.54%" headers="mcps1.4.2.2.7.2.1.2.3.1.1 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p2037691716466">Trigger Type</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="75.46000000000001%" headers="mcps1.4.2.2.7.2.1.2.3.1.2 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p0376121720461">Select <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b112342141319">API Gateway (Dedicated Gateway)</strong>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="functiongraph_01_0204__en-us_topic_0000001251588440_row144111329121311"><td class="cellrowborder" valign="top" width="24.54%" headers="mcps1.4.2.2.7.2.1.2.3.1.1 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p034081911515">API Instance</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="75.46000000000001%" headers="mcps1.4.2.2.7.2.1.2.3.1.2 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p8340619195113">Select an instance. If no instance is available, click <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b581012529319">Create Instance</strong>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="functiongraph_01_0204__en-us_topic_0000001251588440_row6573144824520"><td class="cellrowborder" valign="top" width="24.54%" headers="mcps1.4.2.2.7.2.1.2.3.1.1 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p10573164817453">API Name</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="75.46000000000001%" headers="mcps1.4.2.2.7.2.1.2.3.1.2 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p3573848104513">Enter an API name, for example, <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b1627131276">API_apig</strong>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="functiongraph_01_0204__en-us_topic_0000001251588440_row057320489459"><td class="cellrowborder" valign="top" width="24.54%" headers="mcps1.4.2.2.7.2.1.2.3.1.1 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p17573114864515">API Group</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="75.46000000000001%" headers="mcps1.4.2.2.7.2.1.2.3.1.2 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p16573448174511">An API group is a collection of APIs. You can manage APIs by API group.</p>
|
|
<p id="functiongraph_01_0204__en-us_topic_0000001251588440_p186541972215">Select <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b1940174217426">APIGroup_test</strong>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="functiongraph_01_0204__en-us_topic_0000001251588440_row15573174819456"><td class="cellrowborder" valign="top" width="24.54%" headers="mcps1.4.2.2.7.2.1.2.3.1.1 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p557354812457">Environment</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="75.46000000000001%" headers="mcps1.4.2.2.7.2.1.2.3.1.2 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p12573184817454">An API can be called in different environments, such as production, test, and development environments. APIG supports environment management, which allows you to define different request paths for an API in different environments.</p>
|
|
<p id="functiongraph_01_0204__en-us_topic_0000001251588440_p25731485459">To ensure that the API can be called, select <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b842352706103853">RELEASE</strong>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="functiongraph_01_0204__en-us_topic_0000001251588440_row5573104815454"><td class="cellrowborder" valign="top" width="24.54%" headers="mcps1.4.2.2.7.2.1.2.3.1.1 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p6573164824514">Security Authentication</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="75.46000000000001%" headers="mcps1.4.2.2.7.2.1.2.3.1.2 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p4573174816457">There are three authentication modes:</p>
|
|
<ul id="functiongraph_01_0204__en-us_topic_0000001251588440_ul29539535471"><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li695385364719"><strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b738011198287">App</strong>: AppKey and AppSecret authentication. This mode is of high security and is recommended.</li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li149800576478"><strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b11935176162912">IAM</strong>: IAM authentication. This mode grants access permissions to IAM users only and is of medium security.</li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li17958182174816"><strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b13479183511590">None</strong>: No authentication. This mode grants access permissions to all users.</li></ul>
|
|
<p id="functiongraph_01_0204__en-us_topic_0000001251588440_p657314810455">Select <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b842352706104224">None</strong>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="functiongraph_01_0204__en-us_topic_0000001251588440_row1157418484459"><td class="cellrowborder" valign="top" width="24.54%" headers="mcps1.4.2.2.7.2.1.2.3.1.1 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p13574114854512">Protocol</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="75.46000000000001%" headers="mcps1.4.2.2.7.2.1.2.3.1.2 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p145741948194514">There are two types of protocols:</p>
|
|
<ul id="functiongraph_01_0204__en-us_topic_0000001251588440_ul19574948124513"><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li20574848184518">HTTP</li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li185741948174517">HTTPS</li></ul>
|
|
<p id="functiongraph_01_0204__en-us_topic_0000001251588440_p11574204816456">Select <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b964443932912">HTTPS</strong>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="functiongraph_01_0204__en-us_topic_0000001251588440_row5574174815454"><td class="cellrowborder" valign="top" width="24.54%" headers="mcps1.4.2.2.7.2.1.2.3.1.1 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p85746485456">Timeout (ms)</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="75.46000000000001%" headers="mcps1.4.2.2.7.2.1.2.3.1.2 "><p id="functiongraph_01_0204__en-us_topic_0000001251588440_p15574174817456">Enter <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b149885221976">5000</strong>.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</p></li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li37707812212827"><span>Click <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b445204532919">OK</strong>.</span><p><div class="fignone" id="functiongraph_01_0204__en-us_topic_0000001251588440_fig102196141249"><span class="figcap"><b>Figure 2 </b>Creating a trigger</span><br><span><img id="functiongraph_01_0204__en-us_topic_0000001251588440_image2219514247" src="en-us_image_0000001455081958.png"></span></div>
|
|
<div class="note" id="functiongraph_01_0204__en-us_topic_0000001251588440_note112491417413"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ol type="a" id="functiongraph_01_0204__en-us_topic_0000001251588440_ol22491118419"><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li32497117412"><strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b245043314416">URL</strong> indicates the calling address of the APIG trigger.</li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li6249611049">After the APIG trigger is created, an API named <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b7963175516304">API_apig</strong> is generated on the APIG console. You can click the API name in the trigger list to go to the APIG console.</li></ol>
|
|
</div></div>
|
|
</p></li></ol>
|
|
</div>
|
|
<div class="section" id="functiongraph_01_0204__en-us_topic_0000001251588440_section5526738175817"><h4 class="sectiontitle">Invoking the Function</h4><ol id="functiongraph_01_0204__en-us_topic_0000001251588440_ol4914803510620"><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li66905816145840"><span>Enter the URL of the APIG trigger in the address bar of a browser, and press <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b1770019973216">Enter</strong>.</span></li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li2325992410573"><span>View the execution result, as shown in <a href="#functiongraph_01_0204__en-us_topic_0000001251588440_fig640414181488">Figure 3</a>.</span><p><div class="fignone" id="functiongraph_01_0204__en-us_topic_0000001251588440_fig640414181488"><a name="functiongraph_01_0204__en-us_topic_0000001251588440_fig640414181488"></a><a name="en-us_topic_0000001251588440_fig640414181488"></a><span class="figcap"><b>Figure 3 </b>Returned result</span><br><span><img id="functiongraph_01_0204__en-us_topic_0000001251588440_image6437103214565" src="en-us_image_0000001504921529.png"></span></div>
|
|
<div class="note" id="functiongraph_01_0204__en-us_topic_0000001251588440_note1682211685613"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ol type="a" id="functiongraph_01_0204__en-us_topic_0000001251588440_ol6102155713554"><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li107515133507">The input for APIG invocation comes from an event template provided by the function. For details, see <a href="functiongraph_01_0302.html#functiongraph_01_0302__en-us_topic_0000001252067188_table52979501006">Table 2</a>.</li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li079286145317">The function response for APIG invocation is encapsulated and must contain <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b610918134106">body(String)</strong>, <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b161121113171020">statusCode(int)</strong>, <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b811241301012">headers(Map)</strong>, and <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b911319139104">isBase64Encoded(boolean)</strong>.</li></ol>
|
|
</div></div>
|
|
</p></li></ol>
|
|
</div>
|
|
<div class="section" id="functiongraph_01_0204__en-us_topic_0000001251588440_section4315195519585"><h4 class="sectiontitle">Viewing the Execution Result</h4><ol id="functiongraph_01_0204__en-us_topic_0000001251588440_ol61321856152214"><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li163409578314"><span>Return to the FunctionGraph console. In the navigation pane, choose <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b80542474891521">Functions</strong> > <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b94643050791521">Function List</strong>.</span></li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li154723022320"><span>Click a function to go to the function details page.</span></li><li id="functiongraph_01_0204__en-us_topic_0000001251588440_li2079912911238"><span>Choose <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b20624119133414">Monitoring</strong> > <strong id="functiongraph_01_0204__en-us_topic_0000001251588440_b1863017911342">Logs</strong> to query function running logs.</span></li></ol>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="functiongraph_01_0200.html">Creating Triggers</a></div>
|
|
</div>
|
|
</div>
|
|
|