Terraform

As respostas às perguntas mais frequentes sobre os espaços de trabalho do IBM Cloud Schematics estão organizadas na seção a seguir.

O IBM Cloud Schematics suporta várias versões do provedor do Terraform?

Sim, o IBM Cloud Schematics suporta várias versões do provedor Terraform. Você precisa adicionar o bloco do provedor do Terraform com a versão do provedor. Por padrão, o provedor executa a versão atual 1.21.0, e as quatro versões anteriores, como 1.20.1, 1.20.0, 1.19.0 e 1.18.0, são compatíveis.

Exemplo de uma configuração de vários provedores:

terraform{
    required_providers{
    ibm = ">= 1.21.0" // Error !! version unavailable.
    ibm = ">= 1.20.0" // Execute against latest version.
    ibm = "== 1.20.1" // Executes version v1.20.1.
    }
}

Atualmente, a versão 1.21.0 está liberada. Para obter mais informações, consulte versão do provedor.

Como atualizar a versão do Terraform

IBM Cloud Schematics está descontinuando versões mais antigas do Terraform e introduzindo suporte para a versão mais recente do Terraform. Para obter mais informações, consulte o ciclo de vida de depreciação do Schematics Terraform e o cronograma de depreciação.

Você pode acompanhar os tópicos para atualizar de uma versão do Terraform para outra

Como faço para codificar o pull latest de um repositório Git usando a linha de comandos?

Atualizar as áreas de trabalho IBM Cloud® Schematics por meio da linha de comandos precisa do campo necessário name.

É necessário executar o comando ibmcloud schematics workspace update --id <workspace-id> --file <updatefile.json>. O updatefile.json de amostra contém o campo nome com o valor.

{
    "name":"testworkspace"
}

Quais ferramentas e utilitários são usados na execução?

Schematics O runtime é criado a partir da Universal Base Image ( UBI-8 ) e o runtime utilities/softwares, que vem com o UBI-8, está disponível para provisões do Terraform e ações do Ansible. Para obter mais informações, consulte a lista de ferramentas e utilitários usados no tempo de execução do Schematics.

Como posso corrigir problemas de token do Git ao criar áreas de trabalho usando a CLI

Usar o comando schematics workspace new --file schematic-file.json -g xxxx lança um Access token creation failed status, pois o token não é especificado no comando.

É necessário verificar sua autenticação antes de executar a operação por meio da linha de comandos Em seguida, crie uma área de trabalho usando o comando schematics workspace new --file schematic-file.json --github-token xxxx. Para obter mais informações, consulte o comando ibmcloud schematics workspace new.

Como corrigir problemas de autorização ao criar ou atualizar uma área de trabalho?

Você encontra problemas de autorização quando a função e as permissões de acesso são insuficientes durante a atualização do espaço de trabalho. Para obter mais informações, consulte “Gerenciamento do acesso dos usuários ”.

Como posso usar os módulos do Terraform IBM com Schematics?

Você pode usar Terraform IBM modules pré-construído, de código aberto e pronto para empresas com espaços de trabalho Schematics. Esses módulos fornecem práticas recomendadas para o provisionamento de recursos do IBM Cloud e podem ser referenciados diretamente em suas configurações do Terraform. Por exemplo, você pode usar o terraform-ibm-modules para provisionar recursos com práticas recomendadas incorporadas.

Quais são os benefícios de usar os módulos do Terraform IBM?

O Terraform IBM Modules (TIM) oferece vários benefícios:

  • Pré-construído, testado e mantido por IBM.
  • Siga as práticas recomendadas e as diretrizes de segurança do site IBM Cloud.
  • Reduzir o tempo e a complexidade do desenvolvimento.
  • Garantir a consistência entre as implementações.
  • Suporte a padrões de infraestrutura de nível empresarial.
  • Atualizações regulares e suporte da comunidade.

Para obter mais informações, consulte Sobre os módulos do Terraform IBM.

Como usar serviços do Schematics com um ID de teste?

Os IDs de teste são considerados um IBM ID válido para definir chamadas de API relacionadas ao catálogo global ou ao controlador de recursos. Se você não conseguir acessar, faça Serviço de Suporte de Contato.

Como limitar a clonagem da pasta do repositório Git

