类:Mongo::Crypt::KMS::GCP::CredentialsRetriever Private
- 继承:
-
对象
- 对象
- Mongo::Crypt::KMS::GCP::CredentialsRetriever
- 定义于:
- 构建/ruby-driver-v2.19/lib/ mongo /crypt/ KMS / GCP /credentials_retriever.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
此类使用 Google Compute Engine 元数据主机检索 GPC 档案。 在 Google Compute Engine 实例上使用驱动程序时,应使用此选项。
常量摘要折叠
- METADATA_HOST_ENV =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
'GCE_METADATA_HOST'
- DEFAULT_HOST =
此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。
'metadata.google.internal'
类方法摘要折叠
- 。 fetch_access_token ⇒ 对象 private
类方法详细信息
。 fetch_access_token ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'build/Ruby-driver-v2.19/lib/ mongo /crypt/ KMS / GCP /credentials_retriever.rb', 第32行 def self.fetch_access_token 主机 = ENV.获取(METADATA_HOST_ENV) { DEFAULT_HOST } uri = URI(" http:// #{ 托管 } /computeMetadata/v 1 / 实例/service-accounts/ 默认/token ") req = 网络::HTTP::获取.new(uri) req[' Metadata-Flavor '] = ' Google ' resp = 网络::HTTP.开始(uri.主机名, uri.端口, use_ssl: false) do |HTTP| HTTP.请求(req) end if resp.代码 != '200' 提高 KMS::CredentialsNotFound, " GCE 元数据主机响应代码#{ resp . code } " end parsed_resp = JSON.parse(resp.body) parsed_resp.获取('access_token') 救援 JSON::ParserError, KeyError => e 提高 KMS::CredentialsNotFound, " GCE元数据响应无效:' #{ resp . body } '; #{ e . class } : #{ e . } " 救援 ::超时::错误, IOError, SystemCallError, SocketError => e 提高 KMS::CredentialsNotFound, "无法接收GCP元数据响应; #{ e . class } : #{ e . } " end |