amazon-web-services - 使用 build-spec.yml 中的环境变量构建 AWS 代码
问题描述
我是这个代码构建的新手。我正在尝试在“代码构建中的环境变量选项卡”中定义环境变量,并使用 buildspec.yml 中定义的那些环境变量。这样做的目的是使用 proces.env.REACT_APP_SOME_SPACE 在 react 应用程序中访问,它应该提供预期的值,以便它可以用于 API 调用。
buildspec.yml
env:
variables:
// I understand this is plain text. But SOME_TOKEN provided below is defined in the aws code build as an environment variable having a value under environment tab
REACT_APP_SOME_TOKEN: ${SOME_TOKEN}
REACT_APP_SOME_SPACE: ${SOME_SPACE}
REACT_APP_BASE_URL: 'https://myurl'
REACT_APP_REQUEST_TIMEOUT: '10000'
REACT_APP_SERVICE_API_KEY: ${SERVICE_API_KEY}
...
phases:
install:
commands:
- echo "Building ${CODEBUILD_WEBHOOK_TRIGGER}"
...
例如,我在 process.env.REACT_APP_SOME_TOKEN 中看到的只是“$ {SOME_TOKEN}”或以纯文本形式提供的任何内容,而不是在环境选项卡中为变量“REACT_APP_SOME_TOKEN”定义的 env 值。我尝试使用以下变化,但没有任何工作:
REACT_APP_SOME_SPACE: ${SOME_SPACE}
REACT_APP_SOME_SPACE: '${SOME_SPACE}'
REACT_APP_SOME_SPACE: {SOME_SPACE}
REACT_APP_SOME_SPACE: $SOME_SPACE
问题:
- 这是正确的做法吗?如果没有,请告诉我并提供详细信息
- 我看到aws中的参数存储用于存储密钥。但是想知道如何在 process.env 或 react 应用程序中的其他一些 env 变量中引用它,所以我可以使用我的 api 调用来传递它。
我所说的环境选项卡的意思是在 aws 代码构建中。
解决方案
variables
只是 的映射key: value
。此时,不会使用您为容器指定的环境变量。
这在使用的文档$PATH
中举例说明:
设置一个名为 PATH 的环境变量,其值为 $PATH:/usr/share/ant/bin,然后 /usr/local/sbin:/usr/local/bin 被替换为文字值$PATH:/usr/share/蚂蚁/斌。
因此,您的变量REACT_APP_SOME_TOKEN
设置为${SOME_TOKEN} 的字面值,解释了为什么您稍后将它们作为纯文本值。
例如,要设置REACT_APP_SOME_TOKEN
为以下的实际值,${SOME_TOKEN}
可以在 中完成pre_build
:
pre_build:
commands:
- export REACT_APP_SOME_TOKEN=${SOME_TOKEN}
或者,在您的构建项目中,您可以考虑REACT_APP_SOME_TOKEN
直接使用,而不是定义SOME_TOKEN
,然后将其分配给REACT_APP_SOME_TOKEN
.
PS bash 中的源文件示例:
myenvvars.sh:
export A=3
export B=4
构建规范(模拟)
#!/bin/bash
source ./myenvvars.sh
echo ${A}
echo ${B}
推荐阅读
- r - 是否有可以基于 3 列选择并根据选项返回值的 r 代码
- python - 修复 6 x 6 图形的标签
- java - 缺少工件 org.springframework.cloud:spring-cloud-starter-openfeign:jar:3.0.3-SNAPSHOT
- powershell - 根据输出更改变量
- javascript - Summer Note的代码视图中如何处理XSS
- python - Python Beautiful Soup Web Scraping Transfermkt 数组长度不完全相同
- xamarin.forms - xamarin.forms 共享图像和文本(正文,而不是标题)
- swift - Cocoa 中的 Apple 登录问题 - MacOS、Swift
- java - PrintWritter:如何检查输出文件是否存在?
- python - 熊猫唯一值和重组数据框