Ruby의 종속 항목 지정
Ruby로 작성된 Cloud Run 함수는 bundler를 사용하여 종속 항목에 액세스합니다. 종속 항목은 함수 배포 시 또는 함수와 함께 로컬로 패키징될 수 있습니다.
각 함수는 함수에 필요한 추가 gem과 함께 functions_framework
gem을 지정하는 Gemfile
을 제공해야 합니다. Gemfile
은 함수 코드가 포함된 app.rb
파일과 동일한 디렉터리에 있어야 합니다. 또한 함수는 모든 임시 종속 항목과 정확한 버전을 지정하는 lockfile을 제공해야 합니다. 이 Gemfile.lock
파일도 Gemfile
과 함께 동일한 디렉터리에 있습니다.
함수를 배포하면 Cloud Run 함수가 bundler
를 사용하여 Gemfile
및 Gemfile.lock
에 선언된 종속 항목을 다운로드하고 설치합니다.
Gemfile
은 선택적 버전 제약조건과 함께 함수에 필요한 패키지를 나열합니다. 자세한 내용은 Gemfile 참조를 확인하세요.
다음은 Gemfile
예시입니다.
source "https://rubygems.org" gem "functions_framework", "~> 0.7" gem "google-cloud-storage", "~> 1.29"
다음 명령어를 실행하여 functions_framework
gem 및 기타 종속 항목을 설치합니다.
bundle install
Gemfile.lock
은 종속 항목을 분석할 때 Bundler에 의해 생성되고 설치할 각 gem의 정확한 버전을 고정합니다. 예를 들어 이렇게 하면 로컬 테스트에 사용된 버전과 동일한 종속 항목 버전으로 함수가 배포됩니다. Gemfile.lock
의 정확한 형식은 Bundler에게만 공개되며 직접 수정할 수 없습니다.
이미 Bundler를 사용하여 종속 항목을 설치하고 테스트를 로컬에서 실행하고 있다면 이미 Gemfile.lock
파일이 있을 수 있습니다. 그렇지 않은 경우 다음을 실행하여 생성할 수 있습니다.
bundle lock
함수 프레임워크는 모든 함수에 필요한 종속 항목입니다. Cloud Run 함수는 함수 생성 시 이를 자동으로 설치하지만 명확히 하자면 명시적 종속 항목으로 포함하는 것이 좋습니다.
함수에서 비공개 종속 항목을 사용하는 경우 functions-framework
를 비공개 레지스트리에 미러링하는 것이 좋습니다. 공개 인터넷에서 패키지를 설치하지 않으려면 미러링된 functions-framework
를 함수에 대한 종속 항목으로 포함합니다.
로컬 종속 항목 패키징
함수와 함께 종속 항목을 패키징하고 배포할 수도 있습니다. 이 방법은 rubygems 패키지 관리자를 통해 종속 항목을 사용할 수 없는 경우에 유용합니다.
gem을 로컬로 패키징하려면 함수의 디렉터리 구조에 있는 디렉터리에 이를 포함하고 종속 항목의 Gemfile
항목에 경로를 제공합니다. gem 디렉터리는 유효한 gemspec
파일을 포함해야 하며 해당 코드가 함수와 함께 배포되도록 함수의 디렉터리 계층 구조 내에 있어야 합니다. 예를 들어 다음과 같은 디렉터리 구조를 사용할 수 있습니다.
myfunction/ ├── Gemfile ├── Gemfile.lock ├── app.rb └── my_private_gem/ ├── lib/ | └── my_private_gem.rb └── my_private_gem.gemspec
Gemfile
항목은 다음과 같이 표시됩니다.
source "https://rubygems.org" gem "functions_framework", "~> 0.7" gem "my_private_gem", path: "./my_private_gem"
로컬 gem 경로 참조에 대한 자세한 내용은 Gemfile 참조를 확인하세요.