amazon-web-services - 如何将命令的输出设置为 AWS Codebuild 中的导出变量
问题描述
我正在创建一个服务/前端。该服务是使用 CloudFormation 创建的。ApiKey 用于身份验证。ApiKey 的值对 CloudFormation 不可用,所以我在创建 CodeBuild 环境时无法设置环境变量。我已经导出了 ApiKey Id,希望在 CodeBuild 期间通过 aws cli 获取 ApiKey 值。
我正在调用get-api-key
,它按预期返回我的键值。我似乎无法弄清楚如何将其设置为环境变量。我错过了什么?
到目前为止,我已经尝试了一些东西。始终是相同的结果,但找不到密钥。我的 CloudFormation 模板创建了一个名为“REACT_APP_API_KEY”的环境变量并将其设置为一个空字符串(我这样做是因为如果我尝试导出一个新变量它会抱怨)。printenv
我已经通过命令确认“REACT_APP_API_KEY”存在。
我的 buildspec.yaml 如下
version: 0.2
env:
variables:
S3_BUCKET: "nacho-bucket"
phases:
install:
runtime-versions:
nodejs: 10
commands:
- echo Installing npm dependencies
- npm install
build:
commands:
- echo Retrieving API key value
- aws apigateway get-api-key --api-key $API_KEY_ID --include-value | jq '.value'
- REACT_APP_API_KEY = $(aws apigateway get-api-key --api-key $API_KEY_ID --include-value | jq '.value')
- echo $REACT_APP_API_KEY
- printenv
- npm run build
post_build:
commands:
- echo Deploying UI to environment $S3_BUCKET
- cd build
- 'aws s3 sync . s3://$S3_BUCKET --delete'
控制台输出:
[Container] 2020/10/19 19:19:36 Running command echo Retrieving API key value
Retrieving API key value
[Container] 2020/10/19 19:19:36 Running command aws apigateway get-api-key --api-key $API_KEY_ID --include-value | jq '.value'
"correctapikey"
[Container] 2020/10/19 19:19:42 Running command REACT_APP_API_KEY = $(aws apigateway get-api-key --api-key $API_KEY_ID --include-value | jq '.value')
/codebuild/output/tmp/script.sh: 4: /codebuild/output/tmp/script.sh: REACT_APP_API_KEY: not found
[Container] 2020/10/19 19:19:42 Command did not exit successfully REACT_APP_API_KEY = $(aws apigateway get-api-key --api-key $API_KEY_ID --include-value | jq '.value') exit status 127
解决方案
精氨酸。我花了一天的大部分时间试图弄清楚这一点。修复如下(等号运算符周围不能有空格)。
- REACT_APP_API_KEY=$(aws apigateway get-api-key --api-key $API_KEY_ID --include-value | jq -r '.value')
推荐阅读
- android - 我可以在运行 AR 活动时更新 .sfb 文件吗?
- python-3.x - 通过 pyqt 使用 Python 更改多个依赖组合框
- firebase - Flutter:Firebase 实时混乱聊天
- arrays - 通过 VBA 编码替换字符串
- python - 从另一个类更改实例变量
- mysql - 如何判断我是否在 Amazon Aurora mysql DB 上
- css - 是否可以将 css 注入 Vue 组件样式部分?
- sql-server - SQL Server 持久计算列与实际(普通)列
- python - 关于 OpenCV 中的 reshape 函数的困惑
- html - Rvest 无法抓取某些网站