Files
doc-exports/docs/fg/umn/functiongraph_04_0103.html
liusiying01 904c1aad8b FG UMN 20250526 version
Reviewed-by: Mützel, Andrea <andrea.muetzel@t-systems.com>
Co-authored-by: liusiying01 <liusiying@huawei.com>
Co-committed-by: liusiying01 <liusiying@huawei.com>
2025-10-06 15:14:20 +00:00

154 lines
24 KiB
HTML

<a name="functiongraph_04_0103"></a><a name="functiongraph_04_0103"></a>
<h1 class="topictitle1">Creating an HTTP Function Using a Container Image and Executing the Function</h1>
<div id="body0000001250435134"><p id="functiongraph_04_0103__p3890155312331">This section uses the creation of an HTTP function using a container image as an example to describe how to create and test a container image function.</p>
<p id="functiongraph_04_0103__p2073745323917">In this example, implement an HTTP server in the image and listen on <strong id="functiongraph_04_0103__b1793114133919">port 8000</strong> for requests. <strong id="functiongraph_04_0103__b99416143395">(Do not change port 8000 in the examples provided in this section.)</strong> Note: You can use any base image.</p>
<div class="section" id="functiongraph_04_0103__section14418661443"><h4 class="sectiontitle">Constraints</h4><ul id="functiongraph_04_0103__ul11143133784412"><li id="functiongraph_04_0103__li115931159133317">HTTP functions support only APIC/APIG triggers.</li><li id="functiongraph_04_0103__li16143183717446">In the cloud environment, UID 1003 and GID 1003 are used to start the container by default. The two IDs can be modified by choosing <strong id="functiongraph_04_0103__b9425115012369">Configuration</strong> &gt; <strong id="functiongraph_04_0103__b116461947193611">Basic Settings</strong> &gt; <strong id="functiongraph_04_0103__b96917572361">Container Image Override</strong> on the function details page. They cannot be <strong id="functiongraph_04_0103__b1945814510375">root</strong> or a reserved ID.</li><li id="functiongraph_04_0103__li15143113714419"><strong id="functiongraph_04_0103__b210144718304">Do not change port 8000 in the example HTTP function.</strong></li><li id="functiongraph_04_0103__li314312376440">If the basic image of the Alpine version is used, run the <strong id="functiongraph_04_0103__b1313535015712">addgroup</strong> and <strong id="functiongraph_04_0103__b16135105010579">adduser</strong> commands.</li></ul>
</div>
<div class="section" id="functiongraph_04_0103__section0418520193311"><h4 class="sectiontitle">Prerequisites</h4><ol id="functiongraph_04_0103__functiongraph_04_0101_ol8106132642719"><li id="functiongraph_04_0103__functiongraph_04_0101_li4257144418303">Grant the FunctionGraph operation permissions to the user.<p id="functiongraph_04_0103__functiongraph_04_0101_p722313491535"><a name="functiongraph_04_0103__functiongraph_04_0101_li4257144418303"></a><a name="functiongraph_04_0101_li4257144418303"></a>To perform the operations described in this section, ensure that you have the <strong id="functiongraph_04_0103__functiongraph_04_0101_b14529817145619">FunctionGraph FullAccess</strong> permissions, that is, all permissions for FunctionGraph. For more information, see section <span class="uicontrol" id="functiongraph_04_0103__functiongraph_04_0101_uicontrol17648524536"><b>"Permissions Management"</b></span>.</p>
</li></ol>
</div>
<div class="section" id="functiongraph_04_0103__section992877392"><h4 class="sectiontitle">Step 1: Create an Image</h4><p id="functiongraph_04_0103__p068419143913">Take the Linux x86 64-bit OS as an example. (No system configuration is required.)</p>
</div>
<ol id="functiongraph_04_0103__ol4774141334018"><li id="functiongraph_04_0103__li977419139409">Create a folder.<pre class="screen" id="functiongraph_04_0103__screen3922727114118">mkdir custom_container_http_example &amp;&amp; cd custom_container_http_example</pre>
</li></ol><ol start="2" id="functiongraph_04_0103__ol1390513210407"><li id="functiongraph_04_0103__li11905021164011">Implement an HTTP server. Node.js is used as an example. For details about other languages, see <em id="functiongraph_04_0103__i718072214225">FunctionGraph Developer Guide</em>.<p id="functiongraph_04_0103__p187921276440">Create the <strong id="functiongraph_04_0103__b917615137223">main.js</strong> file to introduce the Express framework, receive POST requests, print the request body as standard output, and return "Hello FunctionGraph, method POST" to the client.</p>
<pre class="screen" id="functiongraph_04_0103__screen133291853183612">const express = require('express');
const PORT = 8000;
const app = express();
app.use(express.json());
app.post('/*', (req, res) =&gt; {
console.log('receive', req.body);
res.send('Hello FunctionGraph, method POST');
});
app.listen(PORT, () =&gt; {
console.log(`Listening on http://localhost:${PORT}`);
});</pre>
</li></ol><ol start="3" id="functiongraph_04_0103__ol1035701334214"><li id="functiongraph_04_0103__li71011312114818">Create the <strong id="functiongraph_04_0103__b45845159255">package.json</strong> file for npm so that it can identify the project and process project dependencies.<pre class="screen" id="functiongraph_04_0103__screen1030904474017">{
"name": "custom-container-http-example",
"version": "1.0.0",
"description": "An example of a custom container http function",
"main": "main.js",
"scripts": {},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
}
}</pre>
<ul id="functiongraph_04_0103__ul9401719516"><li id="functiongraph_04_0103__li144021105119"><strong id="functiongraph_04_0103__b0528115182613">name</strong>: project name</li><li id="functiongraph_04_0103__li1354861819513"><strong id="functiongraph_04_0103__b58201618142618">version</strong>: project version</li><li id="functiongraph_04_0103__li71791629115113"><strong id="functiongraph_04_0103__b12899122716277">main</strong>: application entry file</li><li id="functiongraph_04_0103__li3728104885115"><strong id="functiongraph_04_0103__b529194813284">dependencies</strong>: all available dependencies of the project in npm</li></ul>
</li><li id="functiongraph_04_0103__li5357613144220"><a name="functiongraph_04_0103__li5357613144220"></a><a name="li5357613144220"></a>Create a Dockerfile.<pre class="screen" id="functiongraph_04_0103__screen16957194045310">FROM node:12.10.0
ENV HOME=/home/custom_container
ENV <strong id="functiongraph_04_0103__b6348101210466">GROUP_ID</strong>=<strong id="functiongraph_04_0103__b331514136450">1003</strong>
ENV GROUP_NAME=custom_container
ENV <strong id="functiongraph_04_0103__b1485121804613">USER_ID</strong>=<strong id="functiongraph_04_0103__b6336151774515">1003</strong>
ENV USER_NAME=custom_container
RUN mkdir -m 550 ${HOME} &amp;&amp; groupadd -g ${GROUP_ID} ${GROUP_NAME} &amp;&amp; useradd -u ${USER_ID} -g ${GROUP_ID} ${USER_NAME}
COPY --chown=${USER_ID}:${GROUP_ID} main.js ${HOME}
COPY --chown=${USER_ID}:${GROUP_ID} package.json ${HOME}
RUN cd ${HOME} &amp;&amp; npm install
RUN chown -R ${USER_ID}:${GROUP_ID} ${HOME}
RUN find ${HOME} -type d | xargs chmod 500
RUN find ${HOME} -type f | xargs chmod 500
USER ${USER_NAME}
WORKDIR ${HOME}
EXPOSE 8000
ENTRYPOINT ["node", "/home/custom_container/main.js"]</pre>
<ul id="functiongraph_04_0103__ul10963114434217"><li id="functiongraph_04_0103__li29636447427"><strong id="functiongraph_04_0103__b448224192916">FROM</strong>: Specify base image <strong id="functiongraph_04_0103__b1612211144305">node:12.10.0</strong>. The base image is mandatory and its value can be changed.</li><li id="functiongraph_04_0103__li137654248557"><strong id="functiongraph_04_0103__b1855117544402">ENV</strong>: Set environment variables <strong id="functiongraph_04_0103__b95522054194019">HOME</strong> (<strong id="functiongraph_04_0103__b17552155474015">/home/custom_container</strong>), <strong id="functiongraph_04_0103__b1955212545403">GROUP_NAME</strong> and <strong id="functiongraph_04_0103__b185522547405">USER_NAME</strong> (<strong id="functiongraph_04_0103__b8552115424016">custom_container</strong>), <strong id="functiongraph_04_0103__b25521954134017">USER_ID</strong> and <strong id="functiongraph_04_0103__b25521454154017">GROUP_ID</strong> (<strong id="functiongraph_04_0103__b185537541408">1003</strong>). These environment variables are mandatory and their values can be changed.</li><li id="functiongraph_04_0103__li198492020124718"><strong id="functiongraph_04_0103__b15681748203313">RUN</strong>: Use the format <strong id="functiongraph_04_0103__b165751855185917">RUN</strong> <em id="functiongraph_04_0103__i7791759145915">&lt;Command&gt;</em>. For example, <strong id="functiongraph_04_0103__b103103141105">RUN mkdir -m 550 ${HOME}</strong>, which means to create the <strong id="functiongraph_04_0103__b1197311301365">home</strong> directory for user <em id="functiongraph_04_0103__i5111756703">${USER_NAME}</em> during container building.</li><li id="functiongraph_04_0103__li15560499126"><strong id="functiongraph_04_0103__b663011916418">USER</strong>: Switch to user <em id="functiongraph_04_0103__i915717172417">${USER_NAME}</em>.</li><li id="functiongraph_04_0103__li1573427151310"><strong id="functiongraph_04_0103__b11567355184118">WORKDIR</strong>: Switch the working directory to the <strong id="functiongraph_04_0103__b85675559411">${HOME}</strong> directory of user <em id="functiongraph_04_0103__i656775515412">${USER_NAME}</em>.</li><li id="functiongraph_04_0103__li11176163481315"><strong id="functiongraph_04_0103__b66071391958">COPY</strong>: Copy <strong id="functiongraph_04_0103__b850413507512">main.js</strong> and <strong id="functiongraph_04_0103__b752514521758">package.json</strong> to the <strong id="functiongraph_04_0103__b163271401665">home</strong> directory of user <em id="functiongraph_04_0103__i118382016620">${USER_NAME}</em> in the container.</li><li id="functiongraph_04_0103__li19963544104216"><strong id="functiongraph_04_0103__b79091013183016">EXPOSE: Expose port 8000 of the container. Do not change this parameter.</strong></li><li id="functiongraph_04_0103__li1799418920148"><strong id="functiongraph_04_0103__b486252713716">ENTRYPOINT</strong>: Run the <strong id="functiongraph_04_0103__b1891142474">node main.js</strong> command to start the container. Do not change this parameter.</li></ul>
</li></ol><ol start="5" id="functiongraph_04_0103__ol12590173254310"><li id="functiongraph_04_0103__li65901932114317">Build an image.<p id="functiongraph_04_0103__p8688195019499"><a name="functiongraph_04_0103__li65901932114317"></a><a name="li65901932114317"></a>In the following example, the image name is <strong id="functiongraph_04_0103__b366523713718">custom_container_http_example</strong>, the tag is <strong id="functiongraph_04_0103__b632010713175">latest</strong>, and the period (.) indicates the directory where the Dockerfile is located. Run the image build command to pack all files in the directory and send the package to a container engine to build an image.</p>
<pre class="screen" id="functiongraph_04_0103__screen1356617348547">docker build -t custom_container_http_example:latest .</pre>
</li></ol>
<div class="section" id="functiongraph_04_0103__section14706131145612"><h4 class="sectiontitle">Step 2: Perform Local Verification</h4><ol id="functiongraph_04_0103__ol15219131615717"><li id="functiongraph_04_0103__li19219171614578">Start the Docker container.<pre class="screen" id="functiongraph_04_0103__screen32034014570">docker run -u 1003:1003 -p 8000:8000 custom_container_http_example:latest</pre>
</li></ol><ol start="2" id="functiongraph_04_0103__ol3221850579"><li id="functiongraph_04_0103__li32212511577">Open a new Command Prompt, and send a message through port 8000. You can access all paths in the root directory in the template code. The following uses <strong id="functiongraph_04_0103__b1639253712524">helloworld</strong> as an example.<pre class="screen" id="functiongraph_04_0103__screen207121444175712">curl -XPOST -H 'Content-Type: application/json' -d '{"message":"HelloWorld"}' localhost:8000/helloworld</pre>
<div class="p" id="functiongraph_04_0103__p11235659183714">The following information is returned based on the module code:<pre class="screen" id="functiongraph_04_0103__screen1265281710582">Hello FunctionGraph, method POST</pre>
</div>
</li></ol><ol start="3" id="functiongraph_04_0103__ol038443342215"><li id="functiongraph_04_0103__li891393415237">Check whether the following information is displayed:<pre class="screen" id="functiongraph_04_0103__screen4971414596">receive {"message":"HelloWorld"}</pre>
<p id="functiongraph_04_0103__p10679134518242"><span><img id="functiongraph_04_0103__image66790459247" src="en-us_image_0000001472516001.png" title="Click to enlarge" class="imgResize"></span></p>
<p id="functiongraph_04_0103__p27663417249">Alternatively, run the <strong id="functiongraph_04_0103__b167381058686">docker logs</strong> command to obtain container logs.</p>
<p id="functiongraph_04_0103__p205727219252"><span><img id="functiongraph_04_0103__image1057222112516" src="en-us_image_0000001422359078.png" title="Click to enlarge" class="imgResize"></span></p>
</li></ol>
</div>
<div class="section" id="functiongraph_04_0103__section15137197135915"><a name="functiongraph_04_0103__section15137197135915"></a><a name="section15137197135915"></a><h4 class="sectiontitle">Step 3: Upload the Image</h4><ol id="functiongraph_04_0103__ol10526155517598"><li id="functiongraph_04_0103__li1280144911552">Log in to the SoftWare Repository for Container (SWR) console. In the navigation pane, choose <strong id="functiongraph_04_0103__b284013377486">My Images</strong>.</li><li id="functiongraph_04_0103__li19526145511590">Click <strong id="functiongraph_04_0103__b290678819">Upload Through Client</strong> or <strong id="functiongraph_04_0103__b888071310817">Upload Through SWR</strong> in the upper right corner.</li><li id="functiongraph_04_0103__li1169192171917">Upload the image as prompted.<p id="functiongraph_04_0103__p87902033161813"><a name="functiongraph_04_0103__li1169192171917"></a><a name="li1169192171917"></a></p>
<p id="functiongraph_04_0103__p125952020123114"><span><img id="functiongraph_04_0103__image35951420123110" src="en-us_image_0000001631149450.png" title="Click to enlarge" class="imgResize"></span></p>
<p id="functiongraph_04_0103__p162273421178"></p>
</li><li id="functiongraph_04_0103__li823013951820">View the image on the <strong id="functiongraph_04_0103__b1037115116454">My Images</strong> page.</li></ol>
</div>
<div class="section" id="functiongraph_04_0103__section12330203912578"><h4 class="sectiontitle">Step 4: Create a Function</h4><ol id="functiongraph_04_0103__ol18740710529"><li id="functiongraph_04_0103__li7794535128">Log in to the FunctionGraph console. In the navigation pane, choose <strong id="functiongraph_04_0103__b1032510278222">Functions</strong> &gt; <strong id="functiongraph_04_0103__b23253276227">Function List</strong>.</li><li id="functiongraph_04_0103__li27941371211">Click <strong id="functiongraph_04_0103__b2029905111130">Create Function</strong> in the upper right corner. On the displayed page, select <strong id="functiongraph_04_0103__b10687203616145">Container Image</strong> for creation mode.</li><li id="functiongraph_04_0103__li1176013361624">Set the basic function information.<ul id="functiongraph_04_0103__ul1714016229416"><li id="functiongraph_04_0103__li9143162215418"><strong id="functiongraph_04_0103__b7655123194413">Function Type</strong>: Select <strong id="functiongraph_04_0103__b465511315448">HTTP Function</strong>.</li><li id="functiongraph_04_0103__li183851018175617"><strong id="functiongraph_04_0103__b0359126114411">Region</strong>: The default value is used. You can select other regions.<p id="functiongraph_04_0103__p187181138134519"><strong id="functiongraph_04_0103__b101421556175711">Regions are geographic areas isolated from each other. Resources are region-specific and cannot be used across regions through internal network connections. For low network latency and quick resource access, select the nearest region.</strong></p>
</li><li id="functiongraph_04_0103__li5121204615412"><strong id="functiongraph_04_0103__b208561817144420">Function Name</strong>: Enter <strong id="functiongraph_04_0103__b7856217184411">custom_container_http</strong>.</li><li id="functiongraph_04_0103__li1818413119017"><strong id="functiongraph_04_0103__b159031922154412">Enterprise Project</strong>: The default value is <strong id="functiongraph_04_0103__b1590332214449">default</strong>. You can select the created enterprise project.<p id="functiongraph_04_0103__p167241052144512">Enterprise projects let you manage cloud resources and users by project.</p>
</li><li id="functiongraph_04_0103__li39981317382"><strong id="functiongraph_04_0103__b1553013312159">Agency</strong>: Select an agency with the <strong id="functiongraph_04_0103__b5530183111519">SWR Admin</strong> permission. If no agency is available, create one by referring to <a href="functiongraph_01_0920.html">Creating an Agency</a>.</li><li id="functiongraph_04_0103__li11250348182118"><strong id="functiongraph_04_0103__b2065134211446">Container Image</strong>: Enter the image uploaded to SWR in <a href="#functiongraph_04_0103__section15137197135915">step 3</a>. </li></ul>
</li><li id="functiongraph_04_0103__li1653311367119">(Optional) Set container image overriding parameters.<ul id="functiongraph_04_0103__ul65371241215"><li id="functiongraph_04_0103__li17537342212"><strong id="functiongraph_04_0103__b1763261134617">CMD</strong>: container startup command. Example: <strong id="functiongraph_04_0103__b66323114610">/bin/sh</strong>. If no command is specified, the entrypoint or CMD in the image configuration will be used.</li><li id="functiongraph_04_0103__li64161535522"><strong id="functiongraph_04_0103__b1244981420462">Args</strong>: container startup parameter. Example: <strong id="functiongraph_04_0103__b114491714154610">-args,value1</strong>. If no argument is specified, CMD in the image configuration will be used.</li><li id="functiongraph_04_0103__li189425262420"><strong id="functiongraph_04_0103__b10475185441514">Working Dir</strong>: working directory where a container runs. If no directory is specified, the directory in the image configuration will be used. The directory must start with a slash (/).</li><li id="functiongraph_04_0103__li7878121119311"><strong id="functiongraph_04_0103__b10433165219477">User ID</strong>: Enter the user ID.</li><li id="functiongraph_04_0103__li167132024434"><strong id="functiongraph_04_0103__b1836145484710">Group ID</strong>: Enter the user group ID.</li></ul>
</li><li id="functiongraph_04_0103__li271785191318"><strong id="functiongraph_04_0103__functiongraph_04_0101_b138464532075">Advanced Settings</strong>: <strong id="functiongraph_04_0103__functiongraph_04_0101_b177989591277">Collect Logs</strong> is disabled by default. If it is enabled, function execution logs will be reported to Log Tank Service (LTS). You will be billed for log management on a pay-per-use basis.
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="functiongraph_04_0103__functiongraph_04_0101_table586619443117" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Parameters for configuring Collect Logs</caption><thead align="left"><tr id="functiongraph_04_0103__functiongraph_04_0101_row686618443112"><th align="left" class="cellrowborder" valign="top" width="32.31%" id="mcps1.3.12.2.5.3.2.3.1.1"><p id="functiongraph_04_0103__functiongraph_04_0101_p14866749313">Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="67.69%" id="mcps1.3.12.2.5.3.2.3.1.2"><p id="functiongraph_04_0103__functiongraph_04_0101_p178668423117">Description</p>
</th>
</tr>
</thead>
<tbody><tr id="functiongraph_04_0103__functiongraph_04_0101_row1886615419311"><td class="cellrowborder" valign="top" width="32.31%" headers="mcps1.3.12.2.5.3.2.3.1.1 "><p id="functiongraph_04_0103__functiongraph_04_0101_p11866144103115">Log Configuration</p>
</td>
<td class="cellrowborder" valign="top" width="67.69%" headers="mcps1.3.12.2.5.3.2.3.1.2 "><p id="functiongraph_04_0103__functiongraph_04_0101_p1886610493115">You can select <strong id="functiongraph_04_0103__functiongraph_04_0101_b1757312367911">Auto</strong> or <strong id="functiongraph_04_0103__functiongraph_04_0101_b134872038395">Custom</strong>.</p>
<ul id="functiongraph_04_0103__functiongraph_04_0101_ul894114313424"><li id="functiongraph_04_0103__functiongraph_04_0101_li13941539425"><strong id="functiongraph_04_0103__functiongraph_04_0101_b8972558161013">Auto</strong>: Use the default log group and log stream. Log groups prefixed with "functiongraph.log.group" are filtered out.</li><li id="functiongraph_04_0103__functiongraph_04_0101_li1713036164219"><strong id="functiongraph_04_0103__functiongraph_04_0101_b15597122141115">Custom</strong>: Select a custom log group and log stream. Log streams that are in the same enterprise project as your function.</li></ul>
</td>
</tr>
<tr id="functiongraph_04_0103__functiongraph_04_0101_row1386618412312"><td class="cellrowborder" valign="top" width="32.31%" headers="mcps1.3.12.2.5.3.2.3.1.1 "><p id="functiongraph_04_0103__functiongraph_04_0101_p286619414315">Log Tag</p>
</td>
<td class="cellrowborder" valign="top" width="67.69%" headers="mcps1.3.12.2.5.3.2.3.1.2 "><p id="functiongraph_04_0103__functiongraph_04_0101_p138661483113">You can use these tags to filter function logs in LTS. You can add 10 more tags.</p>
<p id="functiongraph_04_0103__functiongraph_04_0101_p144926153617">Tag key/value: Enter a maximum of 64 characters. Only digits, letters, underscores (_), and hyphens (-) are allowed.</p>
</td>
</tr>
</tbody>
</table>
</div>
</li><li id="functiongraph_04_0103__li1416383714911">After the configuration is complete, click <strong id="functiongraph_04_0103__b126491561320">Create Function</strong>.</li></ol>
</div>
<div class="section" id="functiongraph_04_0103__section623165141019"><h4 class="sectiontitle">Step 5: Test the Function</h4><ol id="functiongraph_04_0103__ol138801929154513"><li id="functiongraph_04_0103__li118801429194518">On the function details page, click <strong id="functiongraph_04_0103__b2018012013321">Test</strong>. In the displayed dialog box, create a test event.</li><li id="functiongraph_04_0103__li1355343014466">Select <strong id="functiongraph_04_0103__b1671117466314">apig-event-template</strong>, set <strong id="functiongraph_04_0103__b1171744693110">Event Name</strong> to <strong id="functiongraph_04_0103__b271715468314">helloworld</strong>, modify the test event as follows, and click <strong id="functiongraph_04_0103__b1171784633117">Create</strong>.<pre class="screen" id="functiongraph_04_0103__screen627810633110">{
"body": "{\"message\": \"helloworld\"}",
"requestContext": {
"requestId": "11cdcdcf33949dc6d722640a13091c77",
"stage": "RELEASE"
},
"queryStringParameters": {
"responseType": "html"
},
"httpMethod": "POST",
"pathParameters": {},
"headers": {
"Content-Type": "application/json"
},
"path": "/helloworld",
"isBase64Encoded": false
}</pre>
</li></ol>
</div>
<div class="section" id="functiongraph_04_0103__section109701256191214"><h4 class="sectiontitle">Step 6: View the Execution Result</h4><p id="functiongraph_04_0103__p852616631310">Click <strong id="functiongraph_04_0103__b14423165631016">Test</strong> and view the execution result on the right.</p>
<div class="fignone" id="functiongraph_04_0103__fig19835131516462"><span class="figcap"><b>Figure 1 </b>Execution result</span><br><span><img id="functiongraph_04_0103__image18836191584614" src="en-us_image_0000001422359706.png" title="Click to enlarge" class="imgResize"></span></div>
<ul id="functiongraph_04_0103__ul1714875285210"><li id="functiongraph_04_0103__li20148952105216"><strong id="functiongraph_04_0103__b145531627183114">Function Output</strong>: displays the return result of the function.</li><li id="functiongraph_04_0103__li1659264116539"><strong id="functiongraph_04_0103__b65576304314">Log Output</strong>: displays the execution logs of the function.</li><li id="functiongraph_04_0103__li1014811523528"><strong id="functiongraph_04_0103__b17680163273115">Summary</strong>: displays key information of the logs.<div class="note" id="functiongraph_04_0103__note153221935131416"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="functiongraph_04_0103__functiongraph_04_0101_p1235012235414">A maximum of 2 KB logs can be displayed. For more log information, see <a href="functiongraph_01_0170.html">Querying Function Logs</a>.</p>
</div></div>
</li></ul>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="functiongraph_01_0505.html">Getting Started</a></div>
</div>
</div>
<script language="JavaScript">
<!--
image_size('.imgResize');
var msg_imageMax = "view original image";
var msg_imageClose = "close";
//--></script>