2017-04-13 11 views
1

したがって、私はBamboo CIサーバーをAWSのEC2インスタンスで稼働させることに取り組んできました。すべてがうまくいっている。しかし、私は1つの地獄の問題に取り組んだ。 CIの部分はうまく動作しますが、私のUbuntuベースのBambooサーバーで "dotnet lambda publish"を実行することによって開発されたアーティファクトが、Windowsマシン上で "dotnet lambda publish"を実行するのと比べて互換性のないパッケージを作成しているようです。私は、パッケージの内容に見てきたし、ファイルには目に見える違いはありませんが、Windows環境とUbuntu環境で "dotnet lambda package"を実行するパッケージが異なります

{ 
    "errorType": "LambdaException", 
    "errorMessage": "Unable to load assembly '<project-name>, Culture=neutral, PublicKeyToken=null'." 
} 

;:私は私のBambooサーバーによって生成されたパッケージを展開するとき、私は単純に次のエラーを取得しますファイルサイズには多少の違いがあります。 Ubuntuで生成されるパッケージは約14.8 MBで、Windows上で生成されるパッケージは約15.4 MBです。

誰でもこれらのパッケージプロセスの違いを説明できますか? Ubuntuをコンパイルするときに、なぜ私はより小さなパッケージを手に入れることができますか? Ubuntuパッケージがファイルが見つからないと不平を言っているのに私のWindowsパッケージがうまく動作しないのはなぜですか?

"dotnet lambda package"コマンドは、オペレーティングシステム環境に関係なく、ラムダコンテキスト用のビルドツールを具体的に使用すると想定していました。同じCLIコマンドを使用して異なる環境で異なる外観の互換性のないビルドを作成するのは変です。


編集:さらに調査すると、私はそれが「DOTNETラムダパッケージ」CLIの実行を介して、竹CIサーバー上で使用されているビュンプロセスとは何かを持っていると信じています。ローカルにWindowsマシンに持ってきて、パッケージをもう一度アップロードしようとすると失敗します。ちょっと調べてみると、Windowsでパッケージを解凍してから、右クリックして圧縮してzip形式のフォルダに戻してからもう一度アップロードすれば、まったく同じファイルの内容が始まりますワーキング。おそらく、 "dotnet lambda package"メソッドの実行中にzipを実行する際の問題でしょうか?

答えて

1

私の編集について理解した後、Amazon.Lambda.Toolsパッケージの作成を手伝ったアマゾンの人たちと連絡を取ることにしました。 Linuxマシンに "zip"がインストールされていないと、Windowsマシンを実行していると自動的に判断され、 "dotnet lambda package"で作成された最終パッケージを解凍するために不正な実行ファイルが選択されます。 。間違った実行可能ファイルを使用すると、適用されたchmodコマンドは持ち越されません。

簡単な修正、実行します。aptインストールのzip

これはあなたのUbuntuのボックスが正しいジップ実行可能ファイルを使用したzipファイルは問題なくラムダにアップロードすることができることを保証します。

https://github.com/aws/aws-lambda-dotnet/issues/100

+0

真剣に、この必要性はどこかAWS文書であることを〜 – user3682091

+0

右しかし!痛みの私の時間は他の誰かを時間を節約するのを助けてうれしい! –

関連する問題