환경 구성 및 배포

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

Apigee Edge 문서 보기

환경은 배포하려는 API 프록시 및 공유 흐름에 대한 런타임 실행 컨텍스트입니다. 테스트를 위해 액세스하려면 먼저 하나 이상의 환경에 API 프록시 및 공유 흐름을 배포해야 합니다. 환경에 대한 자세한 내용은 환경 및 환경 그룹 정보를 참조하세요.

다음 섹션에 설명된 대로 환경을 구성 및 배포합니다. Apigee 작업공간의 폴더 및 파일 관리도 참조하세요.

환경 구성

환경을 배포하기 전에 배포할 API 프록시 및 공유 흐름을 식별하도록 구성하고 필요에 따라 고유 흐름 후크 또는 대상 서버를 구성해야 합니다.

환경을 구성하려면 환경을 만들고 다음 표에 정의된 구성을 수정합니다.

구성 설명
디버그 마스크(debugmasks.json) 마스크 구성을 정의하여 trace 및 디버그 세션에서 특정 데이터를 마스킹합니다.
배포(deployments.json) 배포에서 API 프록시 및 공유 흐름을 정의합니다.
흐름 후크(flowhooks.json) 환경에 배포된 모든 API 프록시에 대해 동일한 위치에서 실행되도록 공유 흐름을 흐름 후크에 연결합니다.
대상 서버(targetservers.json) 대상 엔드포인트에서 구체적인 엔드포인트를 연결 해제하여 백엔드 서버 인스턴스 간 부하 분산 및 장애 조치를 지원합니다.
키 저장소(keystores.json) 대상 엔드포인트대상 서버에 TLS 지원을 추가합니다.

또한 리소스가 필요한 정책을 사용하는 경우 필요에 따라 환경 수주에서 리소스를 관리할 수 있습니다.

환경 만들기

Cloud Code에서 Apigee의 환경을 만들려면 다음 안내를 따르세요.

  1. 다음 작업 중 하나를 수행합니다.

    • Apigee 섹션의 환경 폴더 위에 커서를 놓고 만들기 아이콘를 클릭합니다.

      environments 폴더 위에 커서를 놓으면 +가 표시됨

    • 보기 > 명령어 팔레트를 선택하여 명령어 팔레트를 열고 Cloud Code: Apigee 환경 만들기를 선택합니다.

    환경 만들기 마법사가 열립니다.

  2. 환경 이름을 입력하고 Enter를 누릅니다.

다음 그림에 표시된 것처럼 Apigee 섹션의 환경 폴더에 환경이 추가됩니다.

deployments.json, flowhooks.json, targetservers.json 파일이 있는 환경 폴더

다음 섹션에 설명된 대로 환경을 구성합니다.

디버그 마스크 구성(debugmask.json)

Apigee를 사용하면 마스크 구성을 정의하여 trace 및 디버그 세션에서 특정 데이터를 마스킹할 수 있습니다. 데이터가 마스킹되면 데이터는 trace 출력에서 별표로 대체됩니다. 예를 들면 다음과 같습니다.

<description>**********</description>

자세한 내용은 민감한 정보 마스킹을 참조하세요.

디버그 마스크를 구성하려면 직접 파일을 수정하여 debugmask.json 파일을 업데이트합니다.

다음은 JSON 형식 마스크 구성의 기본 구조에 대한 예시입니다. 예시에 표시된 마스크 구성 필드에 관한 자세한 내용은 DebugMask를 참조하세요.

{
  "namespaces": {
    "myco": "https://example.com"
  },
  "requestXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "responseXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "faultXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "requestJSONPaths": [
    "$.store.book[].author"
  ],
  "responseJSONPaths": [
    "$.store.book[].author"
  ],
  "faultJSONPaths": [
    "$.store.book[*].author"
  ],
  "variables": [
    "request.header.user-agent",
    "request.formparam.password"
  ]
}

배포 구성(deployments.json)

배포에 포함할 API 프록시 및 공유 흐름을 구성합니다.

배포를 구성하려면 구성 마법사(아래 설명 참조)를 사용하거나 직접 파일을 수정하여 deployments.json 파일을 업데이트합니다.