Por padrão, ao criar uma área de trabalho por meio da IU, o Schematics é padrão para clonar o repositório Git completo e todo o subdiretório. Desmarque a sinalização Use full repository para limitar as pastas clonadas e melhorar o desempenho de download.

Schematics introduziu uma sinalização compact na API create workspace e update workspace para fazer download dos sub directories nos repositórios Git. Se o sinalizador “compact” estiver definido como “true”, ele baixará e salvará sub directories de forma recursiva; caso contrário, você poderá continuar a baixar e salvar o repositório completo ao criar a área de trabalho.

Você pode obter a resposta acessando get workspace API para visualizar o valor do sinalizador “compact”. O sinalizador “compact” só pode ser fornecido se o campo “ template_repo.url ” for passado. Na atualização, se esse campo não for passado, mas o parâmetro URL for passado, o download será compactado.

O uso compacto na carga útil é .template_data[0].compact = true/false. Para obter mais informações, consulte Download compacto para áreas de trabalho Schematics.

Como excluir uma área de trabalho quando a exclusão falha?.

Se um recurso for excluído fora do Schematics, uma operação de exclusão da área de trabalho será exibida como resource no longer exists.

Você precisa excluir o espaço de trabalho SEM destruir os recursos, como se eles não estivessem disponíveis. Para mais informações, consulte Excluindo uma área de trabalho.

Qual é a melhor maneira de implementar um gráfico do Helm usando credenciais ou segredos?

A melhor maneira é usar o catálogo do IBM Cloud para gerenciar os gráficos Helm em que dentro do catálogo é possível manter as credenciais e marcá-las como seguras. Para obter mais informações, consulte Lista de catálogo que está relacionada com Helm.

Como abordar as falhas de tarefa causadas por atividades de manutenção?

O impacto inesperado devido à manutenção resulta na falha das atividades em execução na área de trabalho do Schematics. Esse espaço de trabalho e a atividade em andamento são identificados como “ Failed ”. O usuário pode então executar novamente a atividade. Para obter mais informações, consulte diagrama de estado da área de trabalho.

Como configurar a tag de liberação Git ?

2021/11/08 12:34:06 -----  New Action  -----
 2021/11/08 12:34:06 Request: RepoURL=https://xxxxxxxxxx/wh-hp-insights/hi-cloud-automation, workspaceSource=Schematics, Branch=2021.10, Release=, Folder=terraform-v2/workspace-hi-qa-automation-app
 2021/11/08 12:34:06 Related Activity: action=UPDATE_WORKSPACE,processedBy=sandbox-6bcf8bffcd-rxbww_2478
 2021/11/08 12:34:06 Getting download command
 2021/11/08 12:34:11 Fatal, could not download repo, Failed to clone git repository, couldn't find remote ref "refs/heads/2021.10" (most likely invalid branch name is passed)
 2021/11/08 12:34:12 Problems found with the Repository. Please Rectify and Retry

Se o parâmetro Release estiver vazio e o Branch foi configurado com a sinalização de liberação.

Schematics não suporta a tag release, pois é difícil identificar se trata-se de uma tag de lançamento ou de um branch do repositório Git URL. É necessário configurar a sinalização release por meio da API do Schematics.

Por que recebo um erro 403 em vez de um erro 404 ao usar um ID de área de trabalho inválido?

curl -X GET https://schematics.cloud.ibm.com/v1/workspaces/badWOrkspaceId -H "Authorization: $IAM_TOKEN"
{"requestid":"3a3cbffe-e23a-4ccf-b764-042f7379c084","timestamp":"2021-11-11T17:00:07.169953698Z","messageid":"M1078","message":"Error while validating the location in the account. Verify you have permission to the location in the global catalog settings.","statuscode":403}

Sim, houve uma alteração na API que verifica primeiro a localização e, caso não consiga obter a localização correta do espaço de trabalho, retorna um erro 403 em vez de um erro 404.

Como posso ativar a criação de log de depuração do Terraform

É possível configurar a variável de ambiente para configurar o rastreio TF_LOG=debug de depuração de log do Terraform na carga útil, conforme mostrado na carga útil de amostra. Para obter mais informações, consulte Schematics áreas de trabalho atualizadas..

