오픈소스 url : https://github.com/NaverCloudPlatform/terraform-provider-ncloud
네이버 클라우드 API 문서 : https://api.ncloud-docs.com/docs
정규식 테스트 사이트: https://regexr.com/
0. 확인할 파일 선정.
- server.go 파일로 선정
1. 문서에서 API 요청 파라미터 제약사항 확인하기.
- API 문서에서 createServerInstance 확인
- 위 사진과 같이 serverName의 제약 사항은 아래와 같습니다.
1. 3~30 개의 문자만 허용
2. 소문자, 숫자, "-"만 허용
3. 알파벳으로 문자로 시작해야함
4. 영어 또는 숫자로 끝나야함.
2. validation 패키지의 함수들을 이용해, 검증 작성하기
1. 제약사항 1번 : 3~30개의 문자만 허용.
validation.StringLenBetween(3, 30)
2. 2~4까지의 제약사항 검증
- validation 패키지에 2~4 제약사항을 확인할 수 있는 함수가 없으므로, 정규식을 이용. ( https://regexr.com/을 활용해 정규식 조합)
- 제약사항 2번 : [a-z0-9-]
- 제약사항 3번 : ^[a-z]+[a-z0-9-]
- 제약사항 4번 : ^[a-z]+[a-z0-9-]+[a-z0-9]$
- 만든 정규식을 테스트 (https://regexr.com/의 tests 클릭 후, 확인할 문자열들 입력)
3. 해당 파일의 schema 부분에 아래와 같이 ValidateDiagFuc 에 추가.
"name": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
ValidateDiagFunc: ToDiagFunc(validation.All(
validation.StringLenBetween(3, 30),
validation.StringMatch(regexp.MustCompile(`^[a-z]+[a-z0-9-]+[a-z0-9]$`), "Allows only lowercase letters(a-z), numbers, hyphen (-). Must start with an alphabetic character, must end with an English letter or number"),
)),
},
'활동들~' 카테고리의 다른 글
429(Too Many Request) 에러 해결하기 (1) | 2024.05.13 |
---|---|
Pob Build Cost 프로젝트 (0) | 2024.04.20 |
[오픈소스] 테라폼 GetOk()의 Zero-value 이슈 해결하기 (0) | 2024.03.10 |