참고 : 기존 Azure function을 옮기는 경우, 일단 새로 생성하고 코드를 옮기는게 낫습니다. 프로젝트 구조가 아예 달라서 새로 만드는걸 추천합니다..
1. 람다 생성
새로운 람다를 생성합니다.
2. IAM User 생성 또는 선택
AWSLamdbdaFullAccess 권한을 가진 IAM User를 생성하거나, Access key ID & Secret을 준비합니다.
프로그래밍 방식 액세스 타입이어야 합니다.
3. Azure Repo 생성
리포지토리를 생성하고 파일을 추가합니다. 처음엔 아래와 같은 구조로 생성하면 됩니다.
my-lambda
├── index.js
└── .env
// index.js
exports.handler = (event, context, callback) => {
// TODO implement
callback(null, 'Hello from Lambda via Azure Pipelines');
};
// .env
AWS_ENVIRONMENT=
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_PROFILE=
AWS_SESSION_TOKEN=
AWS_ROLE_ARN=
AWS_REGION=
AWS_FUNCTION_NAME=
AWS_HANDLER=index.handler
AWS_MEMORY_SIZE=128
AWS_TIMEOUT=3
AWS_DESCRIPTION=
AWS_RUNTIME=nodejs10.x
AWS_VPC_SUBNETS=
AWS_VPC_SECURITY_GROUPS=
AWS_TRACING_CONFIG=
AWS_LOGS_RETENTION_IN_DAYS=
EXCLUDE_GLOBS=
PACKAGE_DIRECTORY=build
.env 파일 빈칸은 안채워넣어도 됩니다. 런타임 도중에 채워진다고 합니다. 빈칸이어도 필요는 하다고 하네요.
위 두 파일을 repo에 푸시합니다.
4. 파이프라인 생성
pool:
vmImage: 'Ubuntu 16.04'
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
- script: |
npm install
npm install node-lambda -g
displayName: 'npm install'
- script: |
node-lambda deploy -a $(AWS_ACCESS_KEY) -s $(AWS_SECRET_KEY) -o $(AWS_ROLE) -r $(AWS_REGION) -n $(AWS_LAMBDA_FUNCTION_NAME) --excludeGlobs "azure-pipelines.yml"
displayName: 'Deploy to AWS'
위와 같이 파이프라인을 생성합니다. 환경변수가 없어서 실패하니 자동으로 트리거된 배포는 취소하면 됩니다.
5. 환경변수 등록
파이프라인 환경변수를 등록합니다. 우상단 Variables 버튼입니다.
– AWS_ACCESS_KEY, AWS_SECRET_KEY, AWS_ROLE, AWS_REGION, AWS_LAMBDA_FUNCTION_NAME
네가지만 입력하면 됩니다. AWS_ACCESS_KEY, AWS_SECRET_KEY는 ㅁ Keep this value secret 체크박스에 체크해주세요.
role은 역할 arn 입력하면 되고 리전은 ap-northeast-2 같이 입력하면 됩니다.
6. Run Pipeline
아마 별문제없이 배포될것입니다. 이제 람다 코딩을 하면 됩니다.
아래와 같은 구조를 유지해야 합니다.
my-lambda
├── index.js
├── .env
├── package.json
└── node_modules
├── ...
├── ...
~끝~
'Web development > Infra' 카테고리의 다른 글
How to Register Git Credential Key in Sourcetree (0) | 2023.05.24 |
---|---|
Azure Pipeline node.js 람다 배포 템플릿 만들기 (0) | 2020.09.11 |
[Azure to EKS] Azure App Service -> k8s 이전시 환경변수 변환 스크립트 (0) | 2020.06.19 |
[EKS] 쿠버네티스에 AWS Credential 추가하기 (2) | 2020.06.10 |
[AWS] CodeStar로 브랜치별 production/staging 자동배포 환경 만들기 (0) | 2020.04.13 |
댓글