Help us understand the problem. What is going on with this article?

夜な夜な夜なべしてサーバレスアーキテクチャにTRY!!

More than 3 years have passed since last update.

自己満足度★×∞
JavaScript+S3のWebホスティング機能でSPA
→AWS API Gatewayで外部公開
→AWS Lambda+DynamoDBでマイクロサービスを作成
http://blog.serverworks.co.jp/tech/2016/06/06/what_is_serverless/

1. AWS Lambda事始め

http://qiita.com/Keisuke69/items/fc39a2f464d14480a432
Mavenプロジェクトを整備してLambdaサンプルを作成:勿論Java!!(!?)...コンパイル言語のJavaだとLambdaのインラインエディタが使えないのね。

2. API Gatewayに登録

ここで少々嵌る。API GatewayとLambdaのマッピングがうまくいっていない...一度作成したAPIを削除してLambdaから登録し直したらOK
http://qiita.com/r7kamura/items/6420538789da95cd2f47

3. CSVからDynamoDBへのデータロード

Data Pipelineを使おうとしたが断念...ErrorsやWarningsなんてそう簡単に消えない。
https://docs.aws.amazon.com/ja_jp/datapipeline/latest/DeveloperGuide/dp-importexport-ddb-part1.html

3’【方針変換】CSVからDynamoDBへデータロードするJavaアプリを実装!

AWS DynamoDB SDK for Javaを駆使。
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/AppendixSampleDataCodeJava.html
MavenにDynamoDB SDKを追加。
https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-dynamodb/1.9.0
Java8のStream/ラムダ式コーディングをやってみたよ。
http://acro-engineer.hatenablog.com/entry/2014/03/12/112402

4. 接続先DynnamoDBのRegion変更方法

ここで少々嵌る。DynamoDB Java SDKの接続先Regionがどうしてもus-east-1(デフォルト)になる(日本でなく太平洋を渡ってしまう)...AmazonDynamoDBClilentの接続先Regionを変更する方法を突き止めた!
https://java.awsblog.com/post/Tx2IHRMVOFHSUO1/Working-with-Different-AWS-Regions

5. High-Level API: DynameDBMapperもチェキ。

https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBMapper.html

6. LambdaアプリへのDynamoDB SDKの組み込み

これは造作もない...はずだった。
Lambdaサーバ上でAWS Credentialsを指定するにはどーすんだ???
→LambdaにDynamoDBアクセスロールを付与すればOK
。。。最終的には、Lambdaに割り当てていたメモリサイズ(128MB)が小さすぎてAbortしていた、という結論...(Lambda初回読み出しは高負荷)

7. API GatewayのCORS(Cross-Origin Resource Sharing)制限に引っかかる...

この頁↓がネ申っている。
http://qiita.com/naomichi-y/items/999328ad910e5ab9589d

8. AjaxでPOST通信するワザ

SPA(Single Page Application)の真髄、
http://codaholic.org/?p=716

9. Web APIはとうとう完成だ。ハカセ,オメデトウゴザイマス!!

クライアント側をJavaScript/jQueryで実装中、ここでも嵌まる。JSONレスポンスがパースできない...まさか、送信時だけでなく、受信時にも「JSON.stringify()」が必要だったとは...orz
http://qiita.com/kazu56/items/56c717d98e29c6b72967

10. SPAクライアントHTML/JavaScriptを、S3(Webホスティング機能ON)に置いて、サーバレスアーキテクチャの完成ですっ!☆☆★

。。。ここまでやって本当は、薄々気づいている。Java、要らなかったんぢゃね?
「DynamoDBへの接続も、Lambdaアプリの実装も、JavaScriptでできる(Javaの必然性はない)。
 JavaScript(コンパイル不要)なら、AWS画面上のインラインエディタで開発できる。しかも画面周りはどうせJavaScriptぢゃないか」

でも、それでも、なんといわれようと、自分はJava派なのです。。。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした