10.3. 시크릿 및 구성 맵에 수동으로 함수 액세스 추가
시크릿 및 구성 맵에 액세스하는 구성을 함수에 수동으로 추가할 수 있습니다. 기존 구성 스니펫이 있는 경우 kn func config
대화형 유틸리티 및 명령을 사용하는 것이 좋습니다.
10.3.1. 시크릿을 볼륨으로 마운트
시크릿을 볼륨으로 마운트할 수 있습니다. 시크릿이 마운트되면 일반 파일로 함수에서 액세스할 수 있습니다. 이를 통해 함수에 필요한 클러스터 데이터(예: 함수에서 액세스해야 하는 URI 목록)에 저장할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Serving이 클러스터에 설치되어 있습니다.
-
Knative(
kn
) CLI가 설치되어 있습니다. - 함수를 생성했습니다.
절차
-
함수에 사용할
func.yaml
파일을 엽니다. 볼륨으로 마운트하려는 각 시크릿에 대해
volumes
섹션에 다음 YAML을 추가합니다.name: test namespace: "" runtime: go ... volumes: - secret: mysecret path: /workspace/secret
-
mysecret을
대상 시크릿의 이름으로 대체합니다. 시크릿을 마운트하려는 경로로
/workspace/secret
을 대체합니다.예를 들어
주소
시크릿을 마운트하려면 다음 YAML을 사용합니다.name: test namespace: "" runtime: go ... volumes: - configMap: addresses path: /workspace/secret-addresses
-
- 설정을 저장합니다.
10.3.2. 구성 맵을 볼륨으로 마운트
구성 맵을 볼륨으로 마운트할 수 있습니다. 구성 맵이 마운트되면 일반 파일로 함수에서 액세스할 수 있습니다. 이를 통해 함수에 필요한 클러스터 데이터(예: 함수에서 액세스해야 하는 URI 목록)에 저장할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Serving이 클러스터에 설치되어 있습니다.
-
Knative(
kn
) CLI가 설치되어 있습니다. - 함수를 생성했습니다.
절차
-
함수에 사용할
func.yaml
파일을 엽니다. 볼륨으로 마운트하려는 각 구성 맵에 대해
volumes
섹션에 다음 YAML을 추가합니다.name: test namespace: "" runtime: go ... volumes: - configMap: myconfigmap path: /workspace/configmap
-
myconfigmap
을 대상 구성 맵의 이름으로 대체합니다. /workspace/configmap
을 구성 맵을 마운트하려는 경로로 바꿉니다.예를 들어
주소
구성 맵을 마운트하려면 다음 YAML을 사용합니다.name: test namespace: "" runtime: go ... volumes: - configMap: addresses path: /workspace/configmap-addresses
-
- 설정을 저장합니다.
10.3.3. 시크릿에 정의된 키 값에서 환경 변수 설정
시크릿으로 정의된 키 값에서 환경 변수를 설정할 수 있습니다. 그런 다음 시크릿에 이전에 저장된 값은 런타임 시 함수에서 환경 변수로 액세스할 수 있습니다. 이 기능은 사용자 ID와 같이 시크릿에 저장된 값에 액세스하는 데 유용할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Serving이 클러스터에 설치되어 있습니다.
-
Knative(
kn
) CLI가 설치되어 있습니다. - 함수를 생성했습니다.
절차
-
함수에 사용할
func.yaml
파일을 엽니다. 환경 변수에 할당할 시크릿 키-값 쌍의 각 값에 대해
envs
섹션에 다음 YAML을 추가합니다.name: test namespace: "" runtime: go ... envs: - name: EXAMPLE value: '{{ secret:mysecret:key }}'
-
EXAMPLE
을 환경 변수 이름으로 대체합니다. -
mysecret
을 대상 시크릿의 이름으로 대체합니다. key
를 대상 값에 매핑된 키로 대체합니다.예를 들어
userdetailssecret
에 저장된 사용자 ID에 액세스하려면 다음 YAML을 사용합니다.name: test namespace: "" runtime: go ... envs: - value: '{{ configMap:userdetailssecret:userid }}'
-
- 설정을 저장합니다.
10.3.4. 구성 맵에 정의된 키 값에서 환경 변수 설정
구성 맵으로 정의된 키 값에서 환경 변수를 설정할 수 있습니다. 그런 다음 이전에 구성 맵에 저장된 값은 런타임 시 함수에 의해 환경 변수로 액세스할 수 있습니다. 이 기능은 사용자 ID와 같이 구성 맵에 저장된 값에 액세스하는 데 유용할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Serving이 클러스터에 설치되어 있습니다.
-
Knative(
kn
) CLI가 설치되어 있습니다. - 함수를 생성했습니다.
절차
-
함수에 사용할
func.yaml
파일을 엽니다. 환경 변수에 할당할 구성 맵 키-값 쌍의 각 값에 대해
envs
섹션에 다음 YAML을 추가합니다.name: test namespace: "" runtime: go ... envs: - name: EXAMPLE value: '{{ configMap:myconfigmap:key }}'
-
EXAMPLE
을 환경 변수 이름으로 대체합니다. -
myconfigmap
을 대상 구성 맵의 이름으로 대체합니다. key
를 대상 값에 매핑된 키로 대체합니다.예를 들어
userdetailsmap
에 저장된 사용자 ID에 액세스하려면 다음 YAML을 사용합니다.name: test namespace: "" runtime: go ... envs: - value: '{{ configMap:userdetailsmap:userid }}'
-
- 설정을 저장합니다.
10.3.5. 시크릿에 정의된 모든 값에서 환경 변수 설정
시크릿에 정의된 모든 값에서 환경 변수를 설정할 수 있습니다. 그런 다음 이전에 시크릿에 저장된 값은 런타임 시 함수에서 환경 변수로 액세스할 수 있습니다. 이 기능은 시크릿에 저장된 값 모음(예: 사용자와 관련된 데이터 집합)에 대한 액세스 권한을 동시에 얻는 데 유용할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Serving이 클러스터에 설치되어 있습니다.
-
Knative(
kn
) CLI가 설치되어 있습니다. - 함수를 생성했습니다.
절차
-
함수에 사용할
func.yaml
파일을 엽니다. 모든 키-값 쌍을 환경 변수로 가져오려는 모든 시크릿에 다음 YAML을
envs
섹션에 추가합니다.name: test namespace: "" runtime: go ... envs: - value: '{{ secret:mysecret }}' 1
- 1
mysecret
을 대상 시크릿의 이름으로 대체합니다.
예를 들어
userdetailssecret
에 저장된 모든 사용자 데이터에 액세스하려면 다음 YAML을 사용합니다.name: test namespace: "" runtime: go ... envs: - value: '{{ configMap:userdetailssecret }}'
- 설정을 저장합니다.
10.3.6. 구성 맵에 정의된 모든 값에서 환경 변수 설정
구성 맵에 정의된 모든 값에서 환경 변수를 설정할 수 있습니다. 구성 맵에 이전에 저장된 값은 런타임 시 함수에서 환경 변수로 액세스할 수 있습니다. 이 기능은 구성 맵에 저장된 값 컬렉션에 동시에 액세스하는 데 유용할 수 있습니다(예: 사용자와 관련된 데이터 세트).
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Serving이 클러스터에 설치되어 있습니다.
-
Knative(
kn
) CLI가 설치되어 있습니다. - 함수를 생성했습니다.
절차
-
함수에 사용할
func.yaml
파일을 엽니다. 모든 키-값 쌍을 환경 변수로 가져오려는 모든 구성 맵에 대해
envs
섹션에 다음 YAML을 추가합니다.name: test namespace: "" runtime: go ... envs: - value: '{{ configMap:myconfigmap }}' 1
- 1
myconfigmap
을 대상 구성 맵의 이름으로 대체합니다.
예를 들어
userdetailsmap
에 저장된 모든 사용자 데이터에 액세스하려면 다음 YAML을 사용합니다.name: test namespace: "" runtime: go ... envs: - value: '{{ configMap:userdetailsmap }}'
- 파일을 저장합니다.