Skip to main content

[Tech 006] Cloud Function을 사용한 Blob Storage Upload

Cloud Function을 사용한 Blob Storage Upload

사전 준비

  • GCS(Google Cloud Storage) 개념 파악 및 공개 액세스 버킷 생성
  • Python 문법 
  • IAM 기본 지식

 

내용

Serverless인 Cloud Functions을 사용하여 Bucket에 Blob Storage 생성 후 Upload 하기.

Cloud Function

1. 함수 이름, 리전 및 트리거 선택.

2. 런타임, 빌드, 연결, 보안 설정(Service Account 중요)

2-1. Service Account 권한 설정

버킷에 파일 업로드를 위하여 Function에 적용한 런타임 서비스 계정에
‘저장소 개체 관리자’ 역할을 추가합니다.

해당 서비스 계정(Build_Account)에 사용자 계정에 대한 ‘액세스 권한 부여’를 추가합니다.

3. Code 작성(main.py)

  • 런타임 : Python 3.9
  • 진입점 : start_func

4. Code 작성(requierments.txt) – Import 할 Library 추가 후 배포

5. [테스트 중] – [함수 테스트]

6. [bucket 확인] – [URL 클릭]

7. ‘blob_text’ 변수에서 입력 값 확인

Reference


#main.py

from google.cloud import storage


def start_func(request):

    #Bucket Name
    bucket_name = "ljk-bucket-sample"
    
    #txt Content
    blob_text = "sample-test"

    #txt file 명칭
    destination_blob_name = "ljk-bucket-sample-txt"
        
    #Bucket에 File Upload  
    upload_blob(bucket_name, blob_text, destination_blob_name)   

    return 'Success!'

def upload_blob(bucket_name, blob_text, destination_blob_name):
    
    #Storage Client에 Bucket,  
    storage_client = storage.Client()
    #get_bucket에 bucket_name 설정 
    bucket = storage_client.get_bucket(bucket_name)
    #blob 객체 선언 및 생성 file name 설정
    blob = bucket.blob(destination_blob_name)

    print(f"upload_blob-1 = {bucket_name} + {blob_text} +  {destination_blob_name} ")

    blob.upload_from_string(blob_text)

#requirements.txt

# Function dependencies, for example:
# package>=version
google.cloud.storage

 

Secured By miniOrange