【问题标题】:Invalidate Google Cloud CDN cache from the backend从后端使 Google Cloud CDN 缓存失效
【发布时间】:2018-04-08 07:56:20
【问题描述】:

经过几天的研究和阅读文档,我几乎可以肯定这几乎是不可能的,但我仍然想问:

目标是在不使用该 CDN 的第 3 方后端按需(由于标头更改)使 GCloud CDN 中的所有缓存内容无效。使用gsuite可以通过以下命令实现:

gcloud compute url-maps invalidate-cdn-cache web --path '/*' --async

但问题是这个命令要求我们通过浏览器使用客户端的凭据登录谷歌帐户,这使得它绝对毫无价值。

可悲的是,谷歌似乎为其他服务提供了相当丰富的 API,但对于 CDN,却没有 API :(

这个想法是接受用户的凭据并使用它们使缓存无效。有没有可能?

【问题讨论】:

    标签: google-api invalidation google-cloud-cdn


    【解决方案1】:

    所以,我对 impossibility 的看法是错误的。我找到了相应的 REST API 方法(https://cloud.google.com/compute/docs/reference/rest/v1/urlMaps/invalidateCache):

    POST https://www.googleapis.com/compute/v1/projects/{project}/global/urlMaps/{resourceId}/invalidateCache
    

    这是一个使用official gem的示例Ruby代码:

    require 'google/apis/compute_v1'
    
    service = Google::Apis::ComputeV1::ComputeService.new
    service.authorization =
      Google::Auth::ServiceAccountCredentials
        .make_creds(
          json_key_io: File.open('/path/to/credentials.json'),
          scope:       [Google::Apis::ComputeV1::AUTH_COMPUTE]
        )
    service.invalidate_url_map_cache(
       'some-gcloud-project-id',
       'some-url-map',
       nil,
       request_id: SecureRandom.uuid
    )
    

    【讨论】:

    • 这为我指明了正确的方向。我很困惑为什么他们将 CDN 缓存失效放在“计算”库中。似乎拥有一个 CDN 库是合乎逻辑的;甚至存储!?谢谢!
    • 我收到了Caught error invalid: Invalid value for field 'resource.path': ''. path must begin with /。知道如何解决这个问题吗?
    • @nattfodd 说我想使路径 /homepage 无效,如何以及在哪里指定此代码?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 2019-04-13
    • 2012-10-23
    • 2019-10-25
    • 1970-01-01
    相关资源
    最近更新 更多