※
バージョン
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.11.6
BuildVersion: 15G1004
$
$ $(npm bin)/sls -v
1.0.0-rc.2
$
何がしたかったか
serverless.yml に profile を直接書きたくなかった。
service: new-service
provider:
name: aws
runtime: nodejs4.3
stage: ${opt:stage, self:custom.defaultStage}
profile: ${self:custom.profiles.${self:provider.stage}}
custom:
defaultStage: dev
profiles:
#ここ
dev: devProfile
#ここ
prod: prodProfile
みたいにprofile名を直接書いちゃうとgit repoにのせずらいなーと思った。
なおかつ、slsコマンドが AWS_DEFAULT_PROFILE
環境変数を見ない感じだった。
こうした
service: test-sls-v1
provider:
name: aws
runtime: python2.7
stage: ${opt:stage, self:custom.defaultStage}
#profileオプション追加
profile: ${opt:profile, self:custom.defaultProfile}
#regionオプション追加
region: ${opt:region, self:custom.defaultRegion}
custom:
defaultStage: dev
#何も指定がなければ default profile
defaultProfile: default
#何も指定がなければ 東京リージョン
defaultRegion: ap-northeast-1
functions:
hello:
handler: handler.hello
こんな感じでprofileオプションを指定できるので AWS CLIぽく使える。
$ $(npm bin)/sls deploy --profile hogehoge-user
参考:
serverless/credentials.md at master · serverless/serverless
https://github.com/serverless/serverless/blob/master/docs/providers/aws/guide/credentials.md