serverless로 CLI에서 lambda 배포
8395 단어 람다ServerlessFrameworkAWSNode.js
개요
AWS
의 lambda
는 AWS Management Console
에 직접 쓸 수 있지만,git
에서 소스 코드를 관리하고 CLI에서 배포하고 싶지 않습니까?
이 문서에서는 Serverless을 사용하여Node.js
에서 구현한 샘플을 lambda
에 배포하는 절차의 예를 보여 줍니다.
필자가 CLI에서의 AWS 조작에 별로 없었던 것도 있어, 본 기사에서는 AWS Management Console
에서의 조작 순서도 약간 파고 들어 기재하고 있습니다만,Serverless
의 기본 기능은 Serverless의 메인터너이기도 하다 @horike37 씨의 아래의 기사에 의해 자세하게 정리되어 있으므로, 그쪽을 참조해 주시는 것이 좋다고 생각했습니다.
Serverless Framework 사용법 요약
awscli 설치
$ brew install awscli
배포 사용자의 액세스 키 가져오기
배포에 사용하는 계정으로 awscli로 로그인하려면 AWS Management Console
에서 사용자 자격 증명을 가져옵니다.
$ brew install awscli
배포 사용자의 액세스 키 가져오기
배포에 사용하는 계정으로 awscli로 로그인하려면 AWS Management Console
에서 사용자 자격 증명을 가져옵니다.
IAM
-> Users
-> デプロイに使うユーザー
-> Security credentials
-> Create access key
Access key ID
및 Secret access key
를 보관하십시오. (Download .csv file
에서 CSV를 다운로드하는 것이 좋습니다.)배포 사용자에게 권한 부여
serverless에서 lambda를 배포하려면 배포 사용자에게 배포 권한이 있어야 합니다.
이 절에서는 정책 설정 절차의 예를 제공합니다.
IAM
-> Policies
-> Create policy
클릭 -> JSON
탭 클릭 {
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"iam:*",
"apigateway:*",
"s3:*",
"logs:*",
"lambda:*",
"cloudformation:*"
],
"Resource": "*"
}
]
}
※
Action
와 Resource
는, 보안의 관점에서는 필요한 정책이나 자원을 보다 한정적으로 지정하는 것이 바람직합니다만, 수가 많아 세부의 세탁이 힘들었기 때문에, 와일드 카드로 얽히게 지정했습니다.3. 정책 이름은 선택 사항이지만 여기에서는
lambdaDeployPolicy
예제로 정책을 만듭니다.4.
IAM
-> Users
-> 배포 사용자 선택 -> Add permissions
-> Attach existing policies directly
5. 3.
에서 만든 lambdaDeployPolicy
를 선택하고 Next: Review
-> Add permissions
에 정책 추가aws에 배포 사용자로 로그인
$ aws configure
AWS Access Key ID [None]: <Access key IDを貼り付け>
AWS Secret Access Key [None]: <Secret access key> を貼り付け
Default region name [None]: ap-northeast1
Default output format [None]: <そのままエンター>
serverless 설치
$ npm i -g serverless
serverless 프로젝트 생성
$ sls create --template aws-nodejs --path lambda-deploy-serverless
$ cd lambda-deploy-serverless
serverless 구성 파일 업데이트
기본값은 리전이 us-east1
이거나 API 게이트웨이 설정을 포함하지 않으므로 다음과 같이 지정합니다.
serverless.yml (업데이트)service: lambda-deploy-serverless
provider:
name: aws
runtime: nodejs8.10
stage: dev
region: ap-northeast-1 # ap-northeast-1リージョンにデプロイする
functions:
hello: # 関数名の指定
handler: handler.hello
events:
- http: # API Gatewayの指定
path: hello
method: get
다른 설정은 여기 참조:
htps : // / r ゔ ぇ r ぇ s. 이 m/f 라메를 rk/두 cs/p 로즈로 rs/아ws/구이로/세 rゔぇrぇs. yml/
배포
$ sls deploy
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service lambda-deploy-serverless.zip file to S3 (45.3 KB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
........................
Serverless: Stack update finished...
Service Information
service: lambda-deploy-serverless
stage: dev
region: ap-northeast-1
stack: lambda-deploy-serverless-dev
resources: 10
api keys:
None
endpoints:
GET - https://**********.execute-api.ap-northeast-1.amazonaws.com/dev/hello
functions:
hello: lambda-deploy-serverless-dev-hello
layers:
None
이렇게 람다가 배포되면 성공
오류가 발생하면 로그의 오류 부분을 참조하여 정책이 올바르게 설정되었는지 확인하십시오.
상세 로그를 표준 출력으로 출력하려면 다음과 같이 하십시오.
SLS_DEBUG=* serverless deploy
Reference
이 문제에 관하여(serverless로 CLI에서 lambda 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nemolize/items/27e2ec59a5fdde65e789
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ aws configure
AWS Access Key ID [None]: <Access key IDを貼り付け>
AWS Secret Access Key [None]: <Secret access key> を貼り付け
Default region name [None]: ap-northeast1
Default output format [None]: <そのままエンター>
$ npm i -g serverless
serverless 프로젝트 생성
$ sls create --template aws-nodejs --path lambda-deploy-serverless
$ cd lambda-deploy-serverless
serverless 구성 파일 업데이트
기본값은 리전이 us-east1
이거나 API 게이트웨이 설정을 포함하지 않으므로 다음과 같이 지정합니다.
serverless.yml (업데이트)service: lambda-deploy-serverless
provider:
name: aws
runtime: nodejs8.10
stage: dev
region: ap-northeast-1 # ap-northeast-1リージョンにデプロイする
functions:
hello: # 関数名の指定
handler: handler.hello
events:
- http: # API Gatewayの指定
path: hello
method: get
다른 설정은 여기 참조:
htps : // / r ゔ ぇ r ぇ s. 이 m/f 라메를 rk/두 cs/p 로즈로 rs/아ws/구이로/세 rゔぇrぇs. yml/
배포
$ sls deploy
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service lambda-deploy-serverless.zip file to S3 (45.3 KB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
........................
Serverless: Stack update finished...
Service Information
service: lambda-deploy-serverless
stage: dev
region: ap-northeast-1
stack: lambda-deploy-serverless-dev
resources: 10
api keys:
None
endpoints:
GET - https://**********.execute-api.ap-northeast-1.amazonaws.com/dev/hello
functions:
hello: lambda-deploy-serverless-dev-hello
layers:
None
이렇게 람다가 배포되면 성공
오류가 발생하면 로그의 오류 부분을 참조하여 정책이 올바르게 설정되었는지 확인하십시오.
상세 로그를 표준 출력으로 출력하려면 다음과 같이 하십시오.
SLS_DEBUG=* serverless deploy
Reference
이 문제에 관하여(serverless로 CLI에서 lambda 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nemolize/items/27e2ec59a5fdde65e789
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ sls create --template aws-nodejs --path lambda-deploy-serverless
$ cd lambda-deploy-serverless
기본값은 리전이
us-east1
이거나 API 게이트웨이 설정을 포함하지 않으므로 다음과 같이 지정합니다.serverless.yml (업데이트)
service: lambda-deploy-serverless
provider:
name: aws
runtime: nodejs8.10
stage: dev
region: ap-northeast-1 # ap-northeast-1リージョンにデプロイする
functions:
hello: # 関数名の指定
handler: handler.hello
events:
- http: # API Gatewayの指定
path: hello
method: get
다른 설정은 여기 참조:
htps : // / r ゔ ぇ r ぇ s. 이 m/f 라메를 rk/두 cs/p 로즈로 rs/아ws/구이로/세 rゔぇrぇs. yml/
배포
$ sls deploy
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service lambda-deploy-serverless.zip file to S3 (45.3 KB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
........................
Serverless: Stack update finished...
Service Information
service: lambda-deploy-serverless
stage: dev
region: ap-northeast-1
stack: lambda-deploy-serverless-dev
resources: 10
api keys:
None
endpoints:
GET - https://**********.execute-api.ap-northeast-1.amazonaws.com/dev/hello
functions:
hello: lambda-deploy-serverless-dev-hello
layers:
None
이렇게 람다가 배포되면 성공
오류가 발생하면 로그의 오류 부분을 참조하여 정책이 올바르게 설정되었는지 확인하십시오.
상세 로그를 표준 출력으로 출력하려면 다음과 같이 하십시오.
SLS_DEBUG=* serverless deploy
Reference
이 문제에 관하여(serverless로 CLI에서 lambda 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nemolize/items/27e2ec59a5fdde65e789
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ sls deploy
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service lambda-deploy-serverless.zip file to S3 (45.3 KB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
........................
Serverless: Stack update finished...
Service Information
service: lambda-deploy-serverless
stage: dev
region: ap-northeast-1
stack: lambda-deploy-serverless-dev
resources: 10
api keys:
None
endpoints:
GET - https://**********.execute-api.ap-northeast-1.amazonaws.com/dev/hello
functions:
hello: lambda-deploy-serverless-dev-hello
layers:
None
SLS_DEBUG=* serverless deploy
Reference
이 문제에 관하여(serverless로 CLI에서 lambda 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nemolize/items/27e2ec59a5fdde65e789텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)