无码人妻A片一区二区三区_18禁裸乳无遮挡啪啪无码免费_91精品亚?影视在线?看_人人妻人人爽人人澡AV_国产精品人妻一区二区三区四区_午夜免费影视

中培偉業(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路由模式的高級(jí)概述,在文中,當(dāng)Azure Functions上下文中引用HTTP路由時(shí),是指基于路徑的路由。Azure Functions中的HTTP路由負(fù)責(zé)將請(qǐng)求URI映射到終結(jié)點(diǎn),并將HTTP請(qǐng)求路由到那些終結(jié)點(diǎn)。此外,Azure Functions可以從請(qǐng)求中包含的URI中提取值,并將這些值用于請(qǐng)求處理。后者是將多個(gè)參數(shù)傳遞給HTTP觸發(fā)器的有用方法。

  路由前綴

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

{

"extensions": {

"http": {

"routePrefix": "foo"

}

}

}

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

  路線參數(shù)

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

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

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

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

"route": "v1/FirstName",

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

"route": "v2/FirstName",

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

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

讓我們來看一個(gè)使用route參數(shù)來自定義請(qǐng)求處理的示例。考慮默認(rèn)的HTTP觸發(fā)器模板,該模板將傳遞給“ name”參數(shù)的數(shù)據(jù)作為輸入,然后輸出傳遞給函數(shù)的數(shù)據(jù)。假設(shè)您要擴(kuò)展此功能以同時(shí)使用名字和姓氏,則可以將以下內(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}! ")

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

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

FirstNameLastName: [GET]

  路線約束

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

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

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

請(qǐng)注意:路由約束的處理不是由功能應(yīng)用程序執(zhí)行,而是由Azure功能主機(jī)執(zhí)行。如果您提供的URI錯(cuò)誤,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ù)末尾。例如,如果我們想在上一個(gè)示例中將姓氏路由參數(shù)標(biāo)記為可選,則可以在function.json中對(duì)其進(jìn)行配置,如下所示:

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

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

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

標(biāo)簽: Python 軟件研發(fā)
主站蜘蛛池模板: 日韩精品视频大全 | 欧美一日本 | 日本在线播放一二三区 | 色av一区二区 | 99有精品| 亚洲精品天堂久久久老牛 | 亚洲国产精品500在线观看 | 国产麻豆精品95视频 | 天堂网WWW在线资源最新版 | 中文在线а天堂中文在线新版 | 国产盗摄一区二区三区在线 | 国产最新福利剧情演绎 | 漂亮人妻被强玩波多野结衣 | 欧美日不卡 | 草逼网首页 | 99热一区 | 污网站入口 | 成人午夜精品无码区不卡 | 国产乱码精品一区二区三区介绍 | 久久久久久综合网 | 毛笔玩弄高潮h | 青草视频精品 | 日韩一卡二卡三卡四卡免费观在线 | 国产精品福利网 | 久久精品久久精品中文字幕 | 国产精品夫妻 | 最新国产一区 | 久久国产日本 | 日韩精品一区二区不卡 | 国产999精品人妻一区二区三区 | 在线视频1区 | www.youjizz.com日本| 中文无码一区二区视频在线播放 | 清纯小雨被调教成YIN娃 | 国产精品嫩草影院在线看 | H无码精品视频在线观看网站 | 黄色哪里看 | 亚洲国产精品一区二区第四页av | 免费看一级一片 | 精品资源在线看 | 美女黄视频在线播放 |