C# 使用AWS Lambda的Google API授权-不支持文件数据存储

C# 使用AWS Lambda的Google API授权-不支持文件数据存储,c#,amazon-web-services,google-api,aws-lambda,google-authentication,C#,Amazon Web Services,Google Api,Aws Lambda,Google Authentication,我已经创建了一个WebAPI并将其发布到AWS Lambda。在这个API中,我通过GMail SMTP自动发送一些电子邮件。我的电子邮件代码如下所示: var secrets = new ClientSecrets { ClientId = Environment.GetEnvironmentVariable("GMailClientId"), ClientSecret = Environment.GetEnvironmentVariable("GMailClientSecre

我已经创建了一个WebAPI并将其发布到AWS Lambda。在这个API中,我通过GMail SMTP自动发送一些电子邮件。我的电子邮件代码如下所示:

var secrets = new ClientSecrets
{
    ClientId = Environment.GetEnvironmentVariable("GMailClientId"),
    ClientSecret = Environment.GetEnvironmentVariable("GMailClientSecret")
};

var googleCredentials = await GoogleWebAuthorizationBroker.AuthorizeAsync(secrets, new[] { GmailService.Scope.MailGoogleCom }, ((MailboxAddress)message.From.First()).Address, CancellationToken.None);
if (googleCredentials.Token.IsExpired(SystemClock.Default))
{
    await googleCredentials.RefreshTokenAsync(CancellationToken.None);
}

using (var client = new SmtpClient())
{
    client.Connect("smtp.gmail.com", 587, SecureSocketOptions.StartTls);

    var oauth2 = new SaslMechanismOAuth2(googleCredentials.UserId, googleCredentials.Token.AccessToken);
    client.Authenticate(oauth2);

    await client.SendAsync(message);
    client.Disconnect(true);
}
这在我的本地计算机上运行得非常好,但是当尝试通过AWS Lambda运行它时,调用
GoogleWebAuthorizationBroker.AuthorizationAsync
时,我得到以下错误:

此平台不支持相对文件数据存储路径

GoogleWebAuthorizationBroker
authorizationasync
定义为:

public static Task<UserCredential> AuthorizeAsync(ClientSecrets clientSecrets, IEnumerable<string> scopes, string user, CancellationToken taskCancellationToken, IDataStore dataStore = null, ICodeReceiver codeReceiver = null);
public static Task AuthorizeAsync(ClientSecrets ClientSecrets,IEnumerable scopes,string user,CancellationToken taskCancellationToken,IDataStore dataStore=null,ICodeReceiver codeReceiver=null);
我没有向dataStore参数提供任何内容,因此默认情况下,它使用的是
FileDataStore
实现

我猜Lambda不喜欢这样,因为它试图访问文件系统

以前有没有人遇到过这个问题?如果有,您知道解决方案吗?我不确定任何针对
IDataStore
的谷歌实现都能起作用?

编辑:
我想知道是否需要创建IDataStore的db实现?类似于:。谷歌没有提供这样的实现似乎有点奇怪…

你解决了这个问题吗?我也有类似的问题