日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

事件請求處理程序(Event Handler)

本文介紹Python事件請求處理程序的結構特點和示例。

Event Handler簽名

一個簡單的Event Handler簽名定義如下。

def handler(event, context):
    return 'hello world'

Event Handler的示例解析如下:

  • handler:方法名稱。與函數計算控制臺配置的請求處理程序(函數入口)相對應。例如,為FC函數配置的handler為main.handler,那么函數計算會去加載main.py中定義的handler函數,并從handler函數開始執行。

  • event:您調用函數時傳入的參數。在Python 2.7運行環境中,類型為String。在Python 3運行環境中,類型為Bytes。

  • context:為您的FC函數調用提供在調用時的運行上下文信息。

示例一:解析JSON格式參數

代碼示例

當您傳入JSON格式參數時,函數計算會透傳參數內容,需要您在代碼中自行解析。下面是解析JSON格式事件的代碼示例。

# -*- coding: utf-8 -*-
import json
def handler(event, context):
    evt = json.loads(event)
    return evt['key']

前提條件

創建函數

操作步驟

  1. 登錄函數計算控制臺,在左側導航欄,單擊服務及函數
  2. 在頂部菜單欄,選擇地域,然后在服務列表頁面,單擊目標服務。
  3. 函數管理頁面,單擊目標函數名稱。
  4. 在函數詳情頁面,單擊函數代碼頁簽,在代碼編輯器中輸入上述示例代碼,然后單擊部署代碼

    重要

    上述示例代碼中函數的請求處理程序是index.py中的handler方法。如果您的函數的請求處理程序配置與此不同,請更新對應的文件名和方法。

  5. 函數代碼頁簽,單擊測試函數右側的down圖標,從下拉列表中選擇配置測試參數,輸入如下示例測試參數,然后單擊確定

    {
      "key": "value"
    }
  6. 單擊測試函數

    函數執行成功后,查看返回結果,您可以看到返回結果為value

示例二:通過臨時密鑰安全讀寫OSS的資源

示例代碼

您可以使用函數計算為您提供的臨時密鑰訪問對象存儲OSS,代碼示例如下所示。

import json
import oss2

def handler(event, context):
    evt = json.loads(event)
    creds = context.credentials
    # do not forget security_token
    auth = oss2.StsAuth(creds.access_key_id, creds.access_key_secret, creds.security_token)
    bucket = oss2.Bucket(auth, evt['endpoint'], evt['bucket'])
    bucket.put_object(evt['objectName'], evt['message'])
    return 'success'

上述代碼示例中的creds = context.credentials表示從context參數中獲取臨時密鑰,避免在代碼中硬編碼密碼等敏感信息。

重要

請確保當前所在的服務配置的角色具有訪問對象存儲OSS的權限。您可以登錄RAM控制臺,為該角色添加訪問對象存儲OSS的權限。

前提條件

創建函數

操作步驟

  1. 登錄函數計算控制臺,在左側導航欄,單擊服務及函數
  2. 在頂部菜單欄,選擇地域,然后在服務列表頁面,單擊目標服務。
  3. 函數管理頁面,單擊目標函數名稱。
  4. 函數詳情頁面,單擊函數代碼頁簽,在代碼編輯器中輸入上述示例代碼,然后單擊部署函數

    重要

    上述示例代碼中函數的請求處理程序是index.py中的handler方法。如果您的函數的請求處理程序配置與此不同,請更新對應的文件名和方法。

  5. 函數代碼頁簽,單擊測試函數右側的down圖標,從下拉列表中選擇配置測試參數,輸入如下示例測試參數,然后單擊確定

    {
      "endpoint": "http://oss-cn-shenzhen-internal.aliyuncs.com",
      "bucket": "oss-********",
      "objectName": "oss-test-object",
      "message": "oss-test-content"
    }
  6. 單擊測試函數

    函數執行成功后,查看返回結果,您可以看到返回結果為success

示例三:調用外部命令

您的Python程序也可以創建fork進程,調用外部命令。例如,您可以使用subprocess模塊調用Linux的ls -l命令,輸出當前目錄下的文件列表。代碼示例如下。

import os
import subprocess

def handler(event, context):
    ret = subprocess.check_output(['ls', "-l"])
    return ret