반응형

.

 

Jenkins 에서 Lambda Plugin을 사용한 코드배포 및 함수 실행이다.

 

1. 람다 생성 및 기본적인 플러그인 세팅

1.1) jenkinsTest 람다 함수생성

람다 함수 생성

1.2) Jenkins Lambda Plugin 세팅

젠킨스 플러그인 설치

2. 파이프라인 세팅

pipeline {
    agent any
    
    stages {
        stage('Git CheckOut'){
            steps{
                git branch: 'main', url: 'https://github.com/ / .git'
            }
        }
        stage('Make .zip'){
            steps{
                zip zipFile: 'test.zip'
            }
        }
        stage('lambda deploy'){
            steps{
                 withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: 'pangyeon',
                    accessKeyVariable: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]){
                    deployLambda(
                        awsRegion: 'ap-northeast-2',
                        awsAccessKeyId: "${AWS_ACCESS_KEY_ID}",
                        awsSecretKey: "${AWS_SECRET_ACCESS_KEY}",
                        functionName: 'jenkinsTest',
                        artifactLocation: 'test.zip',
                        updateMode: 'code'
                    )
                }
            }
        }
        stage('lambda invoke'){
            steps{
                withAWS(region:'ap-northeast-2', credentials:'pangyeon') {
                    invokeLambda(
                        functionName: 'jenkinsTest'
                    )
                }
            }
        }
    }
    post { 
        always { 
            sh 'rm test.zip'
        }
    }
}

 

3. 실행

 

4. 배포 확인

4.1) 이전 코드

이전 코드

4.2) 배포 후 코드

배포 후 코드

5. 실행 확인

5.1) Jenkins 실행 로그

RequestId : d019e541-92df-4fac-9021-96f150b793c2

Jenkins 실행 로그

5.2) Lambda 로그

RequestId :  d019e541-92df-4fac-9021-96f150b793c2

Lambda 로그

5.1, 5.2의 RequestId가 동일하다는 것을 볼 수 있다.

 

반응형
반응형

사내에 Nexus를 구축해서 쓸경우 사내 Nexus Repository에 있는 라이브러리를 가져올 필요가 있는데 이를 위한 세팅 방법이다.

 

.npmrc 나 .yarnrc를 프로젝트 root폴더에 만든다. 우선순위는 .npmrc여서 .npmrc만 만들어서 사용한다.

 

 

//.npmrc
registry=http://nexusUrl.com/repository/npm-public
_auth=id:password // base64 인코딩해야함

 

또는, npm/yarn config 명령어로 global하게 Setting할 수 있다.

Terminal 창에 아래의 명령어를 입력하여 사용.

//npm
npm config set _auth id:password // base64 인코딩해야함
npm config set registry http://nexusUrl.com/repository/npm-public

//yarn
yarn config set _auth id:password // base64 인코딩해야함
yarn config set registry http://nexusUrl.com/repository/npm-public

 

반응형
반응형

Groovy 에서 REST API호출을 위해 HttpBuilder란 것을 사용한다.

아래는 간단히 Groovy에서 Jenkins 빌드를 위한 예제

 

import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.Method.GET
import static groovyx.net.http.ContentType.JSON

def http = new HTTPBuilder( 'http://jenkinsUrl.com' )
def crumb =''

http.request(GET) { 
  uri.path = '/crumbissuer/api/json' // CSRF 때문에 먼저 token 호출
  headers.'Authorization' = 'Basic id:paswword' // Base64Encode 해야함
 
  response.success = { resp, reader ->
    crumb = reader['crumb']
  }
 
  
  response.failure = { resp ->
    println 'Error'
  }
}

http.request(POST) {
  uri.path = '/job/test/build' // 빌드할 Jenkins Job
  headers.'Authorization' = 'Basic id:paswword' // Base64Encode 해야함
  headers.'Jenkins-Crumb' = crumb // 위에서 호출한 Token값 필요
 
  response.success = { resp, reader ->
    // 성공하면 젠킨스 빌드됨.
  }
 
  
  response.failure = { resp ->
    println 'Error'
  }
}

 

참조 : https://github.com/jgritman/httpbuilder/wiki

 

GitHub - jgritman/httpbuilder

Contribute to jgritman/httpbuilder development by creating an account on GitHub.

github.com

 

반응형

+ Recent posts