欧美麻豆久久久久久中文_成年免费观看_男人天堂亚洲成人_中国一级片_动漫黄网站免费永久在线观看_国产精品自产av一区二区三区

中培偉業IT資訊頻道
您現在的位置:首頁 > IT資訊 > 軟件研發 > 如何使用Python在Azure Functions 2.x中配置HTTP路由參數?

如何使用Python在Azure Functions 2.x中配置HTTP路由參數?

2020-08-24 18:08:09 | 來源:中培企業IT培訓網

有關三種流行的HTTP路由模式的高級概述,在文中,當Azure Functions上下文中引用HTTP路由時,是指基于路徑的路由。Azure Functions中的HTTP路由負責將請求URI映射到終結點,并將HTTP請求路由到那些終結點。此外,Azure Functions可以從請求中包含的URI中提取值,并將這些值用于請求處理。后者是將多個參數傳遞給HTTP觸發器的有用方法。

  路由前綴

顧名思義,您可以在Azure Functions中為HTTP觸發器自定義或刪除默認的“ api”路由前綴。要對其進行更改,請修改host.json文件并添加以下配置設置:

{

"extensions": {

"http": {

"routePrefix": "foo"

}

}

}

在上面的示例中,我們將路由前綴設置為“ foo”。請注意:此設置是“全局”設置,因為如果您在功能應用程序中托管多個功能,則此設置將適用于所有功能。考慮到該設置的全局性質,在修改默認設置方面我沒有發現太多價值。

  路線參數

如上所述,HTTP路由可以在Azure功能中用于兩個目的:將請求URI映射到終結點或請求處理。路由在function.json文件中定義,并在啟動功能應用程序時進行配置。根據文檔,路由參數名稱必須為非空并且不能包含以下字符:{,},/。

  將請求URI映射到端點

到目前為止,這種模式最容易實現。讓我們來看一個示例,在該示例中,您希望在同一函數應用程序中托管兩個版本的HTTP觸發函數。

在此示例中,我們有一個名為“ FirstName”的HTTP觸發函數。要將版本添加到路由,只需修改function.json文件并添加以下配置設置:

"route": "v1/FirstName",

現在,您可以創建一個類似的名為“ FirstName2”的HTTP觸發函數,修改function.json文件并添加以下配置設置:

"route": "v2/FirstName",

您可以使用此功能來確保不破壞與您發布的功能的兼容性或將流量路由到給定的端點。

使用HTTP路由參數進行請求處理

讓我們來看一個使用route參數來自定義請求處理的示例。考慮默認的HTTP觸發器模板,該模板將傳遞給“ name”參數的數據作為輸入,然后輸出傳遞給函數的數據。假設您要擴展此功能以同時使用名字和姓氏,則可以將以下內容添加到function.json文件中:

"route": "FirstNameLastName/{firstname}/{lastname}"

然后,您將修改功能代碼以反映以下內容:

def main(req: func.HttpRequest) -> func.HttpResponse:

logging.info('Python HTTP trigger function processed a request.')

firstname = req.route_params.get('firstname')

lastname = req.route_params.get('lastname')

return func.HttpResponse(f"Hello {firstname} {lastname}! ")

請注意,您使用“ route_params”屬性而不是“ params”屬性。Python的HTTPRequest類的完整文檔在這里。

在本地運行函數時,您會注意到URL已從默認值修改:

FirstNameLastName: [GET]

  路線約束

在route參數中添加約束可以使您限制如何匹配function.json中的路由。通用語法為“ {parameter:constraint}”。例如,如果我們想限制我們的FirstNameLastName 該函數僅接受我們先前定義的兩條路由的字母字符,我們將在function.json中對其進行配置,如下所示:

"route": "FirstNameLastName/{firstname:alpha}/{lastname:alpha}",

考慮到Azure Functions的按交易付費性質,這是一種確保您的功能應用程序僅處理有效交易的絕佳方法。

請注意:路由約束的處理不是由功能應用程序執行,而是由Azure功能主機執行。如果您提供的URI錯誤,Azure函數主機將返回404。我將在以后的博客文章中介紹有關調試路由參數的內容。

  強制與可選路由參數

您可以將HTTP路由參數標記為可選,從而在代碼中提供一些靈活性。'?' 字符將參數標記為可選參數,并且只能出現在參數末尾。例如,如果我們想在上一個示例中將姓氏路由參數標記為可選,則可以在function.json中對其進行配置,如下所示:

"route": "FirstNameLastName/{firstname:alpha}/{lastname:alpha?}",

請注意,如果您沒有將lastname傳遞給上述URI,則功能代碼中lastname變量的值將為None。

以上就是關于如何使用Python在Azure Functions 2.x中配置HTTP路由參數的全部內容,想了解更多關于Python的信息,請繼續關注中培偉業。

標簽: Python 軟件研發
主站蜘蛛池模板: XXXX内射中国老妇 | 欧美成人精品高清视频在线观看 | 国产亚韩| 顶级欧美做受XXX000 | 少妇久久久久久人妻无码 | 欧美又大又硬又粗BBBBB | 四虎国产精品成人免费久久 | 欧洲裸毛BBBBBXXXX | 国产交换配乱婬视频 | 无码日韩做暖暖大全免费 | 最近高清中文在线国语字幕 | 无码AV天堂一区二区三区 | 久久精品A一国产成人免费网站 | 日韩中文字幕三级 | 成年免费A级毛片免费看无码 | www.中文字幕在线 | WWW亚洲色大成网络.COM | 人人妻人人爽人人澡AV | 亚洲chinese男同志gay在线 | 鲁大师在线影院免费观看 | 国产熟妇乱子伦视频在线观看 | 隔着超薄肉丝袜做AV在线 | 国产乱国产 | 日本无遮挡吸乳视频 | 国产69精品久久久久人妻 | 国模两腿玉门打开图无码 | 中文字幕乱码人在线视频1区 | 男人天堂视频在线 | 国产精品成人免费视频网站 | 亚洲中亚洲中文字幕无线乱码 | 亚洲国产精品一区二区九九 | 好吊妞国产欧美日韩免费观看 | 成人A级毛片免费观看AV | 久操线在视频在线观看 | 成全在线观看视频在线播放 | 99久久久国产精品免费 | 久久久官网 | 亚洲AV成人影视综合网 | 成人性做爰aaa片免费看 | 免费可以看的无遮挡AV | 中文亚洲欧美日韩无线码 |