5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

新人エンジニアにすすめたい、あなたの勉強法をシェアしよう! by UdemyAdvent Calendar 2022

Day 7

AWS SDK V3 for JavaScript を学び始めた人に捧ぐ "aws-sdk" 検索は罠です

Last updated at Posted at 2022-12-02

背景

先月から Node, AWS, JavaScript/TypeScript を学び始めた初心者です。

初心者が理解するまで混乱していた内容についての共有です
AWS を以前からやられてる人であれば当たり前じゃんって話です

Amplify は・・違った・・

現在の AWS-SDK の最新は V3

見分け方は多分こんな感じ。間違ってないといいですが

import では "@aws-sdk/{service}" が V3

分かってるなら、ここだけですぐ見分けられると思います

  • V2: import {...} from 'aws-sdk'
  • V3: import {...} from '@aws-sdk/client-dynamodb'

例こそが人に伝える唯一の手段だ」という有名?な言葉があります。

当然、概要把握をして、Sample Code を検索するかと思いますけど、
ここで、圧倒的に多い V2 のコードに引き摺られると、無駄な時間を消費してしまうので注意

url に V2/V3を確認

  • V2
    image.png
  • V3
    image.png

当たり前だと思うかと思いますけど・・初心者だと以下のような状況に対応するのは難しいです。
特に、Node や JavaScript すら初心者だと拠り所がなくて迷子の気分でした。

実際に Google で検索した場合の例が以下です

  1. "aws-sdk" lambda を検索して、日付も新しいのでを選択すると・・
    image.png

  2. 公式のチュートリアル的な感じで、よし学ぶぞーって進めると混乱しかありません
    ここで問題なのは、SDK は最新版=V3を利用することになるのに、Sample Code は V2 のままで動かない
    image.png

V2 のコードは、やりたい事の参考に

認識さえしていれば、以下のような用途に利用できるとは思います。

  • 対象サービスでどんなことが出来るか?
  • Input/Output パラメータの例

V3 での V2 対応用のレガシー機能に気を付ける

検索でなんとなくやり方を見つけて SDK を使おうとすると、後方互換性の為に残している機能(レガシー)を使ってしまうことがあるので、使う際には、ちゃんと公式ドキュメントを見るようにしましょう

DynamoDB の UpdateCommand は、AttributeUpdates ではなく UpdateExpression で

image.png

UpdateExpression 使いましょうってなってたりします。
image.png

  • UpdateExpression

  • AttributeUpdates

Amplify の場合は、aws-amplify が最新 V5.x.x 系

てっきり、@ 付きが最新化と思ったらなんか違った・・

install 自体は 以下だけど

npm install -g @aws-amplify/cli

Amplify 5.x.x has breaking changes. Please see the breaking changes below:
If you are using default exports from any Amplify package, then you will need to migrate to using named exports. For example:

- import Amplify from 'aws-amplify';
+ import { Amplify } from 'aws-amplify'

- import Analytics from '@aws-amplify/analytics';
+ import { Analytics } from '@aws-amplify/analytics';
// or better
+ import { Analytics } from 'aws-amplify';

- import Storage from '@aws-amplify/storage';
+ import { Storage } from '@aws-amplify/storage';
// or better
+ import { Storage } from 'aws-amplify';

AWS SDK For JavaScript Code Sample

VS Code で紹介されてる Sample

あとがき

チュートリアルやサンプルが V2 であることがまだまだ多いので、V3 を見極めていけると学習時間短縮に繋がるのではないかな?と
その為には、V3 の公式ドキュメントにあるチュートリアル&サンプルを利用するのが一番なんでしょうね。

とはいえ、他のサンプルも探したくなるので、検索をする際にはお気を付けくださいな

Udemy お勧めの記事について

AWS の記事書いておきながら・・ですが、
MS の Power Platform が好きです :p

その中でも、Power BI は、ソフト系じゃない人にこそ是非使ってもらいたいなって思ってて、これ使えば Excel でせこせこ集計作業とかしてる無駄作業が一掃できるのにって思ってるからこそのお勧め講座です。
Power BIの基本 -初学者~中級者に「準備・視覚化・共有」の3ステップで、データの見える化と分析の基本が身につく
※そんな人がこの記事見るとは思えませんが :laughing:

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?