라벨이 GCP인 게시물 표시

GCP BigQuery connection(DBMS)

이미지
사진1) Big Query화면 구글 클라우드에서 Big Query화면에 들어가서 Add를 선책합니다. 사진2) 외부연결 이번에는 GCP의 SQL(My-SQL)에 접속하는것이 목적이기 때문에 'connections ~ '을 선택한다. 사진3) 외부연결 설정 사진4) 연결할 DB확인 사진5) 연결설정 완료 사진 4번에서 해당 DBMS의 'connection name'을 확인하고 사진5번에 작성을 마무리 합니다. 사진6) 연결 완료 사진7) 쿼리 실행 사진8) 쿼리 실행중 에러 사진6번과 7번에서 실행해도 사진8번과 같이 에러가 발생되는 경우가 있습니다. 에러의 원인은 해당 DBMS에서 연결도중에 연결을 끊어버렸다는 것입니다. 하나의 해결책으로 해당 Big Query가 DBMS에 접근할 권한이 없는 것입니다. 사진9) 서비스 계정 ID 확인 사진10) IAM계정 추가 사진11) 서비스 계정 등록 사진12) Cloud SQL Client선택 해당 Big Query의 service account ID(사진 9)를 확인하고 IAM계정을 추가합니다. 권한은 'Cloud SQL Client'(사진12)으로 추가합니다. 사진13) 쿼리 실행 완료 제대로 동작된다면 사진 13처럼 쿼리를 입력하고 정상적으로 데이터를 불러오는 것을 알수 있습니다. 

Inapp 결제 확인(안드로이드 AOS) -2

이미지
 이전글 : Inapp 결제 확인(안드로이드 AOS) -1  이제 다운로드 받은 JSON파일로 구매 인증을 검증하는 코드를 작성하도록 하겠습니다. 먼저 하나의 폴더를 생성하고 그안에 node 프로젝트를 생성합니다. $ npm init --y 이제 해당 프로젝트에서 index.js파일을 생성합니다. $ touch index.js 먼저 해당 프로젝트에서 node npm module를 설치합니다. $ npm install google-play-billing-validator 그리고 다운로드 받은 json파일로 프로젝트에 옮깁니다. 해당 json파일의 명칭을 pemkey.json으로 변경하였습니다. 그리고 구매 내역을 확인하기 위해서 purchaseData.json을 만들고 이 안에는 실제 앱에서 검증을 요청하는 데이터를 넣었습니다. 키이름은 아래에 있습니다. purchaseID, productID, transactionData, serverVerificationData, localVerificationData, source, pendingCompletePurchase 이제 index.js파일을 아래와 같이 코딩을 해줍니다. // 구글 인증을 위한 npm모듈 const Verifier = require ( "google-play-billing-validator" ) // 파일을 읽고 쓰기 위한 node 내장 모듈 const { readFileSync } = require ( "fs" ) // 구글 클라우드에서 받은 pem키(json파일) const jsonData = JSON . parse ( readFileSync ( "./pemkey.json" , "utf8" )) // 앱에서 제공받은 구매이력(json파일) const localVerificationData = JSON . parse ( JSON . parse ( readFileS...

Inapp 결제 확인(안드로이드 AOS) -1

이미지
 이번에는 AOS 인앱결제 검증에 대해서 진행을 하겠습니다.  AOS인앱결제를 하기전에 선수 작업이 필요합니다. 해당 인앱결제를 받기 위한 pem키를 받고 구글에서 사용 가능하도록 인증하는 절차입니다. 먼저 아래 링크에 방문합니다. google console : https://play.google.com/console 위에 보이는 페이지에서 'API 액세스'으로 들어가 줍니다.  프로젝트가 구글 클라우드와 연결 되어 있다면 'Google Cloud Platform에서 보기'를 클릭하시면 됩니다. IAM항목으로 들어가 줍니다. '+ CREATE SERVICE ACCOUNT'를 선택해서 새로운 'Service account'를 생성합니다. 'Service account details'을 작성해 줍니다. 해당 계정이 생성된 것을 확인할수 있습니다. 해당 파일을 다운로드 받습니다. 이 파일은 향후 프로그래밍시 필요하기 때문에 저장 위치를 기억해 줍니다. 다운로드 된 json파일 {   "type": "서비스 타입",   "project_id": "프로젝트 ID",   "private_key_id": "비밀키 ID",   "private_key": "비밀키",   "client_email": "해당 유저의 Email",   "client_id": "해당 유저의 ID",   "auth_uri": "",   "token_uri": "",   "auth_provider_x509_cert_url": "",   "client_x509_cert...

GCP Docker Image Push, Pull to Container Registery from instance(VM)

이미지
해당 과정은 도커가 설치 되어 있어야 합니다.  Container Registry가 사용 가능한 상태여야 합니다. gcloud 버전은 아래와 같습니다. ----------------------------------------------------------------- Google Cloud SDK 413.0.0 alpha 2023.01.06 beta 2023.01.06 bq 2.0.84 bundled-python3-unix 3.9.12 core 2023.01.06 gcloud-crc32c 1.0.0 gsutil 5.17 minikube 1.28.0 skaffold 2.0.4 ----------------------------------------------------------------- 링크 : docker install by terminal : ubuntu 20.04 링크 : docker 도커를 이용하여 이미지(IMAGE) 생성하기 : NestJS 사용 VM에서 docker images를 만들때 아래와 같은 방식으로 이미지 태그를 만듭니다. [리전 => ex) asia.gcr.io]/[GOOGLE_PROJECT_ID]/[IMAGE NAME]:[TAG] VM instance에서 도커 이미지를 생성합니다. 하지만 푸시를 할려고 하면 인증절차때문에 안된다.  $ gcloud auth configure-docker 만약 위처럼 진행해도 푸시가 되지 않는다면(Access denied) 아래 절차를 시도해 보시기 바랍니다. $ gcloud init 위의 터미널을 실행하여 gcloud로그인 정보를 갱신한다. 해당 VM에 접근하는 모든 유저들한테 증명서가 노출된다고 한다. 고로 본인만 사용하는 VM에 진행하도록 한다. Y를 선택 위 사진처럼 인증시 해당 링크에 들어가서 키값을 받고 터미널에 입력을 해야 한다. 완료가 되면 gcloud의 인증절차가 마무리 된다. 여기서 36을 선택한 이유는 기존의 프로젝트가 존재해서 ...

GCP How to access GCP VM instance using Linux(Ubuntu) terminal by SSH

이미지
  1. Create ssh keys(public, private) $ ssh-keygen -t rsa -f ~/.ssh/[key name] -C [account name] -b 2048 copy example  : ssh-keygen -t rsa -f ~/.ssh/test -C alex -b 2048 2. Copy ssh keys(public) $ cat ~/.ssh/[key name].pub copy example : cat ~/.ssh/test.pub 3. Regist your key to your instance 4. Access to your VM Instance by your Linux terminal $ ssh -i [key file path] [account name]@[instance external IP address] copy example : ssh -i ~/.ssh/test.pub alex@1.23.45.67 reference link : https://cloud.google.com/compute/docs/instances/connecting-advanced#thirdpartytools