ããã«ã¡ã¯ãã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¹é¨ãã£ããããã¡ã³ããµã¼ãã¹ 1 èª²ã®æ»æ¾¤ã§ãã
æ¬è¨äºãã覧ããã ããããã¨ããããã¾ãã
æ¬è¨äºã¯ AWS Serverless Application Modelï¼ä»¥ä¸ãSAMï¼ ã§ãã©ã¡ã¼ã¿ãæ±ãæ¹æ³ã«ã¤ãã¦èª¬æãã¾ãã
SAM ã®æ¦è¦ã«ã¤ãã¦ã¯ãã¡ãã®è¨äºãã覧ãã ããã
- åæï¼SAM ããã¸ã§ã¯ãã®åæåï¼
- SAM ã§ãã©ã¡ã¼ã¿ã使ç¨ããæ¹æ³
- ãããã¤ãã¦ã¿ã
- çµããã«
åæï¼SAM ããã¸ã§ã¯ãã®åæåï¼
SAM CLI ã¯å·çæç¹ã§ææ°ã®version 1.108.0
ã使ç¨ãã¦ãã¾ãã
ä»å㯠AWS ãç¨æãã¦ãããã³ãã¬ã¼ãã®Hello World Example
ã使ç¨ãããã¨ã«ãã¾ããã
以ä¸ã®ã³ãã³ãã使ç¨ãããã¨ã§å¯¾è©±å½¢å¼ã§æ°ãããµã¼ãã¼ã¬ã¹ã¢ããªã±ã¼ã·ã§ã³ãåæåãããã¨ãã§ãã¾ãã æ¬è³ªã§ã¯ãªãã®ã§è©³ãã説æã¯å²æãã¾ãã
sam init
$ sam init Which template source would you like to use? 1 - AWS Quick Start Templates 2 - Custom Template Location Choice: 1 Choose an AWS Quick Start application template 1 - Hello World Example 2 - Data processing 3 - Hello World Example with Powertools for AWS Lambda 4 - Multi-step workflow 5 - Scheduled task 6 - Standalone function 7 - Serverless API 8 - Infrastructure event management 9 - Lambda Response Streaming 10 - Serverless Connector Hello World Example 11 - Multi-step workflow with Connectors 12 - GraphQLApi Hello World Example 13 - Full Stack 14 - Lambda EFS example 15 - Hello World Example With Powertools for AWS Lambda 16 - DynamoDB Example 17 - Machine Learning Template: 1 ï¼ä»¥ä¸ç¥ï¼
SAM ã§ãã©ã¡ã¼ã¿ã使ç¨ããæ¹æ³
template.yaml ã«Parameters
ã»ã¯ã·ã§ã³ã追å ãã
template.yaml
ã«ä»¥ä¸ã® Parameters ã»ã¯ã·ã§ã³ã追å ãããã®ãã©ã¡ã¼ã¿ã使ç¨ãããç®æã§ Ref 颿°ãå¼ã³åºãã¾ãã
... Parameters: SampleParam01: Type: String Description: A sample parameter ... Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: FunctionName: !Ref SampleParam01 ...
ããã§ template.yaml ãã¡ã¤ã«ã§ãã©ã¡ã¼ã¿ãåãåãæºåãå®äºãã¾ããã
template.yaml ã«ãã©ã¡ã¼ã¿ãæ¸¡ãæ¹æ³
ãããã¤æã« --parameter-overrides
ã使ç¨ãã
sam deploy --parameter-overrides ParameterKey=ParameterValue
deploy æã« --parameter-overrides
ãªãã·ã§ã³ã使ç¨ãããã¨ã§ template.yaml ãã¡ã¤ã«ã«ãã©ã¡ã¼ã¿ã渡ããã¨ãã§ãã¾ãã
template.yaml ã« Parameters ã»ã¯ã·ã§ã³ã追å ãã
ã§æç¤ºããä¾ã ã¨
sam deploy --parameter-overrides SampleParam01=hoge
ã¨ãã£ãå½¢ã§æ¸¡ããã¨ãã§ãã¾ãã
ãæè»½ã§ã¯ããã¾ãããæ¯åæå®ããæéããã©ã¡ã¼ã¿æ°ãå¤ããªã£ãæã®ç®¡çã®ç ©éããããã¯ã§ãã
sam deploy --guided ã使ç¨ãã
ãããã¤æã«ä½¿ç¨ã§ãã --guided
ãªãã·ã§ã³ã¨ãããã®ãããã¾ãã
詳ããã¯ãã¡ãã®è¨äºãã覧ãã ããã
ãã®ãªãã·ã§ã³ã使ç¨ãããã¨ã§ããã³ãããç¨ããã¬ã¤ãã使ç¨ãããã¨ãå¯è½ã§ã
ãã®ä¸ã§ãã©ã¡ã¼ã¿ã«é¢ãã¦ãã1 ã¤ãã¤æå®ãããã¨ãå¯è½ã§ãã
ã¾ããããã³ããå
ã®Save arguments to configuration file
ã®é
ç®ã« yes
ã¨åçããå ´åã«ã¯ samconfig.toml ãã¡ã¤ã«ã«ãã©ã¡ã¼ã¿ã®è¨å®ãä¿åãã¦æ¬¡åããã®ãããã¤ã«ä½¿ç¨ãããã¨ãã§ãã¾ãã
samconfig.toml ãã¡ã¤ã«ã«è¨è¿°ãã
åç« ã§ samconfig.toml ãã¡ã¤ã«ã«ãã©ã¡ã¼ã¿å 容ãä¿åãããã¨ãã§ããã¨è¿°ã¹ã¾ãããã
ãã®ãã¡ã¤ã«ãç´æ¥å¤æ´ãããã¨ã§ template.yaml ã«æ¸¡ããã©ã¡ã¼ã¿ã®å 容ã夿´ãããã¨ããã¡ããå¯è½ã§ãã
parameter_overrides = "SampleParam01=hoge",
ãã©ã¡ã¼ã¿ãå¢ãã¦ã
parameter_overrides = [ "Param01=hoge", "Param02=fuga", "Param03= piyo", ... ]
ã¨ãã£ãå½¢ã§æ¸¡ããã®ã§ããããã¤æã®æéãå°ãªãæ¸ã¿ã¾ãã
3種é¡ã®æ¹æ³ããç´¹ä»ãã¾ããããåºæ¬çã«ã¯ samconfig.toml ãã¡ã¤ã«ã«è¨è¿°ããæ¹æ³ã管çãããããã®ã§ããããã§ãã
ãããã¤ãã¦ã¿ã
samconfig.toml ãã¡ã¤ã«ã«è¨è¿°ãã
ã®æ¹æ³ã§å®éã«ãããã¤ãå®è¡ãã¦ã¿ã¾ãã
samconfig.toml å
parameter_overrides = "SampleParam01=hoge",
以ä¸ã®ã³ãã³ããå®è¡ãã¾ãã
sam deploy
AWS ããã¸ã¡ã³ãã³ã³ã½ã¼ã«ãè¦ãã¨å®éã«ãã©ã¡ã¼ã¿ã§æå®ããå¤ã Lambdaï¼HelloWorldFunctionï¼ã®é¢æ°åã«ä½¿ç¨ããã¦ããã®ã確èªã§ãã¾ããã
çµããã«
æå¾ã¾ã§ãèªã¿é ããããã¨ããããã¾ããã
æ¬è¨äºã§ã¯ SAM ã§ã®ãã©ã¡ã¼ã¿ã®æ±ãæ¹ã«ã¤ãã¦èª¬æãã¾ããã æ¬¡åããã¹ããããã¹ã¿ãã¯ã§ã®ãã©ã¡ã¼ã¿ã®åãæ¸¡ãã«ã¤ãã¦ã®è¨äºãå·çäºå®ã§ãã®ã§ãã²ãã¡ããã覧ããã ããã°ã¨æãã¾ãã
æ¬è¨äºãå°ãã§ããå½¹ã«ç«ã¦ãã°å¹¸ãã§ãã
æ»æ¾¤ ç¨(å·çè¨äºã®ä¸è¦§)
ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¹é¨ãã£ããããã¡ã³ããµã¼ãã¹1課
2022å¹´ã«æ°åã§å ¥ç¤¾ãã¾ããã ãã©ãã大好ç©ã§ãã