メニュー
AWS Lambda
開発者ガイド

デプロイパッケージの作成

Lambda 関数を作成するには、最初に Lambda 関数デプロイパッケージ (コードと依存関係で構成される .zip または .jar ファイル) を作成します。zip を作成するときは、コードおよび依存関係のみを含め、フォルダは含めません。zip パッケージでセキュリティのアクセス権限を適切に設定する必要があります。

Lambda デプロイパッケージのアクセス権限ポリシー

アップロードされた zip パッケージのアクセス権限が正しくないと、実行エラーの原因になることがあります。AWS Lambda では、デプロイパッケージを構成するコードファイルおよび任意の依存ライブラリにグローバルの読み取り権限が必要です。以下のサンプルを使用して、ユーザーアカウントに対するアクセス権限が制限されていないことを確認できます。

  • Linux/Unix/OSX 環境 : zipinfo を下の例に示すように使用します。

    $ zipinfo test.zip Archive: test.zip Zip file size: 473 bytes, number of entries: 2 -r-------- 3.0 unx 0 bx stor 17-Aug-10 09:37 exlib.py -r-------- 3.0 unx 234 tx defN 17-Aug-10 09:37 index.py 2 files, 234 bytes uncompressed, 163 bytes compressed: 30.3%

    -r-------- は、このファイルの所有者のみに読み取りアクセス権限があることを示します。個の場合、Lambda 関数の実行が失敗する可能性があります。必要なグローバル読み取りアクセス権限がある場合は、以下のように表示されます。

    $ zipinfo test.zip Archive: test.zip Zip file size: 473 bytes, number of entries: 2 -r--r--r-- 3.0 unx 0 bx stor 17-Aug-10 09:37 exlib.py -r--r--r-- 3.0 unx 234 tx defN 17-Aug-10 09:37 index.py 2 files, 234 bytes uncompressed, 163 bytes compressed: 30.3%

    これを再帰的に解決するには、次のコマンドを実行します。

    $ chmod 644 $(find /tmp/package_contents -type f) $ chmod 755 $(find /tmp/package_contents -type d)
    • 最初のコマンドで、/tmp/package_contents のすべてのファイルが、所有者に対して読み取り/書き込みアクセス権限を持ち、グループおよびグローバルに対して読み取りアクセス権限を持つように変更します。

    • 2 番目のコマンドで、同じ権限をディレクトリにカスケードします。

注記

Windows 環境で実行している場合は、zipinfo ではなく 7-Zip を使用することをお勧めします。

完了したら、パッケージで必要な IAM アクセス権限を設定します。詳しくは AWS Lambda に対する認証とアクセスコントロール ポリシーを参照してください。