{
  "name": "sample",
  "type": [
    "terraform_v1.4"
  ],
  "description": "terraform workspace",
  "tags": [
  ],
  "template_repo": {
    "url": "<your repo>"
  },
  "template_data": [
    {
      "folder": ".",
      "type": "terraform_v1.4",
      "env_values":[
      {
        "TF_LOG":"debug"
      }
    ]
    }
  ]
}

Como posso importar recursos de Nuvem para uma área de trabalho?...

Use o comando ibmcloud schematics workspace import --options value, -o value : Optional e a sintaxe de amostra para importar da linha de comandos. Para obter mais informações, consulte Schematics importação de área de trabalho.

ibmcloud schematics workspaces import --id <workspace_id> --address <my terraform resource address> --resourceID <the CRN of the item to import> --options "-var IC_API_KEY=XXXXXXXX"
or
ibmcloud schematics workspaces import --id <workspace_id> --address <my terraform resource address> --resourceID <the CRN of the item to import> --options "--var-file=<path-to-var-file>"

Como posso fazer download de arquivos de tarefa?

Sim, é possível fazer download dos arquivos de tarefas do Schematics. Para obter mais informações, consulte Download de arquivos de tarefas do Schematics.

Como resolver falhas de tempo limite de recurso do Terraform?

É necessário atualizar ou aumentar o valor do tempo limite em 5 minutes ou 10 minutes dependendo do serviço, conforme mostrado no bloco do Terraform. Ou você precisa enviar null value para usar os valores padrão.

variable "create_timeout"
{
 type = String
 description = "Timeout duration to create LogDNA instance in Schematics."
 default = "15m"
}

Como configurar a variável de ambiente TF_CLI_ARGS?

Não, não é possível definir o valor de uma variável de ambiente diretamente no console do Schematics workspaces. Em vez disso, você pode usar um CURL usando o Schematics API ou Schematics linha de comando.

  "env_values": [
        {
          "TF_LOG": "debug"
        },
  ]

Posso usar repositórios Git privados para módulos?

Sim, o Schematics suporta o download de módulos do Terraform de repositórios privados. Para obter mais informações, consulte Suporte para o download de módulos a partir de host remoto privado.

É possível editar todas as variáveis em uma área de trabalho

É possível editar apenas uma variável por vez no consol Schematics. A partir da linha de comandos, é possível editar todas as variáveis da área de trabalho no formato JSON usando o comando ibmcloud schematics workspace update.

Como importar chaves ao importar recursos do KMS?

Sim, você pode configurar ou gerenciar as chaves usando ibm_kms_key como mostrado no bloco de código de amostra. Para obter mais informações, consulte ibm_kms_key.

resource "ibm_resource_instance" "kms_instance" {
  name     = "instance-name"
  service  = "kms"
  plan     = "tiered-pricing"
  location = "us-south"
}
resource "ibm_kms_key" "test" {
  instance_id  = ibm_resource_instance.kms_instance.guid
  key_name     = "key-name"
  standard_key = false
  force_delete =true
}
resource "ibm_cos_bucket" "smart-us-south" {
  bucket_name          = "atest-bucket"
  resource_instance_id = "cos-instance-id"
  region_location      = "us-south"
  storage_class        = "smart"
  key_protect          = ibm_kms_key.test.id
}

É possível ativar o TRACE para ajudar na depuração da API Schematics ao executar o comando de listagem de espaços de trabalho?

Não, atualmente Schematics não suportam esse recurso enquanto executa o comando IBMCLOUD_TRACE=true ibmcloud schematics workspace list.

Como resolver erros ao listar áreas de trabalho?

Ao listar ou recuperar áreas de trabalho, o seguinte erro pode ser recebido. Error while retrieving Schematics Instance for the given account.

Error:
Bad status code [400] returned when getting workspace from Schematics: {"requestid":"fe5f0d6d-1d43-4643-a689-35d090463ce8","timestamp":"2022-01-25T20:23:54.727208017Z","messageid":"M1070","message":"Error while retrieving Schematics Instance for the given account.","statuscode":400}

Talvez você não tenha acesso suficiente aos espaços de trabalho no local especificado para buscar a instância. Verifique as permissões concedidas à sua conta e os locais onde sua instância precisa ser criada. Para obter mais informações, consulte Onde é uma informação armazenada?

Como posso usar repositórios (IBM) GitLab ?

