CDK で書かれた API を AWS にデプロイします。以下の手順は全て /provision
ディレクトリで実施します。
CDK についての基本的なことは公式ドキュメントをご参照ください。CDK を実行するにあたって必要なものは 2 つで、1 つは AWS IAM の権限が設定された実行環境、もう一つは Node.js の実行環境です。
また、初めて CDK を利用する方は bootstrap する必要があります。以下のコマンドを実行しておいてください。
cdk bootstrap
AWS IAM にてユーザーを作成し、Access Key ID と Secret Access Key を以下のコマンドから設定します。設定には aws
コマンドを利用します。(aws コマンドのインストール方法)
aws configure
Node.js が実行可能な環境で、以下のコマンドを実行します。
npm install -g aws-cdk
cdk --version
が正常に実行できれば、インストールは完了です。
最初に、デプロイ先の Region を環境変数で指定します。
export AWS_DEFAULT_REGION=<region>
<region>
は ap-northeast-1
や us-east-1
など適切な Region に置き換えてください。
続いて、必要なモジュールをインストールします。以下のコマンドを実行してください。
npm install
/lambda
ディレクトリでも同様にモジュールのインストールが必要です。以下のコマンドを実行してください。
cd lambda; npm install; cd -;
続いて、Contract をコンパイルした生成物 (前の手順で作成したもの) を /lambda/contracts
にコピーします。以下のコマンドを実行してください。
cp ../contract/artifacts/contracts/SimpleERC721.sol/SimpleERC721.json lambda/contracts/.
続いて、CDK プロジェクトをビルドします。(TypeScript で書かれているため。) 以下のコマンドを実行してください。
npm run build
続いて、必要な環境変数を設定します。Amazon Managed Blockchain のエンドポイントとデプロイした Contract でアドレスは環境変数から読み取ります。AMB_HTTP_ENDPOINT
は Ethereum Testnet Goerli のノード作成 (Amazon Managed Blockchain) で作成したノードの HTTP エンドポイントで、CONTRACT_ADDRESS
は Contract のデプロイ でデプロイした Contract のアドレスです。以下のコマンドを適切な値に置き換えて実行してください。
export AMB_HTTP_ENDPOINT=https://<node id>.ethereum.managedblockchain.<region>.amazonaws.com
export CONTRACT_ADDRESS=0x...
最後に、デプロイを実施します。以下のコマンドを実行してください。
cdk deploy SimpleNftMarketplaceStack
以上でデプロイは完了です。デプロイ完了時に表示される API Gateway のエンドポイント、Congito の UserPool ID と Client ID の 3 つは後続の手順で必要になるので、転記しておいてください。
後続の手順で必要になるもの
- API Gateway のエンドポイント
- Congito User Pool の ID
- Cognito User Pool Client の ID
-> フロントエンドの動作確認