Terraform 및 GitLab CI를 사용하여 AWS Step Function 및 Lambda 생성

Terraform 설치


  • Terraform 바이너리를 다운로드하고 패키지의 압축을 풉니다.
  • terraform 경로를 압축 해제된 바이너리 위치로 설정합니다. Terraform은 terraform이라는 단일 바이너리로 실행됩니다. 패키지의 다른 모든 파일은 안전하게 제거할 수 있으며 Terraform은 계속 작동합니다.
  • CLI에서 terraform version 명령을 사용하여 설정을 확인합니다.

  • AWS CLI 설치


  • Windows(64비트)용 AWS CLI MSI 설치 프로그램 다운로드 및 실행:
  • 설치를 확인하려면 시작 메뉴를 열고 cmd를 검색하여 명령 프롬프트 창을 연 다음 명령 프롬프트에서 aws --version 명령을 사용합니다.



  • 인프라 구축


  • 구성을 위한 디렉터리를 생성합니다. mkdir terraform
  • 디렉토리를 변경하고 파일 main.tf를 만듭니다.


  • terraform init로 디렉토리를 초기화합니다.


  • terraform plan를 실행하여 변경이 필요한지 확인합니다.
    하부 구조.
  • 구성 형식 지정 및 유효성 검사

  • 지금 terraform apply 명령을 사용하여 구성을 적용하십시오.



  • Terraform용 Gitlab CI 구성


  • 저장소의 루트에 .gitlab-ci.yml이라는 파일을 생성합니다
  • .
  • 액세스 키 ID 및 보안 액세스 키를 가져옵니다.
  • Set aws variables go to - gitlab 프로젝트 → 설정 → CI/CD → 변수


  • 샘플 GitLab 파이프라인




    stages:
      - validate
      - plan
      - apply
      - destroy
    image:
      name: hashicorp/terraform:light
      entrypoint:
        - '/usr/bin/env'
        - 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
    before_script:
      - export AWS_ACCESS_KEY=${AWS_ACCESS_KEY_ID}
      - export AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
      - rm -rf .terraform
      - cd terraform/
      - terraform --version
      - terraform init
    
    validate:
      stage: validate
      script:
        - terraform validate
      only:
        - branches
    
    plan:
      stage: plan
      script:
        - terraform plan -out "planfile"
      dependencies:
        - validate
      artifacts:
        paths:
          - planfile
    
    apply:
      stage: apply
      script:
        - terraform apply -input=false "planfile"
      dependencies:
        - plan
      when: manual
      only:
        - main
    
    destroy:
      stage: destroy
      script:
        - echo "Destroying resources"
        - terraform destroy -state=$STATE --auto-approve
      dependencies:
        - apply
      when: manual
      only:
        refs:
          - main
    


    Sample terraform code for lambda and step function

    좋은 웹페이지 즐겨찾기