Признать недействительным кеш CDN Google Cloud из серверной части

После нескольких дней изучения и чтения документации я почти уверен, что это почти невозможно, но все же я хотел бы спросить:

Цель состоит в том, чтобы сделать недействительным весь кэшированный контент в GCloud CDN по требованию (из-за изменений заголовков) на стороннем сервере, который не использует этот CDN. С помощью gsuite это может быть достигнуто с помощью следующей команды:

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

Но проблема в том, что эта команда требует от нас входа в учетную запись Google через браузер с учетными данными клиента, что делает его абсолютно бесполезным.

Печальная история заключается в том, что, похоже, Google имеет довольно богатый API для других своих сервисов, но для CDN API нет:(

Идея состоит в том, чтобы принять учетные данные пользователя и аннулировать этот кеш, используя их. Это вообще возможно?

2 ответа

Решение

Итак, я был неправ 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

А вот пример кода 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
)

Теперь вы можете позвонить:

      gcloud compute url-maps list
gcloud compute url-maps invalidate-cdn-cache prod-lb --path='/test/*'
gcloud compute url-maps invalidate-cdn-cache prod-lb --async --path='/test/*'
gcloud compute url-maps list-cdn-cache-invalidations --global prod-lb

Это занимает вечность,--async&list-cdn-cache-invalidationsтвои друзья...

https://cloud.google.com/cdn/docs/invalidating-cached-content

Другие вопросы по тегам