Criar 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: admin
- Revise APIs de 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 que você saiba como criar chamadas REST para o provedor. Se você não estiver familiarizado com os cabeçalhos, requisitos de autenticação, endpoint e 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. Também cobre 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 na guia API.
- Clique em Nova.
-
Preencha os campos do formulário (ver 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 O Conector de script aparecerá 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 o valor da Interface for 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 na lista relacionada Mapeadores de método CAPI.
As operações na lista Mapeadores de método CAPI são as mesmas operações na interface que você selecionou. Eles estão vinculados a esta API. Não é possível adicionar ou remover operações da lista. Algumas das operações, especialmente as operações 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 do provedor, como AWS ou Azure. Você deve encontrar a API na documentação do provedor.
-
Para ver a inclusão de script de um mapeador de método CAPI:
-
Clique no ícone de engrenagem ( ícone de
) na lista relacionada Mapeadores de método CAPI, adicione o campo Script de solicitação à coluna Selecionado e clique em OK.
As inclusões de script MID Server agora aparecem na lista de mapeadores de método. -
Clique no nome de um script para exibir a inclusão de script.
Neste exemplo, a operação CreateNode usa a inclusão de script azure-compute-1.0-CreateNode.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 a inclusão de script AzureComputeVirtualMachine, que está disponível por padrão com a aplicação Cloud Provisioning and Governance. Ele contém todas as chamadas de API para o Azure em relação a máquinas virtuais.
-
Clique no ícone de engrenagem ( ícone de
-
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 criar, 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 AWS Block Storage ou AWS Compute.- 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 Identity, Credentialse assim por diante.
-
Insira um valor de Substituição.
Você pode definir um valor estático ou extrair um valor do sistema na forma de
$(CloudCredential.attribute_name). A parteCloudCredentialo desbloqueia do armazenamento de credenciais. A parteattribute_nameé 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 abrir sua credencial da AWS, você pode clicar com o botão direito do mouse no campo ID da chave de acesso e ver o nome da coluna na tabela Credenciais em que a chave de acesso está armazenada. Nesse caso, a chave de acesso é armazenada na colunaaccess_key. Portanto, o 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 de API, siga este procedimento:
- No formulário Substituição de configuração de API, clique no ícone de pesquisa no campo Parâmetro de configuração.
-
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
- DateTime
- Data
- Longa
- 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 você tiver uma inclusão de script MID Server como parte da API e usar
this.headerscomo um parâmetro, os valores de substituição serã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 da API de nuvem, na lista relacionada Mapeadores de método CAPI, clique no ícone de informações ( ícone
) ao lado da operação de interface de CAPI.
Não clique no próprio nome da Operação de interface de CAPI. - Clique em Abrir registro.
-
No formulário de operação, você pode modificar os seguintes valores de campo:
Campo Descrição Operação de endpoint Mantenha a operação de endpoint Executar script padrão. Compatível com a versão Normalmente, você não precisa alterar este valor. Altere a versão Compatível com para usar o mapeador de métodos 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.
-
No campo Solicitar script, clique no ícone de informações (ícone
) ao lado do espaço reservado MID Server para modificá-lo.
-
No formulário de inclusão de script, crie seu script.
O exemplo de JavaScript 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 a URL do endpoint:Para o exemplo de integração do Google Cloud, um arquivo JAR MID Server também é necessário.
- Clique em Enviar.
- Modifique a inclusão de script para cada operação.
-
No formulário da API de nuvem, na lista relacionada Mapeadores de método CAPI, clique no ícone de informações ( ícone