클라우드 API(CAPI)
클라우드 API(CAPI)를 사용하면 REST API를 사용하여 클라우드 프로비저닝 및 거버넌스를 클라우드 제공자와 통합할 수 있습니다.
CAPI 구성요소
클라우드 제공자와의 통합은 PUT, GET, POST 및 DELETE와 같은 REST 호출을 통해 수행됩니다. CAPI에서는 인스턴스가 클라우드 제공자와 통신하여 클라우드 자원을 관리할 수 있도록 클라우드 공급업체 REST API를 통합하는 프레임워크를 제공합니다.
자세한 내용은 을 참조하십시오 .
- 제공자
클라우드 제공자는 연결할 수 있는 클라우드입니다. 기본적으로 클라우드 프로비저닝 및 거버넌스에는 AWS, Azure 및 VMware와 같은 가장 일반적으로 사용되는 제공자가 포함됩니다. 각 제공자에는 각각 자원 유형을 제공하는 여러 제품이 있습니다. 각 자원 유형은 단일 CI 유형에 매핑됩니다. 예를 들어, AWS provider에는 AWS::EC2::Instance 자원 유형을 포함하는 AWS Elastic Compute Cloud 제품이 포함됩니다. 이 자원 유형은 사용자가 만들 수 있는 가장 일반적인 클라우드 자원 중 하나입니다. 이는 CMDB에서 가상 머신이 저장되어 있는 가상 머신 인스턴스 [cmdb_CI_vm_instance] CI 유형에 직접 매핑됩니다.
- 인터페이스
인터페이스는 시스템에서 클라우드 제공자 API가 예상하는 REST 호출을 구조화하는 데 필요한 프레임워크를 정의합니다. 인터페이스는 방법이라고도 하는 작업과 각 방법에 필요한 매개변수를 정의합니다.
인터페이스는 다시 사용할 수 있습니다. 새 제품과 API를 포함하도록 CAPI를 확장하는 경우 기존 인터페이스를 사용하여 동일한 REST 호출을 수행할 수 있습니다.
- API
CAPI API는 제품과 인터페이스를 함께 연결하는 CAPI의 핵심 구성요소입니다. API에는 시스템에서 실행되는 실제 코드가 포함되어 있습니다.
각 CAPI API에는 다음 구성요소가 포함되어 있습니다.- CAPI 메서드 매퍼는 인터페이스에서 정의된 작업에 매핑되는 메서드를 제공합니다. CAPI 메서드 매퍼를 통해 JavaScript에서 MID 서버 스크립트 포함을 만들어 클라우드 제공자에게 수행할 작업을 정확히 알립니다. 이 스크립트 포함을 통해 클라우드 제공자와 연결됩니다.주:사용자 지정 CAPI API를 만들면 시스템에서 사용자 지정할 빈 스크립트 포함을 제공합니다. 필요한 경우 메서드 매퍼에서 기존 스크립트 포함을 수정할 수도 있습니다. 그러나 클라우드 프로비저닝 및 거버넌스 애플리케이션과 함께 제공되는 많은 기본 API는 수정 가능한 스크립트 포함을 사용하지 않습니다. 이 연결은 Java에서 하드 코딩됩니다. 사용자가 만든 새 자원 블록에서는 이러한 API를 계속 사용할 수 있지만 API를 수정할 수는 없습니다.
- API 구성 재정의에는 키, 자격 증명(예: 암호 키), 클라우드 제공자가 요구하는 기타 중요한 매개변수 등의 ID가 포함됩니다. 이러한 매개변수를 통해 클라우드 제공자는 CAPI 메서드 매퍼 관련 목록에서 작업을 수행할 수 있습니다. 시스템에서 REST를 통해 클라우드 제공자 API를 호출하는 경우 자격 증명 데이터가 포함되지 않기 때문에 API Config 재정의가 필요합니다. 자원 블록은 자격 증명 저장소를 쿼리하기 위해 API 구성 재정의에서 정의하는 매개변수와 값을 사용합니다. API를 실행하면 스크립트 포함의 모든 메서드 호출에 속성을 사용할 수 있게 됩니다.
재정의는 이 API에 대해서만 범위가 한정됩니다. 재정의는 다른 API에서는 아무 것도 재정의하지 않습니다.
약간의 변형을 사용하여 여러 버전의 CAPI API를 정의할 수 있으므로 원하는 기능을 유지하면서 기존 API를 덮어쓰지 않고 확장할 수 있습니다.
- CAPI 메서드 매퍼는 인터페이스에서 정의된 작업에 매핑되는 메서드를 제공합니다. CAPI 메서드 매퍼를 통해 JavaScript에서 MID 서버 스크립트 포함을 만들어 클라우드 제공자에게 수행할 작업을 정확히 알립니다. 이 스크립트 포함을 통해 클라우드 제공자와 연결됩니다.
이 예에서는 Microsoft.Compute 제품이 Azure 제공자에 포함되어 있습니다. Azure는 가상 머신에 Microsoft.Compute 제품을 사용합니다. 해당 인스턴스에서 Microsoft.Compute 제품은 CMDB의 Virtual Machine Instance CI 유형과 연결된 Microsoft.Compute/virtualMachines 자원 유형에 매핑됩니다.
이 Compute 인터페이스에는 실제 가상 머신을 만드는 방법을 정의하는 CreateNode와 같은 메서드에 대한 정의가 포함되어 있습니다. CreateNode에서 사용하는 많은 매개변수 중에서 Location이 가상 머신이 상주하는 데이터센터를 캡처합니다.
Azure Compute API는 Compute 인터페이스에 정의된 Microsoft.Compute 제품과 구조를 함께 가져옵니다. CreateNode 메서드의 구현은 AzureComputeVirtualMachine MID 서버 스크립트 포함을 호출하는 azure-compute-1.0-CreateNode MID 서버 스크립트 포함을 호출합니다. 이 스크립트 포함은 Azure API를 실제로 호출합니다. Azure 계정에 접근하면 SecretKey, ClientID, TenantID 및 기타 메서드가 구성 재정의에 전달됩니다.
CAPI와 인스턴스를 통합하는 방법
- 클라우드 프로비저닝 및 거버넌스 자원 블록
자원 블록은 가상 서버, 가상 서버 저장소 또는 데이터센터와 같은 단일 클라우드 자원을 나타냅니다. 또한 CMDB의 CI 유형이라고 생각할 수도 있습니다. 클라우드 카탈로그에서 사용자에게 카탈로그 항목(스택이라고도 함)으로 나타나는 Blueprint에 여러 자원 블록을 함께 넣을 수 있습니다.
시스템에서 각 자원 블록은 CAPI를 참조하는 컨테이너와 비슷하며 클라우드 제공자의 응답을 특정 CI에 연결합니다. 자원 블록 사용:- 프로비저닝 작업과 같이 각 작업에 대해 CAPI를 호출하고 클라우드 제공자가 작업을 실행하는 데 필요한 매개변수 값을 함께 전달하는 운영 단계
- 제공자의 REST 응답을 처리 및 구문 분석하고 CMDB에서 기록을 업데이트하는 응답 프로세서
- CMDB
각 자원 블록은 CMDB의 CI 유형을 기반으로 합니다. 클라우드 프로비저닝 및 거버넌스의 경우 모든 클라우드 관련 CI 유형은 기본적으로 지원되는 모든 클라우드 자원에 필요한 모든 속성을 제공하는 Virtual Machine Object CI 클래스를 기반으로 합니다. 클라우드 자원에 대한 CI 유형이 기본 시스템에 없는 경우 새 CI 클래스를 만들고 필요한 속성을 추가해야 합니다.
새 CI 클래스를 만드는 경우 다음 사항도 만들어야 합니다.- 사용자가 사용할 수 있는 각 자원에 대한 CI 클래스 가상 머신 객체 클래스를 기반으로 하는 모든 CI 클래스
- 객체 ID를 지정하는 ID 규칙. 클라우드 관리의 구성요소가 CMDB의 특정 클라우드 자원을 참조할 때마다 올바른 클라우드 자원을 찾기 위해 객체 ID가 필요합니다.
- 자원에 대한 CI 클래스가 다른 CI 클래스와 관련되는 방법을 지정하는 관계 규칙. 예를 들어, virtual server CI는 datacenter CI와 Hosted on::Hosts 관계가 있어야 합니다. 이러한 관계 규칙은 식별 및 조정 엔진(IRE)에서 처리될 때 CI 고유성을 유지하기 위해 필요합니다. 서비스 계정, 자원의 객체 ID, 자원이 위치해 있는 데이터센터(또는 위치)의 조합을 통해 고유성이 결정됩니다.
- MID 서버 스크립트 포함
- CAPI API의 각 작업에는 사용자가 구성하는 MID 서버 스크립트 포함이 있습니다. 스크립트 포함은 시스템의 다른 스크립트 포함에 이미 있는 JavaScript 또는 사용자가 만든 JavaScript 클래스를 호출합니다. 결과적으로 호출자 클래스는 REST 호출을 트리거하도록 호출됩니다. MID 서버 스크립트 포함은 ServiceNow 인스턴스에서 구성되지만 MID 서버에서 실행됩니다.
이 이미지는 사용자가 클라우드 사용자 포털에서 자원을 프로비저닝할 때 구성요소가 함께 작동하는 방법을 보여줍니다.
클라우드 제공자에 대한 REST 호출
- 스크립트 포함에서 MID 서버 호출할 수 있는 클래스 MID 서버 스크립트 포함의 CAPI 클래스 문서를 참조하십시오.
- 클라우드 제공자가 REST를 구현하는 방법 참조:
- 엔드포인트는
management.azure.com입니다. - PUT 작업을 통해 호출되는 메서드는
subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}?api-version=2018-02-01이며, 여기에서 구독 ID, 자원 그룹 이름 및 API 버전은 사용자가 지정합니다.
CAPI API 메서드 매퍼와 연결된 MID 서버 스크립트 포함에서 REST API 호출이 발생한다는 것을 기억하십시오. CloudAPIBase 및 CloudRESTAPIInvoker에서 확장된 클래스를 사용하여 CAPI가 이미 사용할 수 있도록 해놓은 메서드를 호출합니다. 이러한 기본 클래스를 확장하고 사용자 고유의 클래스를 만들 수 있는 추가 스크립트 포함을 만들 수도 있습니다. 이러한 기본 클래스와 그 내부에서 사용할 수 있는 메서드를 숙지하십시오.
여기서 시작하기
- 와 함께 제공되는 CAPI API 검토 클라우드 프로비저닝 및 거버넌스 기본적으로.
- 기본적으로 제공되는 CAPI 클래스를 검토합니다. 이러한 클래스는 CAPI API 작업의 MID 서버 스크립트 포함에서 호출할 수 있습니다.
- Azure 가상 머신과 AWS 가상 머신의 프로비저닝을 검토하여 구성요소가 함께 작동하는 방식을 확인합니다. Azure 검토 과정에서는 MID 서버 스크립트 포함을 사용하므로 프로비저닝 작업에 사용되는 다양한 CAPI 클래스를 확인할 수 있습니다. AWS 검토 과정에서는 MID 서버 스크립트 포함을 사용하지 않습니다.
- CAPI에서 기존 제공자에 제품 추가.
- 가상 클라우드 자원에 대한 CI 클래스 만들기.
- CAPI 인터페이스 생성 또는 확장하기.
- CAPI API 만들기, 클라우드 제공자에게 REST 호출을 수행하는 사용자 지정 MID 서버 스크립트 포함을 만듭니다. 비어 있는 MID 서버 스크립트 포함은 항상 새 CAPI API에 대해 생성됩니다. 호출자 클래스의 메서드와 같은 다른 JavaScript 클래스 및 메서드에 대한 호출을 통해 이를 수정합니다.