0

我目前有一個API通過我們的API網關,它有多個自定義授權器 - LiveAuthorizerTestAuthorizer更改我的AWS API網關自定義授權器,每個階段

我想改變我的自定義授權者基於被訪問的階段,就像一個階段變量。如果我們處於階段測試階段,請使用TestAuthorizer,如果在現場使用LiveAuthorizer

從我的研究和這個page這似乎不可能,有什麼想法?

PS - 我知道這可以在執行身份驗證的Lambda函數中處理,我只是好奇是否有其他方法(類似於舞臺變量)。

回答

0

您可以在單個授權人中使用階段變量根據階段指向不同的Lambda函數,但不能指向不同的授權人。

在很多情況下,指向不同的Lambda函數的作品。 Authorizer上的其他設置(如標題源或TTL)不支持階段變量,因此這些必須由所有階段共享。

編輯:我應該解釋一下,不允許這樣做的一個關鍵原因是,如果在運行時該變量不存在,我們的舞臺變量功能as-is不具備後備功能。由於運行授權者至關重要,因此我們必須提出一種類似於具有內置安全機制的階段變量的不同機制。

+0

您能否解釋一下這個問題:「您可以在單個授權人中使用階段變量來指向不同的Lambda函數」 – Hexie

+0

您需要將授權人設置爲類似於{stageVariables.authorizerName}的內容,並在舞臺中設置階段變量。如果您使用此配置,則需要手動配置您的Api網關以調用該Lambda函數。 – taskiner

+0

@taskiner請參閱我的最初問題中的網址,根據此頁(不到一個月前):http://stackoverflow.com/questions/41684728/is-it-possible-to-pass-a-stage無法完成的變量到a-custom-authorizer-in-aws-api-gatew? – Hexie