구성 마법사를 사용하여 배포를 구성하려면 다음 안내를 따르세요.

  1. 환경의 deployments.json 파일 위에 커서를 놓고 마법사 아이콘를 클릭합니다.

    deployments.json 폴더 위에 커서를 놓을 때 표시되는 설정 아이콘입니다.

  2. 구성 마법사를 따라 배포를 선택하고 deployments.json 파일의 필드를 자동으로 채웁니다.
    편집기에 deployments.json파일이 열립니다.

  3. 필요에 따라 구성을 수정합니다.

  4. 파일 > 저장 또는 ⌘S를 선택해 수정사항을 저장합니다.

다음 예시에서는 helloworld API 프록시, mysharedflow, hw-sharedflow 공유 흐름을 포함하도록 배포를 구성합니다.

{
  "proxies" : [
     "helloworld"
  ],
  "sharedflows" : [
     "mysharedflow",
     "hw-sharedflow"
  ]
}

프록시 및 공유 흐름 배포로 서비스 계정 구성

Google 서비스를 백엔드로 사용하는 API 프록시에는 배포와 연결된 Google Cloud 서비스 계정이 필요할 수 있습니다. Google 인증 사용을 참조하세요.

deployments.json 파일을 수정할 때 API 프록시 또는 공유 흐름을 Google Cloud 서비스 계정과 연결할 수 있습니다. 예를 들면

{
  "name": "proxy-name",
  "serviceAccount": "associated-service-account"
}
입니다.

다음 예시에서는 서비스 계정이 API 프록시helloworld 및 공유 흐름 mysharedflow와 연결되어 있지만 프록시 healthcheck 및 공유 흐름 hw-sharedflow가 서비스 계정과 연결되지 않은 배포 구성을 보여줍니다.

{
  "proxies": [
    {
      "name": "helloworld",
      "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com"
    },
    "healthcheck"
  ],
  "sharedflows": [
    {
      "name": "mysharedflow",
      "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com"
    },
    "hw-sharedflow"
  ]
}

API 프록시에서 서비스 계정 인증 기능을 테스트하도록 Apigee 에뮬레이터를 구성하는 방법을 자세히 알아보세요.

흐름 후크를 사용하여 공유 흐름 연결(flowhooks.json)

흐름 후크를 사용하면 특정 환경에 배포된 모든 API 프록시에 대해 동일한 위치에서 실행되도록 공유 흐름을 연결할 수 있습니다. 이렇게 하면 별도로 구현되고 API 프록시 구현 코드의 일부가 아닌 로직 시퀀스로 배포됩니다. 특히 API 프록시 흐름에서 다음 위치에 공유 흐름을 연결할 수 있습니다.

  • API 프록시 엔드포인트 실행 전(PreProxyFlowHook)
  • API 프록시 엔드포인트가 실행된 후 클라이언트(PostProxyFlowHook)에게 응답이 전송되기 직전
  • 대상 엔드포인트 실행 전(PreTargetFlowHook)
  • 대상 응답 실행 후(PostTargetFlowHook)

흐름 후크에 대한 자세한 내용은 흐름 후크를 사용하여 공유 흐름 연결을 참조하세요.

흐름 후크를 사용하여 공유 흐름을 연결하려면 구성 마법사(아래 설명 참조)를 사용하거나 직접 파일을 수정하여 flowhooks.json 파일을 업데이트합니다.

구성 마법사를 사용하여 배포를 구성하려면 다음 안내를 따르세요.

  1. 환경의 flowhooks.json 파일 위에 커서를 놓고 마법사 아이콘를 클릭합니다.
  2. 구성 마법사를 따라 API 프록시 흐름의 특정 위치에 연결할 공유 흐름을 선택하고 flowhooks.json 파일의 필드를 자동으로 채웁니다.
    편집기에 flowhooks.json 파일이 열립니다.
  3. 필요에 따라 구성을 수정합니다.
  4. 파일 > 저장 또는 ⌘S를 선택해 수정사항을 저장합니다.

다음 예시는 API 프록시 엔드포인트 실행 전에 실행되도록 mysharedflowPreProxyFlowHook에 연결합니다.

{
  "PreProxyFlowHook": {
    "continueOnError": true,
    "sharedFlow": "mysharedflow",
    "description": "Shared enforced before a proxy endpoint executes."
  }  
}

대상 서버 구성(targetservers.json)

대상 서버(TargetServers)는 구체적인 엔드포인트 URL을 대상 엔드포인트(TargetEndpoint) 구성에서 분리합니다. 구성에서 구체적인 URL을 정의하는 대신 이름이 지정된 TargetServer를 하나 이상 구성할 수 있습니다. 그러면 TargetEndpoint HTTPConnection에서 각 TargetServer를 이름으로 참조합니다.

