속성 세트 사용

이 페이지는 ApigeeApigee Hybrid에 적용됩니다.

Apigee Edge 문서를 보세요.

속성 집합은 데이터를 저장하는 키-값 쌍의 커스텀 컬렉션입니다. API 프록시가 실행될 때 이 데이터를 검색할 수 있습니다.

속성 집합을 사용하는 이유

속성 집합은 일반적으로 API 프록시 로직에 하드 코딩해서는 안 되는 만료되지 않는 데이터를 저장할 때 사용합니다. 흐름 변수에 액세스할 수 있는 프록시의 모든 위치에서 속성 집합 데이터에 액세스할 수 있습니다.

속성 집합의 일반적인 사용 사례는 이런저런 환경과 연결된 값을 제공하는 것입니다. 예를 들어 테스트 환경에서 실행되는 프록시에 해당되는 구성 값으로 환경 범위 속성 집합을 만들고 프로덕션 환경에 대한 또 다른 속성 집합을 만들 수 있습니다.

예를 들면 다음과 같습니다.

  • prod-env.properties 속성 집합에 log-level=error 속성이 포함되어 있습니다.
  • test-env.properties 속성 집합에 log-level=debug 속성이 포함되어 있습니다.

마찬가지로 환경별 라우팅 정보를 저장할 수 있습니다.

  • test-env.properties 속성 집합에 db-url=mydomain.test.datasource.com 속성이 포함되어 있습니다.
  • prod-env.properties 속성 집합에 db-url=mydomain.prod.datasource.com 속성이 포함되어 있습니다.

속성 집합 범위

속성 집합을 만들 때 API 프록시 버전 또는 환경으로 속성 집합의 범위를 지정할 수 있습니다. 속성 집합의 범위를 조직으로 지정할 수 없습니다.

다음 표에서는 API 프록시 및 조직 범위를 사용하여 속성 집합의 동작과 관리에 대해 설명합니다.

범위 런타임 동작 관리
API 프록시 속성은 속성 집합 리소스가 포함된 API 프록시 버전에만 사용할 수 있습니다. 다른 API 프록시나 동일한 프록시의 다른 버전은 해당 특정 속성 집합에 액세스할 수 없습니다. 관리자는 /resourcefiles Apigee API 또는 UI를 사용하여 속성 집합을 만들고 수정할 수 있습니다. API 프록시를 UI에 저장하면 새 버전이 생성되고 수정된 속성 집합은 해당 버전에만 연결됩니다.
환경 해당 환경 내 모든 API 프록시의 모든 버전에서 속성을 사용할 수 있습니다. 다른 환경의 API 프록시는 해당 속성 집합에 액세스할 수 없습니다. 관리자는 /resourcefiles Apigee API를 사용하여 환경 범위의 속성 집합을 생성, 보기, 업데이트 또는 삭제해야 합니다. 이러한 속성 집합은 표시되지 않으며 Apigee UI에서 수정할 수 없습니다.

속성 집합 한도

Apigee는 제한에 설명된 대로 속성 세트에 제한을 둡니다. 또한 속성 집합 파일은 Java 속성 파일과 동일한 구문을 사용해야 합니다. 단, 속성 집합 파일에서는 중괄호 {}를 사용할 수 없습니다.

속성 집합 파일 만들기

일반적으로 속성 집합 값을 파일에 이름/값 쌍으로 저장합니다. 속성 집합 파일은 properties 유형의 리소스 파일입니다.

속성 집합 파일은 자바 속성 파일과 동일한 구문을 지원합니다. 예를 들어 유니코드 값을 포함할 수 있으며 # 또는 ! 문자를 주석 마커로 사용할 수 있습니다. 단, 속성 집합 파일에서는 중괄호 {}를 사용할 수 없습니다.

속성 파일 이름에 서픽스 .properties를 추가해야 합니다. 예를 들어 myconfig.my_key.properties는 허용되지만 myconfig.my_key는 허용되지 않습니다.

