【速報】CloudFormationのインラインコードでNode.js10.xが利用できます

昨日、シーズンインした渡辺です。

全国1000万のLambdaファンの皆様、おはようございます。 Lambda RuntimeのNodejs8.10のEOLが近づいていますが、如何お過ごしでしょうか?

既にアナウンスがあるように、2019年末以降、LambdaでNodejs8.10をランタイムとして選択できなくなります。 アップデートも来年2月にはできなくなるようです。 ところが、CloudFormationのインラインコードでLambdaを作る場合、Nodejs10.xが未対応で困っている人は多いのではないでしょうか・・・自分もその1人でした。 ロードマップには対応予定はあるものの、対応されずにNodejs8.10のまま、アップデートできなかったかと思います。

Nodejs10.x 対応しています!

何時の間にか対応されているようです。

---
AWSTemplateFormatVersion: 2010-09-09
Description: Nodejs10.x
Resources:
  LambdaRole:
    Type: AWS::IAM::Role
    Properties:
      Path: /service-role/
      RoleName: lamba_role
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - lambda.amazonaws.com
            Action:
              - sts:AssumeRole
      Policies:
        - PolicyName: Policy
          PolicyDocument:
            Version: 2012-10-17
            Statement:
              - Effect: Allow
                Action:
                  - logs:CreateLogGroup
                  - logs:CreateLogStream
                  - logs:PutLogEvents
                Resource: "*"
  Lambda:
    Type: AWS::Lambda::Function
    Properties:
      FunctionName: hello_10
      Handler: index.handler
      Role: !GetAtt LambdaRole.Arn 
      Runtime: nodejs10.x
      Code:
        ZipFile: !Sub |
          exports.handler = async (event) => {
            console.log(JSON.stringify(event, null, 2));
            return 'hello';
          }

やったね!