У меня есть API .NET 7.0, который использует среду GOOGLE_APPLICATION_CREDENTIALS для поиска в Firebase. Используя тот же JSON-аутентификатор, я могу выполнять поиск в Firebase, запустив приложение локально. Однако при публикации приложения в контейнере докеров и выполнении того же поиска я получаю сообщение об ошибке: «В запросе были неверные учетные данные аутентификации. Ожидается токен доступа OAuth 2, файл cookie для входа или другие действительные учетные данные аутентификации. См. https://developers.google.com /identity/sign-in/web/devconsole-project." Мне просто нужно знать, связана ли проблема с окружением GOOGLE_APPLICATION_CREDENTIALS в образе докера или с настройками Google Cloud API и служб.
Я пытался создать Oauth 2.0 в своем облачном приложении. как учит веб-сайт https://developers.google.com/identity/ ... le-project, но безуспешно. а также локально работает без проблем
вот dockerfile:
...
ENV GOOGLE_APPLICATION_CREDENTIALS=/app/Credential-7291824fb310.json
ENV PROJECT_ID=XXXXXXXXX
WORKDIR /app
COPY --from=build /app/dist/ /app
COPY ./Credential-7291824fb310.json .
EXPOSE 5002
ENTRYPOINT ["dotnet", "myAPP.API.dll"]
вот трассировка стека
fail: Microsoft.AspNetCore.Server.Kestrel[13]
Connection id "0HN8NVLQG0G1Q", Request id "0HN8NVLQG0G1Q:00000002": An unhandled exception was thrown by the application.
Grpc.Core.RpcException: Status(StatusCode="Unauthenticated", Detail="Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/ ... le-project.")
at Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken cancellationToken)
at Google.Api.Gax.Grpc.AsyncResponseStream`1.MoveNextAsync(CancellationToken cancellationToken)
at Google.Cloud.Firestore.Query.StreamResponsesAsync(ByteString transactionId, CancellationToken cancellationToken, Boolean allowLimitToLast)+MoveNext()
at Google.Cloud.Firestore.Query.StreamResponsesAsync(ByteString transactionId, CancellationToken cancellationToken, Boolean allowLimitToLast)+MoveNext()
at Google.Cloud.Firestore.Query.StreamResponsesAsync(ByteString transactionId, CancellationToken cancellationToken, Boolean allowLimitToLast)+System.Threading.Tasks.Sources.IValueTaskSource.GetResult()
at System.Linq.AsyncEnumerable.g__Core|99_0[TSource](IAsyncEnumerable`1 source, Action`1 action, CancellationToken cancellationToken) in /_/Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ForEach.cs:line 41
at System.Linq.AsyncEnumerable.g__Core|99_0[TSource](IAsyncEnumerable`1 source, Action`1 action, CancellationToken cancellationToken) in /_/Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ForEach.cs:line 41
at Google.Cloud.Firestore.Query.GetSnapshotAsync(ByteString transactionId, CancellationToken cancellationToken)
Подробнее здесь: https://stackoverflow.com/questions/792 ... ronment-is
GOOGLE_APPLICATION_CREDENTIALS работает в локальной, но в производственной среде — нет. ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
GOOGLE_APPLICATION_CREDENTIALS работает в локальной, но в производственной среде — нет.
Anonymous » » в форуме C# - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-