繁体   English   中英

Azure static web 应用程序环境变量

[英]Azure static web app environment variable

我正在尝试通过 Azure Static web 应用程序发布 Gatsbyjs。 我有一个插件(gatsby-source-contentful)。

我需要传递变量,例如:

{
      resolve: `gatsby-source-contentful`,
      options: {
        spaceId: process.env.CONTENTFUL_SPACE_ID,
        accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,
      },
},

错误:

Running 'npm run build'...


> gatsby-starter-default@0.1.0 build /github/workspace
> gatsby build

success open and validate gatsby-configs - 0.021s
error Invalid plugin options for "gatsby-source-contentful":

- "accessToken" is required
- "spaceId" is required
not finished load plugins - 0.905s

我在哪里可以通过这个?

谢谢。

它们被称为环境变量 它们旨在存储敏感数据,例如令牌、标识符等,不应将它们推送到您的存储库中,因此您应该忽略它们(在您的.gitignore文件中)。

默认情况下,Gatsby 会在不通知您的情况下创建 2 个环境,每种编译方法一个:

  • gatsby develop :使用.env.development
  • gatsby build :使用.env.production

注意:如果需要使用NODE_ENV自定义命令添加您自己的环境,您可以更改此行为。

因此,要将数据传递给gatsby-config.js ,您只需在项目的根目录下创建两个文件( .env.development.env.production )。 然后,在gatsby-config.js的顶部添加以下代码段:

require("dotenv").config({
  path: `.env.${process.env.NODE_ENV}`,
})

注意: dotenv已经是 Gatsby 的依赖,所以不需要重新安装

这将告诉 Gatsby 在哪里获取环境变量。

您只需要填充两个环境文件即可。 在 Contentful 中查找凭据,并使用比您在gatsby-config.js中设置的合理命名将它们添加到文件中:

CONTENTFUL_SPACE_ID=123456789 
CONTENTFUL_ACCESS_TOKEN=123456789 

还要记住,在处理 Azure、Netlify、AWS 或类似的 CI/CD 工具时,您需要向服务器提供相同的环境文件,以避免在推送更改时出现代码破坏。

对于 Azure Static Web 应用程序有两种设置环境变量的方法,一种用于前端场景,一种用于后端场景。

由于您使用的是 Gatsby,我想假设您正在构建前端是安全的。 为此,您需要在构建配置 (azure-static-web-apps-.yml) 中添加环境变量。

像这样:

env: # Add environment variables here
  CONTENTFUL_SPACE_ID: <your-id>

这是文档中的链接

不要与用于定义后端环境变量的这个混淆。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM