おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

スクレイピングバッチアプリをAWS Lambdaへアップロードしてみた。

はじめに

スクレイピングバッチアプリをAWS Lambdaへアップロードしてみました。
今回はその手順を備忘録として残しておこうと思います。

AWS Toolkit for Visual Studioのインストール

こちらからダウンロード&インストールを行います。

aws.amazon.com

既存のASP.NET Coreプロジェクトのフレームワークを.NET 5から.NET Core 3.1へ変更する

調べた感じですと、まだAWS Lambdaでは.NET 5がサポートされていないようだったので.NET Core3.1へフレームワークを変更しました。 frameworkChange.png

既存のASP.NET CoreプロジェクトファイルへAWS情報を入れる。

PropertyGroup要素へ以下を追加します。

<AWSProjectType>Lambda</AWSProjectType>
<!-- This property makes the build directory similar to a publish directory and helps the AWS .NET Lambda Mock Test Tool find project dependencies. -->
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

上記の設定後、プロジェクトを右クリックするとLambdaへの公開オプションが見れるようになります。 publishLambda.png

AWS Explorerの設定

"表示" > "AWS Explorer"を選択すると画面左側にAWS Explorerが表示されるので赤枠部分をクリックします。 awsExplorer.png

アカウント情報を入力します。 ProfileNameは任意の値を入れ、Access Key IDやSecret Access Keyは任意のIAMユーザの情報を入れて"OK"ボタンを押します。 NewAccountProfile.png

AWS Lambdaへアップロードする

プロジェクトを右クリックし、"Publish to AWS Lambda..."を選択します。

選択後、以下の画面が出てくるかと思います。 それぞれの項目へ値を入れていきます。

ラベル名 説明
Package Type Lambdaへのアップロード形式
Lambda Runtime ランタイム情報
Function Name Lambda関数の名前(任意の名前を入力)
Description Lambda関数の説明
Configuration Release
Framework netcoreapp3.1
Assembly アセンブリ名(デフォルトではプロジェクト名になっていると思います)
Type プロジェクト名.エントリーポイントのクラス名
Method エントリーポイント

UploadLambdaFunction.png

"Next"をクリックすると以下の画面が表示されます。 Role Nameには任意のRoleを割り当てます(ない場合は作成する必要があります。) "Memory"項目ではLambda 関数が使用できるメモリの量を設定し、"Timeout"項目ではタイムアウトさせる時間を設定します。 UploadLambdaFunction2.png

設定完了後、"Upload"ボタンをクリックします。

アップロードが完了するまで待ちます。 uploading.png

完了したらAWS Lambdaへアップロードされていることが確認できます。 lambdaonaws.png

おわりに

今回はAWS Lambdaへアップロードした内容のみですが、以下の記事にてAmazon EventBridgeと組み合わせて定期的に動くようにしてみました~!

oooomincrypto.hatenadiary.jp