參數關鍵字aws_default_lambda_role
需要具有既附加到Aurora羣集且具有與其相關的正確lambda訪問策略的角色的完整ARN值路徑。
首先,啓用IAM DB Authentication Enabled
這意味着您的數據庫用戶憑證可以通過AWS IAM用戶和角色進行管理。
創建策略,創建角色,將策略附加到角色,將角色關聯到Aurora羣集的步驟如下。
1.Create a IAM Policy to Access AWS Lambda Resources.
2.Create IAM Role to Allow Amazon Aurora to Access AWS Services with Policy attached.
3.Associate IAM Role with an Amazon Aurora MySQL DB Cluster that needs to use Lambda.
4.設置相關AWS服務於ARN集羣級參數鍵爲關聯的IAM角色。 使用上面給出的網絡鏈接3中的步驟10。步驟10描述了aws_default_s3_role
,但我們只需要尋找aws_default_lambda_role
。
5.轉到RDS Dashboard
6.點擊參數組
7.點擊創建參數組
8.選擇參數組家庭aurora5.6
9。選擇類型DB Cluster Parameter Group
所需的配置組名鍵入文本框中爲someName56
創建,然後編輯參數
看參數名稱爲aws_default_lambda_role
,然後鍵入AR N代表上面第4步中創建的IAM角色。
簡要說明
要記住,因爲所涉及的抽象層,還有IAM用戶,角色和策略的分離是很重要的。策略可以附加到用戶或角色。但不能與運行的實例(如EC2或RDS)相關聯。要將S3或Lambda訪問附加到寫在本地計算機上的代碼,必須使用具有相應策略的IAM用戶。要附加對Amazon內部服務的訪問權限,則必須分配IAM角色,例如,允許RDS Aurora羣集數據庫觸發Lambda並使用CALL mysql.lambda_async
過程。 RDS實例具有觸發lambda函數的作用,因爲它在AWS內部,因此必須分配一個IAM角色。除非需要更多內容,否則就會給出最少的訪問權限,以及如何在不直接訪問RDS虛擬機的情況下更改配置文件。因此,需要更改參數組值以便在DB軟件中進行一些配置更改,而無需直接連接到虛擬機。它的設計比使用SSH或直接連接軟件的傳統方法更簡單。由於abstaction層(即AWS控制檯可以跟蹤用戶活動,因此哪個用戶/服務提交了Lambda觸發器的操作以幫助查明問題),這還允許更大的責任。
注意
我不是專家,所以請糾正我的解釋,我沒有對AWS十足的把握,所以我可以在我的任一步驟或解釋所犯的錯誤。但這是我爲解決我的特定問題所做的。
編輯:(發佈之後分鐘)
我的具體問題:
當我做在SQL中直接調用,它給了我下面的錯誤輸出,使我的步驟我概述解決這個問題。
的mysql> CALL mysql.lambda_async('arn:aws:lambda:us-region-1:02020202020:function:FuncSomeNameLambdaFunc', CONCAT('{ "subject" : "', 'subject contents', '", "message" : "', 'Message Contents', '" }'));
ERROR 1873 (HY000): Lambda API returned error: Missing designated IAM role (aws_default_lambda_role)
的IAM角色必須附加到調用真實(在RDS控制檯,而不是IAM控制檯)機能的研究具體的極光集羣。你做到了嗎? –
我通過將IAM角色ARN添加到RDS DB Cluseter參數組配置來解決該問題。我將ARN添加到了'aws_default_lambda_role'鍵。 – lu1s