Criar um conector personalizado com a CLI
A ferramenta da linha de comandos paconn
foi criada para ajudar no desenvolvimento de conectores personalizados para o Microsoft Power Platform.
Nota
- Estas notas de versão descrevem funcionalidades que podem ainda não ter sido lançadas.
- Para conhecer a data de lançamento planeada desta funcionalidade, aceda a Novidades e planos para o Common Data Model e a Integração de Dados.
- As cronologias de entrega e as funcionalidades projetadas podem sofrer alterações ou não ser disponibilizadas (aceda a política da Microsoft).
Instalar
Instale o Python 3.5+ a partir de [https://www.python.org/downloads](Python downloads). Selecione a ligação Transferir em qualquer versão do Python superior ao Python 3.5. Para Linux e macOS X, siga a ligação relevante na página. Também pode utilizar um gestor de pacotes de SO específico à sua escolha para instalar.
Execute o instalador para começar a instalação e selecione a caixa "Add Python X.X to PATH" ("Adicionar Python X.X a CAMINHO").
Confirme que o caminho da instalação está na variável PATH ao executar:
python --version
Quando o Python estiver instalado, instale
paconn
ao executar:pip install paconn
Se obtiver erros a informar "Acesso negado", considere utilizar a opção
--user
ou execute o comando como um Administrador (Windows).
Diretório e ficheiros do conector personalizado
Um conector personalizado é composto por dois a quatro ficheiros: uma definição de swagger da API Open, um ficheiro de propriedades da API, um ícone opcional para o conector e um ficheiro de script csharp opcional. Geralmente, os ficheiros estão localizados num diretório com o ID de conector igual ao nome do diretório.
Por vezes, o diretório do conector personalizado pode incluir um ficheiro settings.json
. Embora este ficheiro não faça parte da definição do conector, pode ser utilizado como um arquivo de argumentos para a CLI.
Ficheiro de definição (swagger) da API
O ficheiro de definição da API descreve a API para o conector personalizado ao utilizar a especificação OpenAPI. Também é conhecido como o ficheiro swagger. Para mais informações sobre as definições da API utilizadas para escrever um conector personalizado, aceda a Criar um conector personalizado a partir de uma definição de OpenAPI. Reveja também o tutorial no artigo Expandir uma definição de OpenAPI para um conector personalizado.
Ficheiro de propriedades da API
O ficheiro de propriedades da API contém algumas propriedades do conector personalizado. Essas propriedades não fazem parte da definição da API. O ficheiro tem informações como a cor da marca, informações de autenticação, etc. Regra geral, os ficheiros de propriedades de APIs assemelham-se ao seguinte exemplo:
{
"properties": {
"capabilities": [],
"connectionParameters": {
"api_key": {
"type": "securestring",
"uiDefinition": {
"constraints": {
"clearText": false,
"required": "true",
"tabIndex": 2
},
"description": "The KEY for this API",
"displayName": "KEY",
"tooltip": "Provide your KEY"
}
}
},
"iconBrandColor": "#007EE6",
"scriptOperations": [
"getCall",
"postCall",
"putCall"
],
"policyTemplateInstances": [
{
"title": "MyPolicy",
"templateId": "setqueryparameter",
"parameters": {
"x-ms-apimTemplateParameter.name": "queryParameterName",
"x-ms-apimTemplateParameter.value": "queryParameterValue",
"x-ms-apimTemplateParameter.existsAction": "override"
}
}
]
}
}
Pode ver abaixo mais informações sobre cada propriedade:
properties
: o contentor para as informações.connectionParameters
: define o parâmetro de ligação para o serviço.iconBrandColor
: a cor de marca do ícone em código hexadecimal HTML para o conector personalizado.scriptOperations
: uma lista das operações executadas com o ficheiro de script. Um lista scriptOperations vazia indica que todas as operações são executadas com o ficheiro de script.capabilities
: descreve as capacidades do conector, por exemplo apenas cloud, gateway no local, etc.policyTemplateInstances
: uma lista opcional de instâncias de modelos de políticas e valores utilizados no conector personalizado.
Ficheiro de ícone
O ficheiro de ícone é uma pequena imagem que representa o ícone do conector personalizado.
Ficheiro de script
O script é um ficheiro de script CSX que é implementado para o conector personalizado e executado para cada chamada a um subconjunto de operações do conector.
Ficheiro de definições
Pode utilizar um ficheiro settings.json
para especificar os argumentos em vez de os fornecer na linha de comando. Regra geral, o ficheiro settings.json
assemelha-se ao seguinte exemplo:
{
"connectorId": "CONNECTOR-ID",
"environment": "ENVIRONMENT-GUID",
"apiProperties": "apiProperties.json",
"apiDefinition": "apiDefinition.swagger.json",
"icon": "icon.png",
"script": "script.csx",
"powerAppsApiVersion": "2016-11-01",
"powerAppsUrl": "https://api.powerapps.com"
}
São esperados os itens seguintes no ficheiro de definições. Se uma opção necessária estiver em falta, a consola pedirá a informação ausente.
connectorId
: a cadeia de ID do conector do conector personalizado. Este parâmetro é obrigatório para operações download e update, mas não para a operação create ou validate. Será criado um novo conector personalizado com o novo ID para o comando de criação. Se precisar de atualizar um conector personalizado acabado de criar com o mesmo ficheiro de definições, confirme que este está devidamente atualizado com o ID novo do conector da operação create.environment
: a cadeia de ID do ambiente do conector personalizado. Este parâmetro é obrigatório para todas as operações, exceto para a operação validate.apiProperties
: o caminho para o ficheiroapiProperties.json
de propriedades da API. É necessário para as operações create e update. Se esta opção estiver presente durante a transferência, o ficheiro é transferido para a localização especificada; caso contrário, será guardado comoapiProperties.json
.apiDefinition
: o caminho para o ficheiro swagger. É obrigatório para as operações create, update e validate. Se esta opção estiver presente durante a operação download, para onde o ficheiro na localização especificada será gravado; caso contrário, será guardado comoapiDefinition.swagger.json
.icon
: o caminho para o ficheiro de ícone opcional. As operações create e update utilizarão o ícone predefinido quando este parâmetro não for especificado. Se esta opção estiver presente durante a operação download, para onde o ficheiro na localização especificada será gravado; caso contrário, será guardado comoicon.png
.script
: o caminho para o ficheiro de script opcional. As operações create e update só utilizarão o valor dentro do parâmetro especificado. Se esta opção estiver presente durante a operação download, para onde o ficheiro na localização especificada será gravado; caso contrário, será guardado comoscript.csx
.powerAppsUrl
: O URL da API para o Power Apps. Por predefinição, este parâmetro é opcional e definido comohttps://api.powerapps.com
.powerAppsApiVersion
: a versão da API a utilizar para o Power Apps. Por predefinição, este parâmetro é opcional e definido como2016-11-01
.
Operações da linha de comandos
Iniciar Sessão
Inicie sessão no Power Platform executando:
paconn login
Este comando irá pedir-lhe que inicie sessão através do processo de início de sessão de código do dispositivo. Siga o pedido de início de sessão. A autenticação do Princípio de Serviço não é suportada neste momento.
Fim de Sessão
Termine sessão executando:
paconn logout
Transferir os ficheiros do conector personalizado
Os ficheiros do conector são sempre transferidos para um subdiretório que tem o ID do conector como o nome do diretório. Quando é especificado um diretório de destino, o subdiretório é criado no diretório especificado. Caso contrário, é criado no diretório atual. Além dos três ficheiros de conector, a operação de transferência também vai escrever um quarto ficheiro chamado settings.json, que contém os parâmetros utilizados para transferir os ficheiros.
Para transferir os ficheiros do conector personalizado, execute:
paconn download
or
paconn download -e [Power Platform Environment GUID] -c [Connector ID]
or
paconn download -s [Path to settings.json]
Se o ID do ambiente ou do conector não for especificado, o comando pedirá o argumento ou argumentos em falta. Se a transferência for bem-sucedida, o comando produz a localização da transferência do conector.
Todos os argumentos podem igualmente ser especificados com um ficheiro settings.json.
Arguments
--cid -c : The custom connector ID.
--dest -d : Destination directory.
--env -e : Power Platform environment GUID.
--overwrite -w : Overwrite all the existing connector and settings files.
--pau -u : Power Platform URL.
--pav -v : Power Platform API version.
--settings -s : A settings file containing required parameters.
When a settings file is specified some command
line parameters are ignored.
Criar um novo conector personalizado
É possível criar um novo conector personalizado a partir dos ficheiros de conectores executando a operação create
. Para criar um conector, execute:
paconn create --api-prop [Path to apiProperties.json] --api-def [Path to apiDefinition.swagger.json]
ou
paconn create -e [Power Platform Environment GUID] --api-prop [Path to apiProperties.json] --api-def [Path to apiDefinition.swagger.json] --icon [Path to icon.png] --secret [The OAuth2 client secret for the connector]
ou
paconn create -s [Path to settings.json] --secret [The OAuth2 client secret for the connector]
Se o ambiente não estiver especificado, o comando pede-o. No entanto, os ficheiros de definição da API e propriedades da API têm de ser fornecidos como parte do argumento da linha de comando ou de um ficheiro de definições. Para conectores que utilizem OAuth2, tem de ser fornecido o segredo OAuth2. Após a conclusão, o comando imprime o ID do conector personalizado acabado de criar. Se estiver a utilizar um ficheiro settings.json para o comando de criação, confirme que o atualiza com o ID novo antes de atualizar o conector recém-criado.
Arguments
--api-def : Location for the Open API definition JSON document.
--api-prop : Location for the API properties JSON document.
--env -e : Power Platform environment GUID.
--icon : Location for the icon file.
--script -x : Location for the script file.
--pau -u : Power Platform URL.
--pav -v : Power Platform API version.
--secret -r : The OAuth2 client secret for the connector.
--settings -s : A settings file containing required parameters.
When a settings file is specified some command
line parameters are ignored.
Atualizar conector personalizado já existente
Tal como com a operação create
, é possível atualizar um conector personalizado existente utilizando a operação update
. Para atualizar um conector, execute:
paconn update --api-prop [Path to apiProperties.json] --api-def [Path to apiDefinition.swagger.json]
ou
paconn update -e [Power Platform Environment GUID] -c [Connector ID] --api-prop [Path to apiProperties.json] --api-def [Path to apiDefinition.swagger.json] --icon [Path to icon.png] --secret [The OAuth2 client secret for the connector]
ou
paconn update -s [Path to settings.json] --secret [The OAuth2 client secret for the connector]
Se o ID do ambiente ou do conector não for especificado, o comando pedirá o argumento ou argumentos em falta. No entanto, os ficheiros de definição da API e propriedades da API têm de ser fornecidos como parte do argumento da linha de comando ou de um ficheiro de definições. Para conectores que utilizem OAuth2, tem de ser fornecido o segredo OAuth2. Após a conclusão, o comando imprime o ID do conector atualizado. Se estiver a utilizar um ficheiro settings.json para o comando de atualização, confirme que são especificados os IDs corretos do ambiente e do conector.
Arguments
--api-def : Location for the Open API definition JSON document.
--api-prop : Location for the API properties JSON document.
--cid -c : The custom connector ID.
--env -e : Power Platform environment GUID.
--icon : Location for the icon file.
--script -x : Location for the script file.
--pau -u : Power Platform URL.
--pav -v : Power Platform API version.
--secret -r : The OAuth2 client secret for the connector.
--settings -s : A settings file containing required parameters.
When a settings file is specified some command
line parameters are ignored.
Validar um JSON swagger
A operação validate pega num ficheiro swagger e verifica se segue todas as regras recomendadas. Valide um ficheiro swagger executando:
paconn validate --api-def [Path to apiDefinition.swagger.json]
ou
paconn validate -s [Path to settings.json]
O comando irá imprimir a mensagem de erro, aviso ou êxito, consoante o resultado da validação.
Arguments
--api-def : Location for the Open API definition JSON document.
--pau -u : Power Platform URL.
--pav -v : Power Platform API version.
--settings -s : A settings file containing required parameters.
When a settings file is specified some command
line parameters are ignored.
Melhor prática
Transfira todos os conectores personalizados e utilize o git ou qualquer outro sistema de controlo de origem para guardar os ficheiros. Se existir uma atualização incorreta, reimplemente o conector ao executar novamente o comando de atualização com o conjunto de ficheiros certos a partir do sistema de controlo de origem.
Antes de implementar no ambiente de produção, teste o conector personalizado e o ficheiro de definições num ambiente de teste. Verifique sempre que os IDs do ambiente e do conector estão certos.
Limitações
O projeto está limitado à criação, atualização e transferência de conectores personalizados nos ambientes do Power Automate e do Power Apps. Se não for especificado um ambiente, só são apresentados para escolha os ambientes do Power Automate. Relativamente a conectores não personalizados, o ficheiro swagger não é devolvido.
Ficheiro de propriedade stackOwner e apiProperties
Atualmente, existe uma limitação que impede que atualize os artefactos do conector no ambiente utilizando Paconn quando a propriedade stackOwner
está presente no ficheiro apiProperties.json
. Como solução alternativa para este problema, crie duas versões dos artefactos do conector: a primeira é a versão que é submetida para certificação e contém a propriedade stackOwner
. O segundo tem a propriedade stackOwner
omitida para permitir a atualização no ambiente. Estamos também a trabalhar para remover a limitação e iremos atualizar esta secção quando concluído.
Reportar problemas e comentários
Se encontrar erros com a ferramenta, submeta um problema na secção Problemas do nosso repositório do GitHub.
Se achar que encontrou uma vulnerabilidade de segurança que corresponda à definição de vulnerabilidade de segurança da Microsoft, submeta a denúncia ao MSRC. Estão disponíveis mais informações nas perguntas mais frequentes sobre as denúncias do MSRC.
Enviar comentários
Apreciamos os comentários sobre problemas com a nossa plataforma de conectores ou novas ideias de funcionalidades. Para enviar comentários, aceda a Submeter problemas ou obter ajuda com conectores e selecione o tipo de comentários.