속성 세트 사양의 구조는 property_set_name.property_name.properties입니다. 속성 세트 이름 및 속성 이름에는 점이 포함될 수 없습니다. 예를 들어 myconfig.my_key.properties는 허용되지만 myconfig.my.key.propertiesmy.config.my_key.properties는 허용되지 않습니다.

다음 예시에서는 여러 속성을 정의하는 간단한 속성 집합 파일을 보여줍니다.

# myProps.properties file
# General properties
foo=bar
baz=biff

# Messages/notes/warnings
message=This is a basic message.
note_message=This is an important message.
error_message=This is an error message.

# Keys
publickey=abc123
privatekey=splitwithsoundman

속성 집합 파일을 만든 후 UI 또는 API를 사용하여 Apigee에 업로드합니다.

UI를 사용하여 속성 집합 관리

다른 리소스를 관리하는 것과 동일한 방식으로 UI를 사용하여 API 프록시 버전으로 범위가 지정된 속성 세트를 관리합니다. 자세한 내용은 UI를 사용하여 리소스 관리를 참조하세요.

API를 사용하여 속성 집합 관리

다음 섹션에 설명된 대로 API를 사용하여 API 프록시 버전 또는 환경으로 범위가 지정된 속성 집합을 관리합니다.

API를 사용하여 속성 집합 만들기

다음 섹션에서는 API를 사용하여 API 프록시 버전 또는 환경으로 범위가 지정된 속성 집합을 만드는 방법을 설명합니다.

API를 사용하여 API 프록시 버전으로 범위가 지정된 속성 집합 만들기

API를 사용하여 API 프록시 버전으로 범위가 지정된 속성 집합을 만들려면 다음 안내를 따르세요.

  1. 속성 집합 파일을 만듭니다.
  2. 속성 집합 파일을 API 프록시 구성 번들에 추가합니다.
  3. API 프록시 만들기 또는 API 프록시 버전 업데이트 API를 사용하여 번들을 업로드합니다.

API를 사용하여 환경으로 범위가 지정된 속성 집합 만들기

API를 사용하여 환경으로 범위가 지정된 속성 집합을 추가하려면 속성 집합 파일을 만든 다음 POST 다음 리소스에 대한 요청을 발송하여 조직의 환경에 업로드합니다. https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles

요청에 다음 정보를 포함합니다.

  • name 쿼리 매개변수를 속성 집합의 이름으로 설정합니다.
  • type 쿼리 매개변수를 properties로 설정합니다.
  • 속성 집합 파일의 콘텐츠를 application/octet-stream 또는 multipart/form-data로 전달합니다.

다음 예시는 /Users/myhome/myprops.properties 파일에서 MyPropSet라는 속성 집합을 가져옵니다.

curl -X POST "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles?name=MyPropSet&type=properties"
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-type: multipart/form-data" \
  -F file=@/Users/myhome/myprops.properties
  

$TOKENOAuth 2.0 액세스 토큰 가져오기에 설명된 대로 OAuth 2.0 액세스 토큰으로 설정합니다. 이 예시에서 사용된 curl 옵션에 대한 자세한 내용은 curl 사용을 참조하세요.

다음은 응답의 예시입니다.

{
  "name": "MyPropSet",
  "type": "properties"
}

자세한 내용은 리소스 파일 API 만들기를 참조하세요.

API를 사용하여 속성 집합 보기

다음 섹션에서는 API를 사용하여 환경에 범위가 지정된 속성 집합을 보는 방법을 설명합니다.

API를 사용하여 환경으로 범위가 지정된 모든 속성 집합 보기

API를 사용하여 환경으로 범위가 지정된 모든 속성 집합을 보려면 다음 리소스에 대한 GET 요청을 실행합니다. https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles/properties

다음 예시는 테스트 환경의 모든 속성 집합을 나열합니다.

curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/properties" \
  -H "Authorization: Bearer $TOKEN"
  

$TOKENOAuth 2.0 액세스 토큰 가져오기에 설명된 대로 OAuth 2.0 액세스 토큰으로 설정합니다. 이 예시에서 사용된 curl 옵션에 대한 자세한 내용은 curl 사용을 참조하세요.

다음은 응답의 예시입니다.