Sim, você pode acessar o repositório privado ( IBM ) do GitLab usando Schematics, desde que tenha os privilégios necessários.

  • Se o token de acesso do repositório privado ( IBM ) GitLab git.cloud.ibm.com não for necessário, pois o token do IAM é utilizado.

  • Se o público GitLab gitlab.com, read_repository e read_api acesso forem necessários para validar o nome da filial para repositório privado.

Você pode usar o bloco de código de exemplo do Terraform para configurar os detalhes do repositório GitLab.

"template_repo": {
"url": "<gitlab_source_repo_url>",
"branch": ""
},

Os grupos de acesso do IAM podem ser gerenciados no Schematics?

Sim, o Schematics oferece suporte ao conjunto de recursos completo do provedor do IBM Cloud. Para obter mais informações sobre Como o grupo de acesso IAM funciona? ver ibm_iam_access_group.

Como trabalhar com recursos em outra conta?

Sim, é possível criar áreas de trabalho Schematics na conta de origem do IBM Cloud. Em seguida, execute Terraform fornecendo recursos em conta-alvo para provisão, por meio de CLI, e chamadas de API usando o ID de serviço de conta-alvo com a autenticação, autorização de conta cruzada apropriada ou chave API. Para obter mais informações, consulte Gerenciando recursos em outra conta.

O que a localização North America indica?

A América do Norte sempre indica tanto us-south quanto us-east como localização durante a criação do espaço de trabalho Schematics. Para obter mais informações, consulte Onde posso criar áreas de trabalho do Schematics ? e Onde minhas informações são armazenadas?

Quais portas e endereços IP são usados pelo Schematics?.

Schematics se comunica com as portas especificadas pelos recursos relacionados. Por exemplo, no caso de portas relacionadas à VPC, consulte VPC: Abrindo as portas e endereços IP necessários em firewalls de outras redes.

Quando devo usar o “ Schematics ” em vez dos painéis de recursos individuais?

Com o IBM Cloud Schematics, você pode executar seu código de infraestrutura no IBM Cloud para gerenciar o ciclo de vida dos recursos na nuvem. Depois de provisionar um recurso, use o painel do recurso individual para trabalhar e interagir com ele. Por exemplo, se você provisionar uma instância de servidor virtual em uma nuvem privada virtual (VPC) com IBM Cloud Schematics. É possível usar o console, a API ou a linha de comandos do VPC para stop, reboot e power on sua instância de servidor virtual. No entanto, para remover a instância do servidor virtual, você pode usar IBM Cloud Schematics.

As mudanças no repositório Git são atualizadas no Schematics?

Não, se você alterar o código do seu modelo do Terraform em GitHub,, essas alterações não ficarão disponíveis automaticamente ao criar um plano de execução em IBM Cloud Schematics. Para obter as alterações mais recentes do seu repositório GitHub, certifique-se de clicar na opção “ Pull latest ” na página “ settings ” da área de trabalho antes de criar seu plano de execução.

Onde o arquivo de estado do Terraform está armazenado

Depois que você provisionar com sucesso os recursos da nuvem executando uma ação de aplicação do Schematics, o estado dos recursos é armazenado em um arquivo de estado do Terraform (terraform.tfstate). O Schematics usa esse arquivo de estado como a única fonte de verdade para determinar quais recursos existem na sua conta. O arquivo state mapeia os recursos que você especificou no seu arquivo de configuração do Terraform para o recurso do Cloud que você provisionou.

Os recursos são removidos na exclusão da área de trabalho??..

A exclusão de um espaço de trabalho do IBM Cloud Schematics não remove nenhum dos seus recursos na nuvem. Se você excluir o espaço de trabalho antes de remover seus recursos, será necessário remover manualmente todos os seus recursos da nuvem a partir do painel de controle de cada recurso.

A remoção de recursos da nuvem não pode ser desfeita. Certifique-se de ter feito backup de todos os dados antes de remover um recurso. Os recursos serão removidos (excluídos) se você remover a definição de recurso ou comentar o recurso no arquivo de configuração do Terraform. Revise o arquivo de log do Plano para verificar se todos os seus recursos estão incluídos na remoção

Posso configurar variáveis de ambiente para áreas de trabalho?

É possível configurar o env values para uma área de trabalho usando a CLI e a API. Para obter mais informações, consulte uso de env_values.