대상 서버에 대한 자세한 내용은 다음 주제를 참조하세요.

대상 서버를 구성하려면 구성 마법사(아래 설명 참조)를 사용하거나 직접 파일을 수정하여 targetservers.json 파일을 업데이트합니다. targetservers.json 파일의 필드에 대한 설명은 리소스: TargetServer를 참조하세요.

구성 마법사를 사용해 대상 서버를 구성하려면 다음 안내를 따르세요.

  1. 환경의 targetservers.json 파일 위에 커서를 놓고 마법사 아이콘를 클릭합니다.
  2. 구성 마법사를 따라 대상 서버를 구성하고 targetservers.json 파일의 필드를 자동으로 채웁니다. 편집기에 targetservers.json 파일이 열립니다.
  3. 필요에 따라 구성을 수정합니다.
  4. 파일 > 저장 또는 ⌘S를 선택해 수정사항을 저장합니다.

다음 예시에서는 환경에 새 대상 서버를 추가합니다.

[
  {
    "enabled": true,
    "description": "My first target server",
    "name": "mytargetserver",
    "host": "localhost",
    "port": 80
  }
]

다음 예시에서는 키 저장소를 사용하여 상호 TLS로 대상 서버를 구성합니다.

[
    {
        "name": "mtlsserver",
        "host": "mytargetserver.mydomain",
        "port": 443,
        "enabled": true,
        "protocol": "HTTP",
        "tlsInfo": {
            "enabled": true,
            "clientAuthEnabled": true,
            "keyStore": "mykeystore",
            "keyAlias": "mykeyandcert",
            "trustStore": "mytruststore"
        }
    }
]

키 저장소 구성(keystores.json)

키 저장소는 대상 엔드포인트 및 대상 서버에서 TLS 암호화에 사용되는 보안 인증서 저장소를 정의합니다.

TLS 구성에 대한 자세한 내용은 TLS 구성 옵션을 참조하세요.

키 저장소를 구성하려면 다음 안내를 따르세요.

  1. 편집기에서 환경의 keystores.json 파일을 엽니다. 파일에는 두 가지 기본 요소가 있습니다.
    • stores - 키 저장소 이름과 추가된 별칭의 매핑
    • references - 모든 키 저장소 참조 이름과 연결된 키 저장소 이름의 매핑
  2. 필요에 따라 구성을 수정합니다.
  3. 파일 > 저장 또는 ⌘S를 선택해 수정사항을 저장합니다.

다음 예시는 두 개의 별칭(mycert-aliasmykeycert-alias)이 있는 키 저장소 mykeystore를 보여줍니다.

{
    "stores": {
      "mykeystore": {
        "my-cert-alias": {
          "cert": "/Users/jdoe/testkeys/cert1.pem"
        },
        "my-keycert-alias": {
          "key": "/Users/jdoe/testkeys/key1.pem",
          "cert": "/Users/jdoe/testkeys/cert1.pem"
        }
      }
    }
  }

환경 배포

환경에 맞게 구성된 API 프록시 및 공유 흐름을 배포하여 테스트를 위해 액세스할 수 있습니다.

환경을 배포하려면 다음 안내를 따르세요.

  1. Apigee 섹션에서 배포할 환경의 폴더 위에 커서를 놓습니다.
  2. 배포 아이콘를 클릭합니다.

    dev 환경 폴더 위에 커서를 놓으면 배포 아이콘이 표시됨

  3. Apigee 에뮬레이터의 컨테이너가 여러 개 실행 중이면 환경을 배포할 컨테이너를 선택합니다.
  4. 배포를 내보낼 테스트 번들을 선택하거나 테스트 번들 없이 배포를 선택합니다.

    테스트 번들 내보내기 메시지 표시

    Apigee 에뮬레이터로 테스트 리소스 내보내기에 설명된 대로 나중에 테스트 리소스를 내보낼 수 있습니다.

환경이 배포되고 다음 정보가 출력 탭에 표시됩니다.

Environment dev deployed successfully with revision 7

아래 표시된 대로 배포된 애플리케이션이 Apigee 에뮬레이터에 표시됩니다.

배포된 helloworld 애플리케이션과 활성 테스트 리소스를 보여주는 Apigee 에뮬레이터

다음 단계

이제 API를 테스트할 차례입니다.