Lambda が作成した Elastic Network Interface をデタッチまたは削除できないのはなぜですか?

所要時間2分
1

AWS Lambda が作成した Elastic Network Interface をデタッチまたは削除しようとすると、 「You are not allowed to manage 'ela-attach' attachments」というエラーメッセージが表示されます。

簡単な説明

Amazon Virtual Private Cloud (Amazon VPC) 内のリソースにアクセスするように Lambda 関数を設定すると、Lambda はその関数をネットワークインターフェイスに割り当てます。このネットワークインターフェイスは Lambda サービスを介してのみ削除できます。ネットワークインターフェイスが表すリソースを削除すると、Lambda は自動的にネットワークインターフェイスをデタッチして削除してください。未使用のネットワークインターフェイスを削除する際、Lambda サービスはネットワークインターフェイスを作成した関数の実行ロールを使用します。

ネットワークインターフェイスは、それらを作成した関数と同じ Amazon VPC 設定の関数または関数バージョンで使用される場合があります。この場合、ネットワークインターフェイスは削除できません。

現在、ネットワークインターフェイスを使用している関数または関数バージョンを確認するには、GitHub ウェブサイトの「Lambda ENI Finder」の bash スクリプトを使用してください。詳細については、「リクエスタマネージド型のネットワークインターフェイス」を参照してください。

**注:**Lambda は、同じ Amazon VPC 設定の複数の関数でネットワークインターフェイスを共有します。ネットワークインターフェイスを共有すると、AWS アカウントで使用されるネットワークインターフェイスの数を減らすことができます。

解決策

**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

Lambda ENI Finder を実行して、ネットワークインターフェイスを使用する関数と関数バージョンを特定します

**注:**次のコマンドは Linux、Unix、および macOS オペレーティングシステムでのみ有効です。

ネットワークインターフェースを使用する機能と機能バージョンを特定するには、次の手順を実行してください。

  1. Lambda とネットワークインターフェイスをクエリする権限を持つ AWS Identity and Access Management (IAM) ロールを使用して AWS CLI を設定します。詳細については、Execution role and user permissionsを参照してください。
    **注:**Lambda は、関数の実行ロールのアクセス許可を使用して、Hyperplane Elastic Network Interface を削除します。Lambda が Hyperplane Elastic Network Interface を削除する前に、実行ロールを削除しないでください。

  2. コマンドライン JSON プロセッサー jq を jq のウェブサイトからインストールします。

    $ sudo yum install jq -y
  3. Git がインストールされていることを確認してください。

    $ sudo yum install git -y

    Git をインストールするには、Git ウェブサイトのGetting started - Installing Gitを参照してください。

  4. GitHub ウェブサイトから aws-support-tools GitHub リポジトリのクローンを作成します。

    $ git clone https://github.com/awslabs/aws-support-tools.git
  5. ディレクトリを Lambda ENI Finder の場所に移動します。

    $ cd aws-support-tools
    $ cd Lambda
    $ cd FindEniMappings
  6. 削除するネットワークインターフェイスの Lambda ENI Finder を実行します。

    ./findEniAssociations --eni eni-0123456789abcef01 --region us-east-1

    注:eni-0123456789abcef01 は、ネットワークインターフェイスの ID に置き換えてください。ID は Amazon Elastic Compute Cloud (Amazon EC2) コンソールの**[ネットワークインターフェイス]** ページで確認できます。us-east-1 は、ネットワークインターフェイスがある AWS リージョンに置き換えてください。

出力には、ネットワークインターフェイスを使用する AWS アカウントと指定したリージョンの Lambda 関数と関数バージョンのリストが返されます。これらの機能または関数バージョンのいずれかが必要な場合は、ネットワークインターフェイスを削除しないでください。

Lambda が作成したネットワークインターフェイスを削除する

Lambda が作成したネットワークインターフェイスを削除するには、次の手順を実行してください:

  1. Lambda ENI Finder にリストされている未公開の Lambda 関数バージョン ($LATEST) ごとに、次のいずれかの操作を実行してください:
    別のサブネットとセキュリティグループを使用するように Amazon VPC 設定を変更します。
    または、
    関数を Amazon VPC から切断します。
  2. リストに表示されている公開済みの Lambda 関数バージョンごとに、その関数バージョンを削除します。
    **注:**公開されている関数のバージョンは編集できないため、VPC 設定を変更することはできません。
  3. ネットワークインターフェイスが使用されていないことを確認してください。これを行うには、Lambda ENI Finder をもう一度実行します。

出力に他の関数や関数のバージョンがない場合、ラムダは20分以内にネットワーク・インターフェイスを自動的に削除してください。

関連情報

AWS リージョンの上限に達した場合に、Elastic Network Interface を増やす方法を教えてください。

AWS公式
AWS公式更新しました 2ヶ月前
コメントはありません

関連するコンテンツ