aws cloudformationは何となく分かったので、SAM(Serverless Application Model)でHello,worldしてみた。意外と大変!

aws cloudformationは何となく分かったので、SAM(Serverless Application Model)でHello,worldしてみた。意外と大変!

参考URL
https://qiita.com/y4u0t2a1r0/items/2d27eed7afd4e4ffbab5

概要:
1, ローカルのSAMで、cloudformationのhello,worldテンプレートを作成
2, スタックその1(aws-sam-cli-managed-default)が生成され、S3にcloudformationのテンプレートがアップロードされる
3, S3のテンプレートを元に、スタックその2(sam-app)が生成され、Hello,worldが出来る。

Windows10に、AWS SAM CLI のインストール。どっかにDocker必要って書いてあったような気がするけど、普通にcliだけで動作した。
https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-sam-cli-install-windows.html

1, 対話式にSAMプロジェクト生成

2, ビルド&デプロイ

3, 上手く行かなかったので、オプションを変えて再トライ

4, hello,wordしたいだけなのに、えらいリソースが作られた…。
これを見るに、API Gateway経由でlambdaを読み込んでhello,worldするんだろうね(Roleはlambda実行権限)
AWS::Lambda::Function
AWS::Lambda::Permission
AWS::IAM::Role
AWS::ApiGateway::RestApi
AWS::ApiGateway::Deployment
AWS::ApiGateway::Stage

api gatewayのダッシュボードにあるURLの末尾にhelloメソッドを付けてアクセスすると、{“message”:”hello world”}と返ってくる(コンソールの最後にもURLは表示される)
https://yi42p72683.execute-api.ap-northeast-1.amazonaws.com/Prod/hello

デプロイの権限とか特に入力しなかったんだけど、aws-cliの奴を使ったのかな?

スタックの削除は、SAMから出来ない?
コンソール画面から削除するか、コマンドラインのみ?
aws cloudformation delete-stack –stack-name sam-app

S3が邪魔でスタックが削除出来ないというので、手動で削除。これで正しいのだろうか…。