簡體   English   中英

Azure 函數、部署槽和 API 管理:函數關鍵問題

[英]Azure Functions, Deployment Slots and API Management: Function key issue

所以我目前正在研究一種解決方案,該解決方案使用至少一個具有授權級別(函數)的 Azure 函數,因此使用函數密鑰進行授權。 我配置了一個部署槽(暫存),我通過 VSTS 使用 CD 來構建、部署功能和交換槽。 一切正常。

但是現在是 API 管理,而我在 API 管理中注冊了該功能,因此最終用戶為了與該功能進行交互,他們通過 API 管理來進行。 因此,為了 API 管理發出有效請求,它會在后端 URL 請求中注入功能鍵。

但是,每當我部署該功能的新版本,然后我進行交換時,功能鍵就會發生變化。

所以它也需要我更改api管理中的功能鍵。 有什么方法可以避免更改密鑰(可能是生產插槽和暫存插槽之間的密鑰相同?),或者可能是另一種更簡單的方法來解決這個問題?

我只是想避免依賴關系,所以無論何時我在函數中部署更改,我都不需要擔心更改 API 管理,特別是因為它是手動更改。

謝謝

首先,Thomas 非常感謝您提供與密鑰管理 API 和 ARM 模板相關的建議。 實際上,我的發現是:當您使用功能槽時,每個槽都有自己的專用鍵(默認功能鍵和默認主機鍵)。 因此,當您遇到這種情況時,使用 API 管理請求函數並依賴這些鍵,如果您交換函數中的槽,API 管理將不再能夠成功請求該函數。 因此,為了避免在函數的部署過程等中創建額外的步驟,我決定嘗試創建一個自定義函數鍵 (authkey) 並將相同的值關聯到兩個插槽。 因此 api 管理可以使用該密鑰,獨立於哪個插槽是生產插槽。

無論如何,我現在對這個解決方案很滿意,以避免任何強大的自定義解決方案。

再次感謝托馬斯。

在 Azure 門戶中,打開您的函數應用程序並轉到應用程序密鑰部分。 可以通過單擊密鑰名稱來編輯應用密鑰。 因此,您可以復制生產中正在使用的密鑰,並將其粘貼到另一個部署槽中的相應密鑰值中。 這樣,兩個插槽將使用相同的密鑰,並且每次交換時都不需要更改。

如果您使用的是功能鍵而不是應用程序鍵,則可以以相同的方式復制和粘貼這些鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM