无码人妻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综合仓井空 | 国产精品嫩草影院精东 | 久久成人a毛片免费观看网站 | 日本成人免费网站 | 欧美一级淫片aaaaaaa视频 | 91老司机福利在线 | 无码无遮挡又大又爽又黄的视频 | 国产主播av | 四虎影城 | 成人黄色小说视频 | 无色福利 | 小市民系列动漫免费观看 | 国产成人在线观看 | 日韩区一区二 | 少妇啪啪高潮肉谢 | 青苹果乐园高清免费播放 | 国产精品cum4k | 亚洲第一精品在线 | 国产成人精品一区二区三区四区 | 91亚洲精品在线 | 无码精品人妻一区二区三区aV | 久久久久久久影院 | 国产又黄又猛又粗又爽的A片漫 | 免费av观看网站 | XFPLAY内射无码| 神天至尊动漫免费观看高清 | 亚洲精品18日本一区久久 | 久久精品亚洲欧美日韩久久 | 风韵少妇性饥渴推油按摩视频 | 欧美国产精品粉嫩在线播放 | 1000部禁又爽又黄的禁片免费 | 蜜桃av噜噜一区二区三区小说 | 日韩超碰人人爽人人做人人添 | 亚洲精品高清视频在线观看 | 欧美狠狠入鲁的视频 | 性猛交ⅹxxx富婆视频 |