设置Firebase云功能中的AWS环境变量



我使用AWS SDK来为我的应用程序存储图像。我使用Firebase云功能,而不是设置自己的服务器。

AWS SDK很聪明,它可以自动检测连接到S3实例的环境变量:https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment.html

SDK自动检测在您的环境中设置为变量的AWS凭证,并将它们用于SDK请求,从而消除了在应用程序中管理凭证的需要。为提供凭据而设置的环境变量是:

AWS_ACCESS_KEY_ID

AWS_SECRET_ACCESS_KEY

AWS_SESSION_TOKEN(可选)

但是,在Firebase中,所有环境变量必须是小写的。https://firebase.google.com/docs/functions/config-env

请记住,只接受小写字符作为键;不允许使用大写字符

在Firebase函数中设置AWS环境变量有什么解决方案吗?

您可以在客户端的配置对象中使用Firebase环境变量:

:

firebase functions:config:set aws.access_key_id="your_key"
firebase functions:config:set aws.secret_access_key="your_key"

关于云功能:

const someClient = new Client({
region: "your_region",
credentials: {
accessKeyId: functions.config().aws.access_key_id,
secretAccessKey: functions.config().aws.secret_access_key
}
});

您所说的Firebase配置与AWS SDK使用的进程环境变量没有任何关系。虽然它们有相似的名称,但实际上它们在实现上完全不相关。您将无法使用Firebase工具来创建AWS使用的流程环境变量。

如果您想在Cloud Functions中设置进程环境,您甚至无法使用Firebase工具建立这些环境。对于已经部署的功能,您必须在Google Cloud控制台中对环境变量进行更改。

最新更新