풀 요청 번호를 서버리스 배포 단계로 사용
3789 단어 githubserverlessproductivityaws
provider
속성에서 설정할 수 있습니다.# serverless.yml
service: myservice
provider:
name: aws
stage: dev
region: us-east-1
단계는 CloudFormation 스택 이름에 추가되고 서비스의 모든 Lambda 함수 및 대부분의 다른 리소스에 추가됩니다. 배포 중에 명령줄 플래그
--stage
또는 -s
를 사용하여 재정의할 수도 있습니다.serverless deploy --stage prod --region eu-central-1
> Deploying myservice to stage prod (eu-central-1)
> ✔ Service deployed to stack myservice-prod (130s)
> functions:
> hello: myservice-prod-hello (14 kB)
이제 커밋 또는 끌어오기 요청을 기반으로 변경 사항을 지속적으로 배포하는 GitHub 워크플로와 같은 CI/CD 환경이 있을 수 있습니다. 이러한 변경 사항은 개발 또는 프로덕션 상태와 별도로 테스트해야 합니다. 한 가지 방법은 별도의 단계(예: qual 또는 분기/커밋/풀 요청의 이름)에 배포한 다음 테스트 스크립트를 실행하는 것입니다.
각 배포 스크립트에 추가
--stage
하는 대신 환경 변수를 사용하여 단계를 동적으로 설정하는 것을 좋아합니다. GitHub 워크플로를 시작할 때 워크플로 실행을 트리거한 풀 요청을 기반으로 환경 변수를 설정했습니다.# .github/workflows/ci.yml
name: GitHub CI/Testing
on:
pull_request
env:
PR_NUMBER: ${{ github.event.number }} # e.g. 65
BRANCH: ${{ github.head_ref }} # e.g bugfix/issue-42
STAGE: pr${{ github.event.number }} # => pr65
...
서버리스 프레임워크가 환경에서 올바른 단계를 가져오려면 가변 해상도로 단계를 덮어써야 합니다.
# serverless.yml
provider:
stage: ${opt:stage, env:STAGE, "dev"}
이 변수는 배포 중에 단계가 해결되는 순서를 정의합니다. 먼저
--stage
플래그를 확인합니다. 사용할 수 없는 경우 환경 변수STAGE
를 확인합니다. 사용할 수 없는 경우 기본값dev
이 사용됩니다.이 예에서 서버리스 프레임워크는 서비스를
myservice-pr65
로, Lambda 함수를 myservice-pr65-hello
로 제공합니다. 예를 들어 다른 리소스 및 내보내기의 이름을 지정하기 위해 serverless.yml 파일 내의 단계에 액세스해야 하는 경우 위에서 ${sls:stage}
변수에 대해 해결되는 내장 변수provider.stage
를 사용할 수 있습니다.연결
Reference
이 문제에 관하여(풀 요청 번호를 서버리스 배포 단계로 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/zirkelc/serverless-stage-as-environment-variable-from-github-actions-2n9a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)