{
  "resourceFile": [
    {
      "name": "MyPropSet",
      "type": "properties"
    }
  ]
}

자세한 내용은 환경 리소스 파일 API 나열을 참조하세요.

API를 사용하여 환경으로 범위가 지정된 속성 집합의 콘텐츠 보기

API를 사용하여 환경으로 범위가 지정된 속성 집합의 콘텐츠를 보려면 다음 리소스에 GET 요청을 실행합니다. https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles/properties/name

다음 예시에서는 테스트 환경 내 MyPropSet 속성 집합의 콘텐츠를 보여줍니다.

curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/properties/MyPropSet" \
  -H "Authorization: Bearer $TOKEN"
  

$TOKENOAuth 2.0 액세스 토큰 가져오기에 설명된 대로 OAuth 2.0 액세스 토큰으로 설정합니다. 이 예시에서 사용된 curl 옵션에 대한 자세한 내용은 curl 사용을 참조하세요.

다음은 응답의 예시입니다.

# myProps.properties file
# General properties
foo=bar
baz=biff

# Messages/notes/warnings
message=This is a basic message.
note_message=This is an important message.
error_message=This is an error message.

# Keys
publickey=abc123
privatekey=splitwithsoundman

자세한 내용은 환경 리소스 파일 API 나열을 참조하세요.

API를 사용하여 속성 집합 업데이트

다음 섹션에서는 API를 사용하여 API 프록시 버전 또는 환경으로 범위가 지정된 속성 집합을 업데이트하는 방법을 설명합니다.

API를 사용하여 API 프록시 버전으로 범위가 지정된 속성 집합 업데이트

API를 사용하여 API 프록시 버전으로 범위가 지정된 속성 집합을 업데이트하려면 다음 안내를 따르세요.

  1. 속성 집합 파일을 업데이트합니다.
  2. 다음 옵션과 함께 API 프록시 버전 API 가져오기를 사용하여 API 프록시 구성 번들을 다운로드합니다.
    • format 쿼리 매개변수를 bundle로 설정합니다.
    • Accept 헤더를 application/zip로 설정합니다.
  3. 속성 집합 파일을 API 프록시 구성 번들에 추가합니다.
  4. API 프록시 버전 업데이트 API를 사용하여 API 프록시 구성 번들을 업로드합니다.

API를 사용하여 환경으로 범위가 지정된 속성 집합 업데이트

API를 사용하여 환경으로 범위가 지정된 속성 집합을 업데이트하려면 속성 집합 파일을 업데이트한 다음 PUT 다음 리소스에 대한 요청을 발송하여 조직의 환경에 업로드합니다. https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

요청에 다음 정보를 포함합니다.

  • {type}properties로 설정합니다.
  • {name}를 업데이트할 속성 집합의 이름으로 설정합니다.
  • 속성 집합 파일의 콘텐츠를 application/octet-stream 또는 multipart/form-data로 전달합니다.

다음 예시에서는 /Users/myhome/myprops-revised.properties 파일의 콘텐츠를 사용하여 MyPropSet 속성을 설정합니다.

curl -X PUT "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/properties/MyPropSet"
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-type: multipart/form-data" \
  -F file=@/Users/myhome/myprops-revised.properties
  

$TOKENOAuth 2.0 액세스 토큰 가져오기에 설명된 대로 OAuth 2.0 액세스 토큰으로 설정합니다. 이 예시에서 사용된 curl 옵션에 대한 자세한 내용은 curl 사용을 참조하세요.

다음은 응답의 예시입니다.

{
  "name": "MyPropSet",
  "type": "properties"
}

자세한 내용은 리소스 파일 API 업데이트를 참조하세요.

API를 사용하여 속성 집합 삭제

다음 섹션에서는 API를 사용하여 API 프록시 버전 또는 환경으로 범위가 지정된 속성 집합을 삭제하는 방법을 설명합니다.

API를 사용하여 API 프록시 버전으로 범위가 지정된 속성 집합 업데이트

