Help us understand the problem. What is going on with this article?

aws-sam-localでランタイムの設定が無視される

More than 1 year has passed since last update.

みなさん enjoy serverless してますか?
昨年aws-sam-localのβがリリースされたのでローカルテスト用に使ってみようとしたのですが
その際になぜかランタイムの設定が読み込めなかったので原因と対処法をメモしておきます。

何が起きていたか

複数lamnda functionを管理する上で、共通化できる箇所(メモリサイズやランタイムなど)はひとまとめにしたかったので、以下のようにGlobalを使って管理してました。(抜粋。実際はDynamoの設定や他にも関数があります)

template.yml
Globals:
  Function:
    Runtime: python3.6
    Timeout: 15
    MemorySize: 256
    Environment:
      Variables:
        TABLE_NAME: !Ref SamSampleDynamoTable
Resources:
  UserIndex:
    Type: AWS::Serverless::Function
    Properties:
      Handler: index.lambda_handler
      Role: #{Arn}
      CodeUri: 'functions/users/index.py'

sam local start-api を実行すると以下のWARNINGが

Ignoring UserCreate (create.lambda_handler) due to unsupported runtime ()
Ignoring UserIndex (index.lambda_handler) due to unsupported runtime ()

WARNING: Could not find function for [GET] to /users resource
WARNING: Could not find function for [POST] to /users resource

あれ、公式サイト をみても python3.6 はサポートされてるって書いてあるけどな。。と思いいろいろ調べてみると以下のようなISSUEが切られてました。
https://github.com/awslabs/aws-sam-local/issues/226

原因

現状 Global セクションにランタイムの設定が書かれている場合、無視されてしまうようです。

ベータなので(ISSUEも切られてますし)これから対応されることが予想されますが、取り急ぎ開発を進めたい方は各ファンクションにランタイムの設定を書くことで上記エラー(正確にはエラーにはなっていないですが)を回避することができます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした