API Axios 요청을 사용하여 Google Cloud Run 인스턴스를 업데이트하는 방법
먼저 Google Cloud에 Docker 이미지를 푸시하려면 로컬 코드베이스에서 다음을 실행할 수 있습니다.
gcloud builds submit --timeout=2000s --machine-type=e2-highcpu-32 --tag gcr.io/PROJECT-NAME/IMAGE-NAME .
이렇게 하면 Docker 프로젝트가 빌드되고 GCP 컨테이너 레지스트리에 이미지로 저장됩니다.
그런 다음 이미지를 Google Cloud 인스턴스로 배포하기 위해 다음 명령어를 실행할 수 있습니다.
gcloud run deploy INSTANCE-NAME --image gcr.io/PROJECT-NAME/IMAGE-NAME --region us-east1 --platform managed --allow-unauthenticated --quiet
시원한! 이제 Docker 프로젝트가 Cloud Run에서 실행됩니다.
제 경우에는 웹 사이트 테마마다 다른 코드 기반을 사용하고 도커를 사용하여 빌드합니다. 그래서 첫 번째 명령을 사용하여 모든 테마를 Google Cloud에 제출했지만 프런트엔드 앱에서 테마 간에 전환할 때 Cloud Run 인스턴스를 새 도커 이미지로 덮어쓸 프로그래밍 방식이 필요했습니다.
일반적으로
gcloud run deploy
CLI 명령을 실행할 수 있지만 CLI 명령을 내 백엔드의 클라우드 기능에 추가하는 axios API 요청으로 변환해야 했습니다.내가 한 것은 다음과 같습니다.
try {
async function updateTheme() {
let token: any
const jwtClient = new google.auth.JWT(firebaseClientEmail, "", firebaseKey, [
'https://www.googleapis.com/auth/cloud-platform',
])
await jwtClient.authorize(async function (err: any, _token: any) {
if (err) {
console.log("JWT ERROR: ", err)
return err
} else {
token = _token.access_token.split('.')
token = token[0] + '.' + token[1] + '.' + token[2]
const deploySteps = [
{
name: 'gcr.io/cloud-builders/gcloud',
args: [
'run',
'deploy',
`${name}`,
'--image',
`gcr.io/${googleCloudProject}/theme-${theme}`,
'--region',
'us-east1',
'--allow-unauthenticated',
'--platform',
'managed',
'--quiet',
],
},
]
const deployRevisions = async () => {
await axios({
method: "post",
url: `https://cloudbuild.googleapis.com/v1/projects/${googleCloudProject}/builds`,
headers: {
Authorization: `Bearer ${token}`,
},
data: {
steps: deploySteps,
timeout: "1200s",
},
})
.catch(function (error: any) {
console.log("ERROR UPDATING THEME: ", error)
return
})
.then(function (response: any) {
console.log("SUCCESSFULLY DEPLOYED THEME UPDATE")
})
}
if (token) {
deployRevisions()
} else {
console.log("MISSING TOKEN")
}
}
})
}
await updateTheme()
} catch (e) {
console.log("tried updating theme but something went wrong")
return
}
위의 코드 덩어리는 Cloud Build API를 활용하여 Cloud Run 인스턴스를 Google Cloud의 도커 이미지로 덮어씁니다. 요청에 사용할 Google Cloud 인증 코드도 가져옵니다.
Cloud Run 인스턴스를 업데이트하려는 경우 함수에 배치하고 이미지 이름을 간단히 전달합니다.
Reference
이 문제에 관하여(API Axios 요청을 사용하여 Google Cloud Run 인스턴스를 업데이트하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cormacncheese/how-to-update-google-cloud-run-instance-using-an-api-axios-request-25hc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)