Firebase Authentication을 사용하는데 json 형식의 키파일을 환경변수에 등록해서 파일을 만들어서 빌드했는데 오류가 발생했습니다.
Error: incorrect number of segments; ...
Json 파일 형식이 잘못된 것 같아서 터미널에서 테스트를 진행했습니다.
Json에 쌍따옴표(Quotation marks)가 있었는데 없어졌네요.
ChatGPT에 여쭤본 결과로 알게된 건
json={"abc":1,"def":2}
json 에는 다음과 같이 문자열이 이어져서 담긴다는 것입니다.
{
+ "abc"
+ :1,
+ "def"
+ :2}
echo '{"abc":1,"def":2}'
> {"abc":1,"def":2}
echo "{\"abc\":1,\"def\":2}"
> {"abc":1,"def":2}
Json을 굳이 텍스트로 환경변수에 저장할 필요는 없으니까 S3에 저장하고 빌드할 때 파일을 읽는 방법도 좋을 것 같았습니다.
키 파일을 저장할 버킷을 생성하고, 키 파일을 버킷에 업로드합니다.
우선 S3 Bucket의 파일을 읽을 수 있도록 CodeBuild 실행 권한을 설정해줘야 합니다.
IAM 역할 - 권한추가 - 인라인 정책 생성 - JSON 경로로 들어가서 읽기 권한을 세팅합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GrantCodeBuildReadPermissions",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::my-bucket/*"
]
}
]
}
buildspec.yaml
phases:
pre_build:
commands:
- touch firebase-key.json
- aws s3 cp --region=ap-northeast-2 s3://$BUCKET_NAME/firebase-key.json firebase-key.json
- cat firebase-key.json
...
위 예시로 버킷에 저장해둔 json파일을 불러올 수 있습니다. 👍