Это очень просто: если вы пытаетесь придать объект класса A объекту класса B, и они несовместимы, вы получаете исключение класса cast.
Давайте подумаем набор классов.
class A {...}
class B extends A {...}
class C extends A {...}
Некоторые дружелюбные люди на канале GCP slack указали мне на RuntimeConfig API для совместного использования конфигурации для нескольких типов сервисов в Google Cloud. Это решает проблему совместного использования конфигураций, которые я искал.
Для любопытных вам необходимо:
gcloud
команды: gcloud beta deployment-manager runtime-configs create foo-credentials
gcloud beta deployment-manager runtime-configs variables set "bar-variable-name" "baz-value" --config-name "foo-credentials"```
google-cloud-runtimeconfig
в свой проект (я сделал это через pip
) config_client = runtimeconfig.Client()
config = config_client.config('foo-credentials')
bar = config.get_variable('bar-variable-name')```
Нет, вы не можете получить доступ к метаданным (GCE-специфическим) из стандартного экземпляра GAE, поскольку он не является экземпляром GCE VM /. Из Получение метаданных (выделено мной):
Вы можете запросить содержимое сервера метаданных, сделав запрос на следующие корневые URL-адреса из экземпляра виртуальной машины. Используйте URL
blockquote>http://metadata.google.internal/computeMetadata/v1/
для выполнения запросов на сервер метаданных.Ошибка DNS, которую вы видите для
metadata.google.internal
, является вероятным индикатором того, что это специальная запись DNS хоста, доступная только внутри GCE сети или компьютера.Но в общем случае можно обмениваться файлами через службы / модули GAE, символизируя один и тот же файл (идеально расположенный в каталоге приложения) внутри каждого из них, требуя его. См. Примеры здесь: Совместное использование сущностей между модулями App Engine и здесь: https://stackoverflow.com/a/34111170/4495081
Пока модуль / модуль flex использует один и тот же файл (ы) файла (ов) таким же образом, как и стандартный, этот метод должен работать и для них, то есть вы можете делиться конфигурациями, например, используя файл
appengine_config.py
.