circleCI에서 aws cli를 사용하여 lamda 환경에 배포
10539 단어 자동화CloudFormationCircleCI2.0람다
h tps : // / rc ぇ시. 코 m / 오 rbs / 레기 스트리 / 오 rb / 시 rc ぇ시 / 아 ws-c ぃ
이 기사에서 할 일
vue.js에서 만든 프로젝트를 Git으로 푸시 할 때 CircleCi가 빌드하고 배포하도록합니다.
cloudFormation의 cli를 이용하여 배포하고 싶기 때문에 aws 명령을 사용할 수 있도록하고 싶습니다.
CircleCI 설정
환경 변수 추가
환경 변수를 설정합니다.
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_DEFAULT_REGION
게다가, 이번 cloudFormation에서 Lamda에 업로드하는 빌드 완료 코드의 두는 장소에 S3 버킷을 지정하고 있는 것과, 스택명의 지정을 하고 있으므로 환경 변수에 더해 둡니다. 베타 쓰기도 좋다고 생각합니다.
- S3_BUCKET_NAME
- STACK_NAME
사용하는 IAM의 전환을 하고 싶은 경우는 환경 변수를 추가해 두고, 인수로서 주면 전환을 할 수 있을 것 같습니다.
config.yml 작성
완성된 yaml입니다.
version: 2.1
orbs:
aws-cli: circleci/[email protected]
executors:
default:
working_directory: ~/workspace
docker:
- image: circleci/node:12.10
commands:
prepare_node_dependency:
description: "install node.js"
steps:
- restore_cache:
key: dependency-cache-{{ checksum "package.json" }}
- run:
name: Install Dependencies
command: npm ci
- save_cache:
key: dependency-cache-{{ checksum "package.json" }}
paths:
- node_modules
- run:
name: Check if Nodejs is Installed
command: |
node --version
npm --version
package_and_deploy:
description: "build and deploy project"
steps:
- run:
name: build project
command: |
npm run build
- run:
name: create package
command: |
aws cloudformation package --template-file cloudformation.yaml --s3-bucket $S3_BUCKET_NAME --output-template-file cloudformation_dist.yaml
- run:
name: deploy package
command: |
aws cloudformation deploy --template-file cloudformation_dist.yaml --stack-name $STACK_NAME --capabilities CAPABILITY_IAM
jobs:
install_and_setup_cli:
executor:
name: default
steps:
- aws-cli/install
- aws-cli/setup
master_build_and_test:
executor:
name: default
steps:
- checkout
- aws-cli/install
- aws-cli/setup
- prepare_node_dependency
- package_and_deploy
workflows:
master-build:
jobs:
- master_build_and_test:
filters:
branches:
only: master
해설
orbs에 aws-cli를 지정합니다. 대응 버전은 2.1과 같습니다.
version: 2.1
orbs:
aws-cli: circleci/[email protected]
jobs에서 aws-cli/install과 aws-cli/setup을 지정합니다.
jobs:
install_and_setup_cli:
executor:
name: default
steps:
- aws-cli/install
- aws-cli/setup
기본값으로 환경 변수에 지정한 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION에서 프로파일을 작성하는 것 같습니다만, 인수로서 다른 값을 지정할 수도 있습니다.
steps:
- aws-cli/install
- aws-cli/setup:
aws-access-key-id: 'OthereAwsAccessKeyId'
aws-secret-access-key: 'OthereAwsAccessKeyId'
사용하려는 AWS cli를 commands에 씁니다.
commands:
#中略
package_and_deploy:
description: "build and deploy project"
steps:
- run:
name: build project
command: |
npm run build
- run:
name: create package
command: |
aws cloudformation package --template-file cloudformation.yaml --s3-bucket $S3_BUCKET_NAME --output-template-file cloudformation_dist.yaml
- run:
name: deploy package
command: |
aws cloudformation deploy --template-file cloudformation_dist.yaml --stack-name $STACK_NAME --capabilities CAPABILITY_IAM
단계에서 AWS cli 설치 및 구성이 완료된 후 실행합니다.
steps:
- checkout
- aws-cli/install
- aws-cli/setup
- prepare_node_dependency
- package_and_deploy
Reference
이 문제에 관하여(circleCI에서 aws cli를 사용하여 lamda 환경에 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/zero_046/items/4eda49b01456bd36ad44
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
환경 변수 추가
환경 변수를 설정합니다.
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_DEFAULT_REGION
게다가, 이번 cloudFormation에서 Lamda에 업로드하는 빌드 완료 코드의 두는 장소에 S3 버킷을 지정하고 있는 것과, 스택명의 지정을 하고 있으므로 환경 변수에 더해 둡니다. 베타 쓰기도 좋다고 생각합니다.
- S3_BUCKET_NAME
- STACK_NAME
사용하는 IAM의 전환을 하고 싶은 경우는 환경 변수를 추가해 두고, 인수로서 주면 전환을 할 수 있을 것 같습니다.
config.yml 작성
완성된 yaml입니다.
version: 2.1
orbs:
aws-cli: circleci/[email protected]
executors:
default:
working_directory: ~/workspace
docker:
- image: circleci/node:12.10
commands:
prepare_node_dependency:
description: "install node.js"
steps:
- restore_cache:
key: dependency-cache-{{ checksum "package.json" }}
- run:
name: Install Dependencies
command: npm ci
- save_cache:
key: dependency-cache-{{ checksum "package.json" }}
paths:
- node_modules
- run:
name: Check if Nodejs is Installed
command: |
node --version
npm --version
package_and_deploy:
description: "build and deploy project"
steps:
- run:
name: build project
command: |
npm run build
- run:
name: create package
command: |
aws cloudformation package --template-file cloudformation.yaml --s3-bucket $S3_BUCKET_NAME --output-template-file cloudformation_dist.yaml
- run:
name: deploy package
command: |
aws cloudformation deploy --template-file cloudformation_dist.yaml --stack-name $STACK_NAME --capabilities CAPABILITY_IAM
jobs:
install_and_setup_cli:
executor:
name: default
steps:
- aws-cli/install
- aws-cli/setup
master_build_and_test:
executor:
name: default
steps:
- checkout
- aws-cli/install
- aws-cli/setup
- prepare_node_dependency
- package_and_deploy
workflows:
master-build:
jobs:
- master_build_and_test:
filters:
branches:
only: master
해설
orbs에 aws-cli를 지정합니다. 대응 버전은 2.1과 같습니다.
version: 2.1
orbs:
aws-cli: circleci/[email protected]
jobs에서 aws-cli/install과 aws-cli/setup을 지정합니다.
jobs:
install_and_setup_cli:
executor:
name: default
steps:
- aws-cli/install
- aws-cli/setup
기본값으로 환경 변수에 지정한 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION에서 프로파일을 작성하는 것 같습니다만, 인수로서 다른 값을 지정할 수도 있습니다.
steps:
- aws-cli/install
- aws-cli/setup:
aws-access-key-id: 'OthereAwsAccessKeyId'
aws-secret-access-key: 'OthereAwsAccessKeyId'
사용하려는 AWS cli를 commands에 씁니다.
commands:
#中略
package_and_deploy:
description: "build and deploy project"
steps:
- run:
name: build project
command: |
npm run build
- run:
name: create package
command: |
aws cloudformation package --template-file cloudformation.yaml --s3-bucket $S3_BUCKET_NAME --output-template-file cloudformation_dist.yaml
- run:
name: deploy package
command: |
aws cloudformation deploy --template-file cloudformation_dist.yaml --stack-name $STACK_NAME --capabilities CAPABILITY_IAM
단계에서 AWS cli 설치 및 구성이 완료된 후 실행합니다.
steps:
- checkout
- aws-cli/install
- aws-cli/setup
- prepare_node_dependency
- package_and_deploy
Reference
이 문제에 관하여(circleCI에서 aws cli를 사용하여 lamda 환경에 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/zero_046/items/4eda49b01456bd36ad44텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)