Se o seu espaço de trabalho foi criado pelo serviço de projetos IBM Cloud, consulte Ativação de registros do Terraform usando a CLI como referência sobre como definir variáveis de ambiente.

Carga útil de amostra

{
  "name": "newName",
  "template_data": [
    {
      "type": "<same_as_before>",
      "env_values": [
        {
          "env_key1": "dummy_text"
        },
        {
          "env_key2": "dummy_text"
        }
      ],
      "env_values_metadata": [
        {
          "name": "env_values_1",
          "hidden": false,
          "secure": false
        },
        {
          "name": "env_values_2",
          "hidden": false,
          "secure": false
        }
      ]
    }
  ]
}

A detecção de desvio é executada automaticamente?

Não, a detecção de desvio não é um método automático de detecção no IBM Cloud Schematics. Para obter mais informações, consulte detectando drift em Schematics.

Como posso iniciar a detecção de desvio?

É possível iniciar a detecção de desvio usando a IU e a CLI. Para obter mais informações, consulte detectando drift em Schematics.

Onde posso verificar o status de uma tarefa de detecção de desvio?

Para verificar os resultados de uma tarefa de detecção de desvio, é necessário consultar o log dessa tarefa. O log da tarefa fornece os detalhes da detecção de desvio como in progress ou completed com o status apropriado, como failure ou success. Para obter mais informações, consulte detectando drift em Schematics.

Posso interrupt ou terminate executar tarefas?

Sim, é possível interromper, forçar a parada ou finalizar os recursos de fornecimento ou uma tarefa em execução no Schematics usando os tipos de tarefa. Para obter mais informações, consulte parando os tipos de tarefa.

Como corrigir um erro Incorrect Location Input ?

Erro

{
    "requestid": "3f59c342-cd2c-4703-aa10-9e8e7072a3ac",
    "timestamp": "2022-06-28T20:02:58.529765308Z",
    "messageid": "M1097",
    "message": "Incorrect Location Input.",
    "statuscode": 400
}

O terminal global Schematics é padronizado para o ambiente us. Portanto, você precisa usar terminais regionais para apontar sua localização para uma região eu-de.

Como posso visualizar recursos da área de trabalho?

Use o comando CLI state list para visualizar os mesmos recursos que em IBM Cloud Schematics UI.

Como corrigir o erro CreateworkspaceWithContext failed Bad request ?

Erro

CreateWorkspaceWithContext failed Bad request. Check that the information you entered in the payload is complete and formatted correctly in JSON.

O URL global do ponto de extremidade público ou privado Schematics aponta, por padrão, para a região us. Como uma solução alternativa você pode configurar a chave de variáveis de ambiente antes dos comandos Terraform.

```sh
export IBMCLOUD_SCHEMATICS_API_ENDPOINT="https://eu-de.schematics.cloud.ibm.com"
```

Você também pode adicionar os endpoints a um arquivo JSON para categorizar o serviço de terminais como público ou privado.

Declaração do provedor de amostra

{
    "IBMCLOUD_SCHEMATICS_API_ENDPOINT":{
        "public":{
            "eu-de":"https://eu-de.schematics.cloud.ibm.com"
        }
         }
}

Bloco de Provedor de Exemplo

provider "ibm" {
  endpoints_file_path= "endpoints.json"
}

Os valores sensíveis no arquivo de estado são criptografados?.

Schematics criptografa o arquivo de estado do Terraform quando armazenado e também em trânsito, usando TLS. O Terraform não criptografa separadamente os valores sensíveis Para obter mais informações, consulte sensitive-data em arquivo de estado.

Por que as variáveis da área de trabalho definidas usando a CLI lançam 400 erros?

O valor de armazenamento das variáveis da lista de área de trabalho Schematics deve ser sempre uma sequência HCL. O campo value deve conter uma sequência de escape para o armazenamento de variáveis para a lista, mapa ou variável complexa. Para obter mais informações, consulte Fornecendo valores para Schematics para as variáveis declaradas.

É possível atualizar a versão do Terraform (TF_VERSION) usando um arquivo JSON ?

Atualmente, a solução alternativa para atualizar o TF_VERSION é transmitir o TF_VERSION ao atualizar o armazenamento de variáveis. Schematics detecta automaticamente o que é especificado no bloco de versão do Terraform nos arquivos TF. Esse é o comportamento padrão.

