클라우드 API(CAPI)
클라우드 API(CAPI)를 사용하면 REST API를 사용하여 클라우드 제공자와 통합 클라우드 프로비저닝 및 거버넌스 할 수 있습니다.
CAPI 구성요소
클라우드 제공자와의 통합은 PUT, GET, POST 및 DELETE와 같은 REST 호출을 통해 수행됩니다. CAPI에서는 인스턴스가 클라우드 제공자와 통신하여 클라우드 자원을 관리할 수 있도록 클라우드 공급업체 REST API를 통합하는 프레임워크를 제공합니다.
자세한 내용은 Browse APIs by product 문서를 참조하십시오.
- 제공자
클라우드 제공자는 연결할 수 있는 클라우드입니다. 기본적으로 클라우드 프로비저닝 및 거버넌스 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 구성 재정의가 필요합니다. 자원 블록은 API 구성 재정의에서 정의하는 매개변수와 값을 사용하여 자격 증명 스토어를 쿼리합니다. API가 실행되면 스크립트 포함의 모든 메서드 호출에 속성을 사용할 수 있게 됩니다.
재정의는 이 API에 대해서만 범위가 한정됩니다. 재정의는 다른 API에서는 아무 것도 재정의하지 않습니다.
약간의 변형을 사용하여 여러 버전의 CAPI API를 정의할 수 있으므로 원하는 기능을 유지하면서 기존 API를 덮어쓰지 않고 확장할 수 있습니다.
- CAPI 메서드 매퍼 는 인터페이스에서 정의된 작업에 매핑되는 메서드를 제공합니다. CAPI 메서드 매퍼를 통해 JavaScript로 스크립트 포함을 만들어 MID 서버 클라우드 제공자에게 수행할 작업을 정확히 알립니다. 스크립트 포함을 통해 클라우드 제공자에 연결됩니다.
이 예 Microsoft.Compute 에서 제품은 제공자에 Azure 포함되어 있습니다. Azure는 가상 머신에 제품을 사용합니다 Microsoft.Compute . 해당 인스턴스 Microsoft.Compute 에서 제품은 CMDB의 CI 유형과 Virtual Machine Instance 연결된 자원 유형에 Microsoft.Compute/virtualMachines 매핑됩니다.
인터페이스에는 Compute 실제 가상 머신을 만드는 방법을 정의하는 것과 같은 CreateNode메서드에 대한 정의가 포함되어 있습니다. 사용하는 많은 매개변수 CreateNode 중에서 가상 Location 머신이 있는 데이터센터를 캡처합니다.
Azure Compute API 인터페이스에 정의된 제품과 구조를 함께 Microsoft.Compute 가져옵니다.Compute 메서드 구현 CreateNode 은 스크립트 포함을 azure-compute-1.0-CreateNode MID 서버 호출하고, 스크립트 포함은 스크립트 포함을 호출합니다 AzureComputeVirtualMachine MID 서버 . 이 스크립트 포함은 Azure API를 실제로 호출합니다. Azure 계정에 액세스하기 SecretKey위해 , ClientIDTenantID, 및 기타 메서드가 구성 재정의에 전달됩니다.
CAPI와 인스턴스를 통합하는 방법
- 클라우드 프로비저닝 및 거버넌스 자원 블록
자원 블록은 가상 서버, 가상 서버 저장소 또는 데이터센터와 같은 단일 클라우드 자원을 나타냅니다. 또한 CMDB의 CI 유형이라고 생각할 수도 있습니다. 클라우드 카탈로그에서 사용자에게 카탈로그 항목(스택이라고도 함)으로 나타나는 Blueprint에 여러 자원 블록을 함께 넣을 수 있습니다.
시스템에서 각 자원 블록은 CAPI를 참조하고 클라우드 제공자의 응답을 특정 CI에 연결하는 컨테이너와 같습니다. 자원 블록 사용:- 프로비저닝 작업과 같이 각 작업에 대해 CAPI를 호출하고 클라우드 제공자가 작업을 실행하는 데 필요한 매개변수 값을 함께 전달하는 운영 단계입니다.
- 제공자의 REST 응답을 처리 및 구문 분석하고 CMDB의 기록을 업데이트하는 응답 프로세서입니다.
- The CMDB
각 자원 블록은 CMDB의 CI 유형을 기반으로 합니다. 의 경우 클라우드 프로비저닝 및 거버넌스모든 클라우드 관련 CI 유형은 기본적으로 지원되는 모든 클라우드 자원에 필요한 모든 속성을 제공하는 클래스를 기반으로 Virtual Machine Object CI 합니다. 클라우드 자원에 대한 CI 유형이 기본 시스템없는 경우 새 CI 클래스를 만들고 필요한 속성을 추가해야 합니다.
새 CI 클래스를 만드는 경우 다음 사항도 만들어야 합니다.- 사용자가 사용할 수 있는 각 자원에 대한 CI 클래스 입니다. 모든 CI 클래스는 가상 머신 객체 클래스를 기반으로 합니다.
- 객체 ID를 지정하는 식별 규칙 입니다. 의 클라우드 관리 구성요소가 CMDB에서 특정 클라우드 자원을 참조할 때마다 올바른 클라우드 자원을 찾으려면 객체 ID가 필요합니다.
- 자원에 대한 CI 클래스가 다른 CI 클래스와 관련되는 방법을 지정하는 관계 규칙 입니다. 예를 들어 CI는 virtual server CI와 관계가 datacenter 있어야 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 버전을 지정합니다.
REST API 호출은 CAPI API 메서드 매퍼와 연결된 스크립트 포함 내에서 MID 서버 발생합니다. 및 에서 CloudRESTAPIInvoker확장된 클래스를 사용하여 CAPI에서 이미 CloudAPIBase 사용할 수 있는 메서드를 호출합니다. 추가 스크립트 포함을 만들어 이러한 기본 클래스를 확장하고 사용자 고유의 클래스를 만들 수도 있습니다. 이러한 기본 클래스와 그 안에서 사용할 수 있는 메서드를 숙지하십시오.
여기서 시작하기
- 함께 제공되는 CAPI API를 검토합니다. 클라우드 프로비저닝 및 거버넌스 기본적으로.
- 기본적으로 제공되는 CAPI 클래스를 검토합니다. 이러한 클래스는 CAPI API 작업의 스크립트 포함에서 MID 서버 호출할 수 있습니다.
- Azure 가상 머신과 AWS 가상 머신의 프로비저닝을 검토하여 구성요소가 어떻게 함께 작동하는지 확인합니다. Azure 검토 과정에서는 스크립트 포함을 MID 서버 사용하므로 프로비저닝 작업에 사용되는 다양한 CAPI 클래스를 확인할 수 있습니다. AWS 검토 과정에서는 스크립트 포함을 MID 서버 사용하지 않습니다.
- CAPI에서 기존 제공자에 제품 추가.
- 가상 클라우드 자원에 대한 CI 클래스 만들기.
- CAPI 인터페이스 생성 또는 확장하기.
- CAPI API 만들기, 클라우드 제공자에 대해 REST 호출을 수행하는 사용자 지정 MID 서버 스크립트 포함. 비어 있는 MID 서버 스크립트 포함은 항상 새 CAPI API에 대해 생성됩니다. 호출자 클래스의 메서드와 같은 다른 JavaScript 클래스 및 메서드에 대한 호출을 통해 이를 수정합니다.