You are here
Home > IT > SAMでlambdaアプリケーションを作成する①

SAMでlambdaアプリケーションを作成する①

チュートリアル: Hello World アプリケーションのデプロイ

https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html

上記を実行した際のログから確認するに下記に関連する権限が必要

  • API Gateway: HTTPアクセス
  • Cloud Formation: 関数デプロイ
  • S3:デプロイ用
  • IAM:Lambdaロール
  • Lambda:関数実行

sam deploy –guide実行した時のログから考えるにあながち間違っていないはず。

CloudFormation stack changeset
-------------------------------------------------------------------------------------------------------------
Operation                   LogicalResourceId           ResourceType                Replacement               
-------------------------------------------------------------------------------------------------------------
+ Add                       HelloWorldFunctionHelloWo   AWS::Lambda::Permission     N/A                       
                            rldPermissionProd                                                                 
+ Add                       HelloWorldFunctionRole      AWS::IAM::Role              N/A                       
+ Add                       HelloWorldFunction          AWS::Lambda::Function       N/A                       
+ Add                       ServerlessRestApiDeployme   AWS::ApiGateway::Deployme   N/A                       
                            xxx                nt                                                    
+ Add                       ServerlessRestApiProdStag   AWS::ApiGateway::Stage      N/A                       
                            e                                                                                 
+ Add                       ServerlessRestApi           AWS::ApiGateway::RestApi    N/A                       
-------------------------------------------------------------------------------------------------------------

たぶん↓のような感じでCloudFormationが動作しているはず。

  1. Lambda実行できるパーミッションを取得
  2. 取得したパーミッションを保持した IAMロールを作成
  3. Lambdaに関数登録
  4. API Gatewayにデプロイ
  5. API GatewayにデプロイしたAPIのステージをプロダクションに設定
  6. Rest APIでアクセスできるように設定

で、エンドポイントにアクセスするとHelloWorldが返ってくる。

CloudFormation outputs from deployed stack
--------------------------------------------------------------------------------------------------------------
Outputs                                                                                                      
--------------------------------------------------------------------------------------------------------------
Key                 HelloWorldFunctionIamRole                                                                
Description         Implicit IAM Role created for Hello World function                                       
Value               arn:aws:iam::xxx:role/sam-app-HelloWorldFunctionRole-xxx               

Key                 HelloWorldApi                                                                            
Description         API Gateway endpoint URL for Prod stage for Hello World function                         
Value               https://xxx.execute-api.ap-northeast-1.amazonaws.com/Prod/hello/                  

Key                 HelloWorldFunction                                                                       
Description         Hello World Lambda Function ARN                                                          
Value               arn:aws:lambda:ap-northeast-1:xxx:function:sam-app-                             
HelloWorldFunction-xxx                                                                             

コメントを残す

Top