Para obter mais informações, consulte configurando e mudando a versão.

É possível iniciar com um novo arquivo de estado do Terraform em cada execução de tarefa

Não, você precisa criar nova área de trabalho. Para obter mais informações, consulte Execução de tarefa da área de trabalho

Posso importar um arquivo de estado do Terraform já existente?

Sim, é possível usar a opção de sinalização --state por meio do ibmcloud schematics workspace new.

Qual é o comprimento máximo variável de caracteres?

O comprimento máximo de caracteres que as variáveis de área de trabalho Schematics suportam é de 1 MB.

Qual é o arquivo de estado máximo a ser importado.

O arquivo terraform.tfstate deve ser menor que 16 MB.. Quando você cria a área de trabalho a partir de um arquivo de estado do Terraform existente, o arquivo terraform.tfstate deve ter menos de 16 MB de espaço. Um arquivo de estado maior que 16 MB não é suportado no Schematics. Você vê uma mensagem de erro com 413 Request Entity Too Large error when creating a new workspace

Como corrigir erros de autenticação ao usar a API?

É necessário criar o token de acesso do IAM para a sua IBM Cloud Account. Para obter mais informações, consulte Obter senha do token. Você pode ver a seguinte mensagem de erro de exemplo e a solução para o erro de autenticação.

Error: Request fails with status code: 400, BXNIMO137E: For the original authentication, client id 'default' was passed, refresh the token, client id 'bx' is used.

A documentação da API do IAM mostra como criar um default token. Será possível usar o refresh token para obter um novo token de acesso do IAM se esse token estiver expirado. Quando o cliente padrão (nenhum cabeçalho de autorização básico) conforme descrito nesta documentação. O refresh_token não pode ser usado para obter um novo token de acesso do IAM. Quando o token de acesso do IAM está prestes a expirar, use a chave API para criar um novo token de acesso conforme listado.

  1. Você precisa criar access_token e refresh_token.

    export IBMCLOUD_API_KEY=<ibmcloud-api_key>
    curl -X POST "https://iam.cloud.ibm.com/identity/token" -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=$IBMCLOUD_API_KEY" -u bx:bx
    
  2. Exporte os access_token e refresh_token obtidos na etapa 1 como variáveis de ambiente para ACCESS_TOKEN e REFRESH_TOKEN.

    export ACCESS_TOKEN=<access_token>
    export REFRESH_TOKEN=<refresh_token>
    
  3. Criar área de trabalho

    curl --request POST --url https://cloud.ibm.com/schematics/overview/v1/workspaces -H "Authorization: Bearer <access_token>" -d '{"name":"","type": ["terraform_v1.4"],"description": "","resource_group": "","tags": [],"template_repo": {"url": ""},"template_data": [{"folder": ".","type": "terraform_v1.4","variablestore": [{"name": "variable_name1","value": "variable_value1"},{"name": "variable_name2","value": "variable_value2"}]}]}'
    

Como recuperar o ID da Área de Trabalho Schematics como variável de ambiente?

É possível recuperar o ID da área de trabalho do Schematics como variável de ambiente usando o código a seguir. Antes de executar o plano ou aplicar, as variáveis de ambientes IC_SCHEMATICS_WORKSPACE_ID, TF_VAR_IC_SCHEMATICS_WORKSPACE_ID, TF_VAR_IC_SCHEMATICS_WORKSPACE_RG_I IC_IAM_TOKEN e IC_IAM_REFRESH_TOKEN são configuradas automaticamente para seus scripts do Terraform.

data "external" "env" {
  program = ["jq", "-n", "env"]
}
output "workspace_id" {
value = "${lookup(data.external.env.result, "TF_VAR_IC_SCHEMATICS_WORKSPACE_ID")}"

Se você deseja ver todas as variáveis de ambiente disponíveis na área de trabalho, use o código output "${jsonencode(data.external.env.result)}"

Como faço para corrigir os erros 401 da chamada do broker ao excluir os objetos Schematics?

Após a exclusão dos objetos Schematics, se os serviços Schematics não conseguirem excluir os objetos de sua conta, você poderá ter que fazer a exclusão. Você precisa criar um Schematics tíquete de suporte para remover do controlador de recursos.