當我嘗試分離或刪除 AWS Lambda 建立的彈性網路介面時,我收到下列錯誤訊息: "You are not allowed to manage 'ela-attach' attachments"。
簡短描述
當您設定 Lambda 函數以存取 Amazon Virtual Private Cloud (Amazon VPC) 中的資源時,Lambda 會將此函數指派給網路介面。您只能透過 Lambda 服務來刪除此網路介面。如果您刪除此網路介面代表的資源,Lambda 會為您分離並刪除此網路介面。若要刪除未使用的網路介面,Lambda 服務會使用建立這些網路介面之函數的執行角色。
與建立網路介面的函數具有相同 Amazon VPC 組態的函數或函數版本,可能會使用此網路介面。在此情況下,您無法刪除此網路介面。
若要識別目前使用網路介面的函數或函數版本,請使用 GitHub 網站上的 Lambda ENI Finder Bash 指令碼。如需詳細資訊,請參閱申請者受管網路介面。
**注意:**Lambda 會跨越具有相同 Amazon VPC 組態的多個函數共用網路介面。若要減少 AWS 帳戶中使用的網路介面數量,您可以共用網路介面。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
執行 Lambda ENI Finder 以識別使用此網路介面的函數和函數版本
**注意:**下列命令僅適用於 Linux、Unix 和 macOS 作業系統。
若要識別使用此網路介面的函數和函數版本,請完成下列步驟:
-
使用有權查詢 Lambda 和網路介面的 AWS Identity and Access Management (IAM) 角色設定 AWS CLI。如需詳細資訊,請參閱執行角色和使用者許可。
**注意:**Lambda 會使用函數執行角色中的許可,刪除 Hyperplane 彈性網路介面。因此在 Lambda 刪除 Hyperplane 彈性網路介面之前,請勿刪除此執行角色。
-
從 jq 網站安裝命令列 JSON 處理器 jq:
$ sudo yum install jq -y
-
確認已安裝 Git:
$ sudo yum install git -y
若要安裝 Git,請參閱 Git 網站上的入門 – 安裝 Git。
-
從 GitHub 網站複製 aws-support-tools GitHub 儲存庫:
$ git clone https://github.com/awslabs/aws-support-tools.git
-
將目錄變更為 Lambda ENI Finder 的位置:
$ cd aws-support-tools
$ cd Lambda
$ cd FindEniMappings
-
針對您要刪除的網路介面執行 Lambda ENI Finder:
./findEniAssociations --eni eni-0123456789abcef01 --region us-east-1
注意:請將 eni-0123456789abcef01 取代為網路介面的 ID。您可以在 Amazon Elastic Compute Cloud (Amazon EC2) 主控台的網路介面頁面上找到此 ID。請將 us-east-1 取代為網路介面所在的 AWS 區域。
輸出會傳回使用此網路介面的 AWS 帳戶和指定區域中的 Lambda 函數和函數版本清單。如果您需要其中任何函數或函數版本,請勿刪除此網絡介面。
刪除 Lambda 建立的網路介面
若要刪除 Lambda 建立的網路介面,請完成下列步驟:
- 對於 Lambda ENI Finder 列出的每個未發佈的 Lambda 函數版本 ($LATEST),請採取下列其中一個動作:
變更 Amazon VPC 組態,以使用不同的子網路和安全群組。
-或-
中斷函數與 Amazon VPC 的連線。
- 對於所列每個已發佈的 Lambda 函數版本,請刪除此函數版本。
**注意:**您無法編輯已發佈的函數版本,因此無法變更 VPC 組態。
- 確認不再使用此網路介面。若要執行此操作,請再次執行 Lambda ENI Finder。
如果輸出未列出其他函數或函數版本,Lambda 會在 20 分鐘內自動刪除此網路介面。
相關資訊
如果我已達到 AWS 區域的限制,如何取得更多彈性網路介面?