Free性欧美Hd另类_精品亚洲欧美视频在线观看_freesex欧美喷水_字幕av在线_久久久久久国产免费_伊人5566

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 軟件研發(fā) > 如何使用Python在Azure Functions 2.x中配置HTTP路由參數(shù)?

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

2020-08-24 18:08:09 | 來源:中培企業(yè)IT培訓(xùn)網(wǎng)

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

  路由前綴

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

{

"extensions": {

"http": {

"routePrefix": "foo"

}

}

}

在上面的示例中,我們將路由前綴設(shè)置為“ foo”。請注意:此設(shè)置是“全局”設(shè)置,因?yàn)槿绻诠δ軕?yīng)用程序中托管多個功能,則此設(shè)置將適用于所有功能。考慮到該設(shè)置的全局性質(zhì),在修改默認(rèn)設(shè)置方面我沒有發(fā)現(xiàn)太多價值。

  路線參數(shù)

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

  將請求URI映射到端點(diǎn)

到目前為止,這種模式最容易實(shí)現(xiàn)。讓我們來看一個示例,在該示例中,您希望在同一函數(shù)應(yīng)用程序中托管兩個版本的HTTP觸發(fā)函數(shù)。

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

"route": "v1/FirstName",

現(xiàn)在,您可以創(chuàng)建一個類似的名為“ FirstName2”的HTTP觸發(fā)函數(shù),修改function.json文件并添加以下配置設(shè)置:

"route": "v2/FirstName",

您可以使用此功能來確保不破壞與您發(fā)布的功能的兼容性或?qū)⒘髁柯酚傻浇o定的端點(diǎn)。

使用HTTP路由參數(shù)進(jìn)行請求處理

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

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

然后,您將修改功能代碼以反映以下內(nèi)容:

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類的完整文檔在這里。

在本地運(yùn)行函數(shù)時,您會注意到URL已從默認(rèn)值修改:

FirstNameLastName: [GET]

  路線約束

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

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

考慮到Azure Functions的按交易付費(fèi)性質(zhì),這是一種確保您的功能應(yīng)用程序僅處理有效交易的絕佳方法。

請注意:路由約束的處理不是由功能應(yīng)用程序執(zhí)行,而是由Azure功能主機(jī)執(zhí)行。如果您提供的URI錯誤,Azure函數(shù)主機(jī)將返回404。我將在以后的博客文章中介紹有關(guān)調(diào)試路由參數(shù)的內(nèi)容。

  強(qiáng)制與可選路由參數(shù)

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

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

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

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

標(biāo)簽: Python 軟件研發(fā)
主站蜘蛛池模板: 伊人影院在线视频 | 伊人丁香五月婷婷综合激情四射网 | 亚州中文字幕 | 日韩高清三区 | 久久久久久一级 | 日韩婷婷 | 97人人在线 | 国产日韩欧美三区 | 国产自偷在线拍精品热乐播AV | 量新国产精品亚洲 | 中文字幕av伊人av无码av | 国产精品无码翘臀在线观看 | 蜜臀忘忧草久久久久久久aⅴ | 丝袜亚洲另类欧美变态 | 国内精自视频品线一区 | a级毛片免费高清在线播放 国产性猛交╳XXX乱大交 | 天天躁日日躁狠狠躁婷婷 | 成人免费网址 | 亚洲社区一区二区 | 日本欧美大码aⅴ在线播放 亚洲靠逼网站 | 一区二区三区四区欧美日韩 | 日韩亚洲国产精品 | 大地网资源在线观看免费高清 | 96sao精品免费视频观看 | 在线资源观看 | 日本丰满少妇BBB | 韩国a级黄色 | 国产精品三p一区二区 | 天天摸天天看 | av片免费播放 | 狠狠一区二区三区 | 久久撸视频 | 思思久久96热在精品国产 | gay男生露j打飞j视频网站 | 欧美黑人粗暴多交 | 国产高潮又爽又刺激的视频 | 欧美色综合天天久久综合精品 | 亚洲熟女综合色一区二区三区 | 99久久国产综合精品女乱人伦 | 浴室边摸边吃奶边做边爱 | 国产黄色91视频 |