Building a Program
Download fss_examples_image_thumbnail.zip (SHA-256 verification package) to create an image compressing function from scratch.
Creating a Deployment Package
This example uses a Python function to compress images. For details about function development, see Developing Functions in Python. Figure 1 shows the sample code directory. The service code is not described.
def handler(event, context): ak = context.getAccessKey() sk = context.getSecretKey() if ak == "" or sk == "": context.getLogger().error('Failed to access OBS because no temporary ' 'AK, SK, or token has been obtained. Please ' 'set an agency.') return 'Failed to access OBS because no temporary AK, SK, or token ' \ 'has been obtained. Please set an agency. ' obs_endpoint = context.getUserData('obs_endpoint') if not obs_endpoint: return 'obs_endpoint is not configured' output_bucket = context.getUserData('output_bucket') if not output_bucket: return 'output_bucket is not configured' compress_handler = ThumbnailHandler(context) records = event.get("Records", None) return compress_handler.run(records[0])
Creating a Function
When creating a function, specify an agency with OBS access permissions so that FunctionGraph can invoke the OBS service.
- Log in to the FunctionGraph console, and choose Functions > Function List in the navigation pane.
- Click Create Function.
- Click Create from scratch and configure the function information.
After setting the basic information, click Create Function.
- Function Type: Select Event Function.
- For Function Name, enter fss_examples_image_thumbnail.
- For Agency, select serverless_trust created in Creating an Agency.
- For Runtime, select Python3.6
- On the fss_examples_image_thumbnail details page, configure the following information:
- On the Code tab, choose Upload > Local ZIP, upload the sample code fss_examples_image_thumbnail.zip.
- Choose Configuration > Basic Settings, set the following parameters, and click Save.
- For Memory, select 256.
- For Execution Timeout, enter 40.
- For Handler, retain the default value index.handler.
- For App, retain the default value default.
- For Description, enter Image compressing.
- Choose Configuration > Environment Variables, set environment variables, and click Save.
output_bucket: the output bucket parameter defined in index.py. Set the value to your-bucket-output, the bucket created in Creating OBS Buckets.
obs_endpoint: the bucket address parameter defined in index.py. Set the value to obs.region.myhuaweicloud.com.
Table 1 Environment variable description Environment Variable
Description
obs_endpoint
OBS endpoint.
output_bucket
OBS bucket for storing output images.
Selecting a Dependency
The sample code depends on the Pillow package, which should be imported as dependencies. The procedure is as follows:
- Go to the fss_examples_image_thumbnail details page, click the Code tab, and click Add in the Dependencies area at the bottom.
- Add public dependency pillow-7.1.2.
Figure 2 Adding dependencies
You do not need to configure the reference after adding a dependency, as it is preconfigured in the function code of the demo package.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.