Usando endpoints de serviço com Code Engine
Todos os projetos do IBM Cloud® Code Engine oferecem integração com os pontos de extremidade de serviço do IBM Cloud®. Esse suporte permite que você se conecte da sua infraestrutura clássica às cargas de trabalho do Code Engine e permaneça na rede IBM Cloud.
Você pode controlar a visibilidade das cargas de trabalho do Code Engine e especificar se deseja expor o aplicativo ou a função a endpoints públicos ou privados. Um aplicativo ou função que é configurado para visibility = private é acessado por meio de terminais em serviço. Os aplicativos ou funções acessados por meio de um ponto de extremidade de serviço não saem da rede IBM e permanecem na rede IBM Cloud.
Terminais públicos
Os terminais públicos fornecem uma conexão com sua implementação na rede pública. No momento da provisão, um terminal público é a opção padrão para todas as implementações. Seu ambiente precisa ter acesso à Internet para se conectar a uma implementação.
Terminais privados
Uma implementação com um terminal em serviço na rede privada obtém um terminal que não está acessível por meio da Internet pública. Todo o tráfego é roteado para o hardware dedicado para as implementações do Code Engine e permanece na rede da IBM Cloud Private. Todo o tráfego de e para esse ponto de extremidade é gratuito e não incorre em cobranças, desde que o tráfego permaneça em IBM Cloud. Depois que seu ambiente tem acesso à rede da IBM Cloud Private, uma conexão de Internet não é necessária para se conectar à implementação.
Code Engine as implementações de aplicativos com endpoints privados podem ser acessadas de qualquer conta na rede privada e o acesso a cada instância requer autenticação. Para restringir esse acesso a endereços IP específicos, intervalos de endereços IP, serviços IBM Cloud ou VPCs, configure regras de restrição baseadas em contexto.
Gerenciando os recursos Code Engine de forma segura usando terminais de serviço
-
Especifique um projeto Code Engine para usar o terminal privado. Você pode configurar um projeto Code Engine para usar o terminal privado apenas com o CLI. Para criar um projeto, use o comando
ibmcloud ce project createcom a opção--endpoint=private.ibmcloud ce project create --name myproject --endpoint=privateAguarde até que o projeto esteja no status
active. Com a CLI, é possível confirmar o status do projeto usando o comandoibmcloud ce project get.Se você quiser um projeto Code Engine existente para usar o terminal privado, use o comando
ibmcloud ce project selectcom a opção--endpoint=private.ibmcloud ce project select --name myproject --endpoint=privatePara os comandos
project createeproject select, se a opção--endpointnão for especificada explicitamente, o comportamento será determinado pelo sistema. Se a CLI do IBM Cloud estiver conectada aprivate.cloud.ibm.com, o projeto Code Engine se comportará como se--endpointfosseprivate. Se a CLI do IBM Cloud estiver conectada acloud.ibm.com, o projeto Code Engine se comportará como se--endpointfossepublic. -
Se você não criou um novo projeto e selecionou um projeto existente, e deseja que seu aplicativo fique visível apenas para o endpoint privado, confirme se o projeto existente oferece suporte a aplicativos com visibilidade privada. Use o comando
ibmcloud ce project getpara verificar a saída paraApplication Private Visibility Supportedé definida comotrue. Se o valor forfalse, entre em contato com o suporte IBM para ativar essa capacidade dentro do seu projeto existente.ibmcloud ce project get -n myprojectSaída de exemplo
Getting project 'myproject'... OK Name: myproject ID: abcdabcd-abcd-abcd-abcd-f1de4aab5d5d Status: active Enabled: true Application Private Visibility Supported: false Selected: true Region: us-south Resource Group: default Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f Age: 52d Created: Tue, 28 Sep 2021 05:12:16 -0500 Updated: Tue, 28 Sep 2021 05:12:19 -0500 Quotas: Category Used Limit App revisions 1 60 Apps 1 20 Build runs 1 100 Builds 2 100 Configmaps 2 100 CPU 0 64 Ephemeral storage 0 256G Instances (active) 0 250 Instances (total) 0 2500 Job runs 0 100 Jobs 0 100 Memory 0 256G Secrets 6 100 Subscriptions (cron) 0 100 Subscriptions (IBM Cloud Object Storage) 0 100 Subscriptions (Kafka) 0 100 -
Crie um aplicativo ou função que seja visível apenas para o endpoint privado. Use o comando
ibmcloud ce application createouibmcloud ce function createcom a opção--visibility=private. Como alternativa, você pode usar o console para criar ou atualizar um aplicativo ou função e definir a visibilidade do seu aplicativo.ibmcloud ce application create -n myapp --visibility=private
Acessar seu aplicativo de forma segura com pontos de extremidade de serviço
-
No seu projeto do Code Engine, confirme se o seu aplicativo está configurado com uma configuração
visibility=private. Consulte Implantação de seu aplicativo com um endpoint privado. -
Recuperar a URL do aplicativo Code Engine que é exposto à rede privada. A URL está no formato a seguir:
<app>.<uuid>.private.<region>.codeengine.appdomain.cloud.-
No console Code Engine, vá para a guia Domain mappings (Mapeamentos de domínio ) do seu aplicativo para ver a visibilidade de um aplicativo e seus URLs disponíveis.
-
A partir do Code Engine CLI, use o comando
ibmcloud ce application getcom a opção--option url. No exemplo a seguir, como a visibilidade domyappestá definida comovisibility=private, especificar--option urlcom esse comando gera o URL para a rede privada.ibmcloud ce application get -n myapp -output urlSaída de exemplo
http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
-
-
Chame o aplicativo de dentro da rede privada IBM Cloud (por exemplo, chamando o aplicativo pelo Shell IBM Cloud ).
O aplicativo
myappé um aplicativo Hello World simples. Quando você executa o aplicativomyappusando cURL,Hello Worldé retornado. Por exemplo, no Shell IBM Cloud, execute:curl http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
Acessando sua função com segurança com terminais em serviço
-
Em seu projeto Code Engine, confirme que sua função está configurada com uma definição
visibility=private. Consulte Implementando sua função com um terminal privado. -
Recupere o endereço URL da função Code Engine que está exposta à rede privada. A URL está no formato a seguir:
<function>.<uuid>.private.<region>.codeengine.appdomain.cloud.-
No console Code Engine, acesse a guia Domain mappings (Mapeamentos de domínio ) da sua função para ver a visibilidade da função e os URLs disponíveis.
-
Na Code Engine CLI, use o comando
ibmcloud ce function get. No exemplo a seguir, como a visibilidade domyfunctionestá definida comovisibility=private, esse comando envia o URL para a rede privada.ibmcloud ce function get -n myfunctionSaída de exemplo
http://myfunction.1abc23def19.private.us-south.codeengine.appdomain.cloud
-