Как я могу использовать неявную переменную среды GOOGLE_APPLICATION_CREDENTIALS
, предоставленную облачной функции , для подписи URL-адреса облачного хранилища?
Следующее работает локально, когда существует переменная окружения GOOGLE_APPLICATION_CREDENTIALS
, но не работает с KeyError
при запуске внутри облачной функции.
google_credentials = service_account.Credentials.from_service_account_file(
os.environ['GOOGLE_APPLICATION_CREDENTIALS']
)
client_email = google_credentials.service_account_email
credential_scope = '{}/auto/storage/goog4_request'.format(datestamp)
credential = '{}/{}'.format(client_email, credential_scope)
# ...
signature = binascii.hexlify(
google_credentials.signer.sign(string_to_sign)
).decode()
Облачная функция, о которой идет речь, будет развернута в нескольких средах, поэтому я бы не хотел на самом деле развертывать файл учетных данных - который работает .
На случай, если это уместно, я использую Python 3.7 и основываю свое решение на этом примере.