API를 사용하여 API 프록시 버전으로 범위가 지정된 속성 집합을 삭제하려면 다음 안내를 따르세요.

  1. 다음 옵션과 함께 API 프록시 버전 API 가져오기를 사용하여 API 프록시 구성 번들을 다운로드합니다.
    • format 쿼리 매개변수를 bundle로 설정합니다.
    • Accept 헤더를 application/zip로 설정합니다.
  2. API 프록시 구성 번들에서 속성 집합 파일을 삭제합니다.
  3. API 프록시 버전 업데이트 API를 사용하여 API 프록시 구성 번들을 업로드합니다.

API를 사용하여 환경으로 범위가 지정된 속성 집합 삭제

API를 사용하여 환경으로 범위가 지정된 속성 집합을 삭제하려면 다음 리소스에 DELETE 요청을 실행합니다. https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

요청에 다음 정보를 전달합니다.

  • {type}properties로 설정합니다.
  • {name}를 삭제하려는 속성 집합의 이름으로 설정합니다.

다음 예시에서는 MyPropSet 속성 집합을 삭제합니다.

curl -X DELETE https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/properties/MyPropSet \
  -H "Authorization: Bearer $TOKEN"
  

$TOKENOAuth 2.0 액세스 토큰 가져오기에 설명된 대로 OAuth 2.0 액세스 토큰으로 설정합니다. 이 예시에서 사용된 curl 옵션에 대한 자세한 내용은 curl 사용을 참조하세요.

다음은 응답의 예시입니다.

{
  "name": "MyPropSet",
  "type": "properties"
}

자세한 내용은 리소스 파일 API 삭제를 참조하세요.

속성 집합 값 액세스

정책, 흐름, 자바스크립트 코드 등의 흐름 변수에 액세스할 수 있는 API 프록시의 속성 집합 값에 액세스합니다.

속성 집합의 값에 액세스하려면 다음 구문을 사용하세요.

propertyset.[property_set_name].[property_name]

각 항목의 의미는 다음과 같습니다.

  • property_set_name는 정의한 파일 이름(UI를 사용한 경우) 또는 name 쿼리 매개변수의 값(API를 사용한 경우)입니다.
  • property_name은 속성의 이름입니다. 예를 들어 속성 세트에 foo=bar가 포함된 경우 foo는 속성의 이름이고 bar는 값입니다.

예를 들어 자바스크립트 정책에서 getVariable() 메서드를 사용하여 속성 집합에서 값을 가져옵니다.

context.getVariable('propertyset.property_set_name.property_name);

다음 예시는 'MyPropSet'라는 속성 집합에서 foo 속성 값을 가져옵니다.

context.getVariable('propertyset.MyPropSet.foo);

다음 예시와 같이 ExtractVariables 정책을 사용하여 속성 집합에서 속성 값을 가져와서 다른 변수에 할당할 수도 있습니다.

<ExtractVariables name="ExtractVariables-1">
   <DisplayName>Extract a portion of the url path</DisplayName>
   <Source>request</Source>
   <Variable name="propertyset.MyPropSet.foo">
      <Pattern>{myVar}</Pattern>
   </Variable>
   <VariablePrefix>foobar</VariablePrefix>
   <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

이 예시에서는 정책이 name 속성에서 변수를 읽고 Pattern 요소의 변수에 값을 할당합니다.

메시지 할당 정책을 사용하여 속성 집합 키의 값을 동적으로 할당

메시지 할당 정책을 사용하여 속성 집합 키의 값을 흐름 변수에 동적으로 할당할 수 있습니다. 자세한 내용은 메시지 할당 정책 참조의 PropertySetRef 설명을 참조하세요.

Apigee Hybrid 사용자의 경우

Apigee Hybrid를 사용하는 경우 다음 사항에 유의하세요.

  1. 하이브리드 관리 영역은 속성 집합의 유효성을 검사합니다. 유효한 경우 속성이 관리 영역에 저장됩니다.
  2. 동기화 담당자는 속성 집합 데이터를 검색하여 런타임 영역에 로컬로 저장합니다.
  3. 메시지 프로세서는 다운로드한 속성 집합을 로드하고 프록시를 실행할 수 있게 합니다.