Crie uma API de CAPI
Se as APIs de CAPI existentes não se integrarem à interface de CAPI de um provedor, você poderá criar uma API. As etapas nos blocos de recursos podem chamar seus métodos de API quando as operações são executadas.
Antes de Iniciar
- Função necessária: administrador
- Revisão CAPI padrão e certifique-se de que o provedor e o produto que você está criando não existam.
- Familiarize-se com a API do provedor de nuvem para saber como criar chamadas REST para o provedor. Se você não estiver familiarizado com os cabeçalhos, os requisitos de autenticação, o endpoint e os dados que pode passar para a API do provedor, não poderá criar seus próprios componentes de CAPI.
Por Que e Quando Desempenhar Esta Tarefa
Este tópico fornece instruções para criar uma API de CAPI. Ele também abrange a configuração de CAPI, blocos de recursos, blueprints e mapeamentos de credenciais.
Procedimento
- Em Portal de Administração de Nuvem, navegue até Design > API em Nuvem.
- Clique em API guia.
- Clique em Nova.
-
Preencha os campos do formulário (consulte a tabela):
Campo Descrição API em Nuvem Forneça um nome descritivo. Interface Selecione entre as interfaces existentes que fornecem as operações necessárias. Conector Conector de script Aparece neste campo se o conector for um conector Java que está disponível pronto para uso e não pode ser modificado. Você não precisa modificar esses conectores de script. Produto Selecione o produto que faz parte do provedor. O produto inclui tipos de recursos no CMDB. Versão Forneça um número de versão para identificar esta API. Insira 1,0 Se esta API for a primeira versão. Você pode criar várias versões da mesma API e consultar as versões específicas nas etapas de operação dos blocos de recursos. Com script Este campo será selecionado se Interface o valor é Conector de script . Tipo de Script Selecione o idioma do script. Nota:JavaScript é recomendado. Os mapeadores de método usam MID Server Inclusões de script escritas em JavaScript.
ExecuteScriptOnInstance Descrição Forneça uma descrição para esta API. -
Verifique se todas as operações necessárias aparecem em Mapeadores de método de CAPI lista relacionada.
As operações na lista Mapeadores de método de CAPI são as mesmas operações na interface selecionada. Eles estão vinculados a esta API. Não é possível adicionar ou remover operações da lista. Algumas das operações, especialmente as do Azure, usam MID Server Inclusões de script que executam a implementação real da API. O script inclui uma chamada para a REST API para o provedor, como AWS ou Azure. Você deve ser capaz de encontrar a API na documentação do provedor.
-
Para ver a inclusão de script para um mapeador de método CAPI:
-
Clique no ícone de engrenagem (
) no Mapeadores de método de CAPI lista relacionada, adicione Script de solicitação campo para Selecionado e clique em OK .
. MID Server as inclusões de script agora aparecem na lista de mapeadores de método. -
Clique no nome de um script para exibir a inclusão de script.
Neste exemplo, CreateNode a operação usa o. azure-compute-1.0-CreateNodeinclusão de script.Essa inclusão de script contém o seguinte código:
createNode(); function createNode(){ var acp = new AzureComputeVirtualMachine(this.parameters, this.headers); //this passes the parameters and headers into the AzureComputeVirtualMachine script include. var vm = acp.createVirtualMachine(); return vm; }Observe que o código chama o. AzureComputeVirtualMachineinclusão de script, que está disponível por padrão com Cloud Provisioning and Governance aplicação. Ele contém todas as chamadas de API para o Azure em relação a máquinas virtuais.
-
Clique no ícone de engrenagem (
-
Crie uma substituição de configuração de API para passar as informações de credencial necessárias para o provedor de nuvem.
Você também precisa passar as informações de cabeçalho exigidas pela REST API do provedor de nuvem. As substituições de configuração de API são necessárias porque os dados de credencial não são incluídos quando sua instância faz a chamada REST para a API do provedor de nuvem.
Dica:Se você não souber quais substituições de configuração de API serão criadas, observe uma API semelhante que existe no CAPI e use as mesmas substituições. Por exemplo, se você estiver criando uma API para algo como armazenamento da AWS, observe outras APIs da AWS, como Armazenamento em bloco da AWS ou Computação da AWS.- Na lista relacionada Substituição de configuração de API, clique em Novo .
-
Clique no ícone de pesquisa e selecione um parâmetro de configuração existente.
Muitos parâmetros úteis são fornecidos por padrão, como Identidade , Credenciais e assim por diante.
-
Insira um Substituir valor .
Você pode definir um valor estático ou extrair um valor do sistema na forma de
(CloudCredential.attribute_name). .CloudCredentiala parte a desbloqueia do armazenamento de credenciais. .attribute_nameParte é um atributo que depende da credencial específica, alias ou URL do endpoint que você está tentando recuperar.Se você navegar até Conexões e credenciais > Credenciais E abra sua credencial da AWS, você pode clicar com o botão direito do mouse em ID da chave de acesso E veja o nome da coluna na tabela Credenciais em que a chave de acesso está armazenada. Nesse caso, a chave de acesso é armazenada noaccess_keycoluna. Seu valor de substituição deve ser (CloudCredential.access_key) .
-
Se você precisar criar um parâmetro de configuração para usar na Substituição de configuração da API, siga este procedimento:
- No formulário Substituição de configuração de API, clique no ícone de pesquisa no Parâmetro de configuração campo.
-
Clique em Novo Na janela Parâmetro de configuração e preencha o formulário.
Campo Descrição Nome de parâmetro de configuração Insira um nome descritivo. Valor padrão Defina um valor padrão opcional. Endpoint Este campo é somente leitura. Descrição Insira uma descrição útil. Tipo de dados de configuração Selecione o tipo de dados: - Cadeia de caracteres
- Data/hora
- Data
- Longo
- Senha
- Booliano
Tipo de configuração Selecione o tipo de configuração: - Cabeçalho: Use este valor para passar os valores de substituição como cabeçalhos. Se o tiver um MID Server Inclusão de script como parte da sua API e usa
this.headersComo parâmetro, os valores de substituição são passados para a API do provedor. - Config
- Configuração de URI
-
Se necessário, modifique as inclusões de script que executam as operações na API do provedor de nuvem:
-
No formulário API em nuvem, na lista relacionada Mapeadores de método de CAPI, clique no ícone de informações (
Ao lado da operação da interface de CAPI.
Não clique no próprio nome da operação da interface de CAPI. - Clique em Abrir registro.
-
No formulário Operação, você pode modificar os seguintes valores de campo:
Campo Descrição Operação de endpoint Mantenha o padrão Executar script operação de endpoint. Compatível com a versão Normalmente, você não precisa mudar este valor. Mude Compatível com Versão para usar o mapeador de método em uma versão diferente da API. Por padrão, os mapeadores de método são definidos com o mesmo número de versão da API à qual pertencem.
-
Em Script de solicitação , clique no ícone de informações (
ao lado do espaço reservado MID Server inclusão de script para modificá-lo.
-
No formulário de inclusão de script, crie seu script.
O JavaScript de exemplo a seguir lista os balanceadores de carga do Azure. Observe os comentários úteis:
getResourceInfo(); function getResourceInfo() { var anpi = new AzureLoadBalancer(this.parameters, this.headers); //this calls the 'AzureLoadBalancer' MID Server script include, which in turn //calls the 'AzureCloudAPIBase' script include, both of which //are already in your instance by default. //The 'AzureCloudBase' script include runs a query for resources of a given type in a //specified region. var items = anpi.listResourcesByRegionOrIDs(); //This function is in the 'AzureCloudAPIBase' script include. It calls the Azure API. return items; }As substituições fornecidas para esta operação são o que o Azure precisa para encontrar os balanceadores de carga: O ID do cliente, o ID do locatário, a chave secreta e o URL do endpoint:Para o exemplo de integração do Google Cloud, um MID Server Arquivo JAR também é necessário.
- Clique em Enviar.
- Modifique a inclusão de script para cada operação.
-
No formulário API em nuvem, na lista relacionada Mapeadores de método de CAPI, clique no ícone de informações (