Todos os produtos
Search
Central de documentação

Resource Orchestration Service:Visão geral

Última atualização: Jun 27, 2026

Recursos personalizados permitem incorporar lógica própria em modelos do ROS. O ROS executa essa lógica ao criar, atualizar ou excluir uma pilha. Use recursos personalizados para gerenciar tipos de recursos sem suporte nativo no ROS e mantenha todos os recursos em uma única pilha.

Sobre recursos personalizados

Defina um recurso personalizado no modelo com o tipo de recurso ALIYUN::ROS::CustomResource ou Custom::MyCustomResourceTypeName. Cada recurso personalizado exige um token de serviço para especificar o destino das requisições do ROS, como tópicos e filas do SMQ (Simple Message Queue (formerly MNS)), funções do Function Compute (FC) ou serviços HTTP e HTTPS.

O recurso personalizado deve enviar uma resposta a uma URL pré-assinada. A ausência de resposta causa falha na operação da pilha. Use ResponseURL para responder pela rede pública e IntranetResponseURL para responder pela rede interna da Alibaba Cloud.

Funcionamento dos recursos personalizados

As operações de recursos personalizados envolvem três entidades:

  • Desenvolvedor do modelo: cria o modelo com o tipo de recurso personalizado, o token de serviço e os dados de entrada.

  • Provedor do recurso personalizado: possui o recurso personalizado, define o processamento e a resposta às requisições do ROS e fornece o token de serviço ao desenvolvedor do modelo.

  • ROS: envia uma requisição ao token de serviço especificado no modelo durante a operação da pilha e aguarda uma resposta antes de prosseguir.

O desenvolvedor do modelo e o provedor do recurso personalizado podem ser a mesma pessoa ou entidade. Fluxo de trabalho do recurso personalizado:

  1. Defina o recurso personalizado no modelo com o token de serviço obrigatório e parâmetros opcionais de dados de entrada.

    O token de serviço especifica o destino da requisição do ROS, como um ARN (Alibaba Cloud Resource Name) de tópico MNS ou um ARN de função FC, conforme definido em ALIYUN::ROS::CustomResource. O provedor do recurso personalizado define a estrutura do token de serviço e os dados de entrada.

  2. Ao criar, atualizar ou excluir um recurso personalizado, o ROS envia uma requisição ao token de serviço especificado. Tokens de serviço não têm restrição de região.

    A requisição do ROS inclui o tipo de requisição, a URL de resposta pré-assinada e outros metadados descritos em Objetos de requisição de recurso personalizado.

    Exemplo de requisição:

    {
       "RequestType" : "Create",
       "RequestId" : "unique id for this create request",
       "ResponseURL" : "pre-signed-url-for-create-response",
       "IntranetResponseURL" : "pre-signed-intranet-url-for-create-response",
       "ResourceType" : "Custom::MyCustomResourceType",
       "LogicalResourceId" : "name of resource in template",
       "StackId" : "stack id",
       "StackName" : "stack name",
       "ResourceOwnerId": "resource owner id",
       "CallerId": "caller id",
       "RegionId": "region id",
       "ResourceProperties" : {
          "key1" : "string",
          "key2" : [ "list" ],
          "key3" : { "key4" : "map" }
       }
    }                                 
  3. O provedor do recurso personalizado processa a requisição e retorna uma resposta JSON SUCCESS ou FAILED à URL pré-assinada.

    A resposta pode incluir dados de saída em caso de sucesso ou uma mensagem de erro em caso de falha, conforme descrito em Objetos de resposta de recurso personalizado.

    O provedor deve monitorar e responder à requisição. Por exemplo, um provedor baseado em MNS escuta no ARN do tópico especificado. O ROS aguarda uma resposta na URL pré-assinada.

    Exemplo de resposta:

    {
       "Status" : "SUCCESS",
       "RequestId" : "unique id for this create request (copied from request)",
       "LogicalResourceId" : "name of resource in template (copied from request)",
       "StackId" : "stack id (copied from request)",
       "PhysicalResourceId" : "required vendor-defined physical id that is unique for that vendor",
       "Data" : {
          "keyThatCanBeUsedInGetAtt1" : "data for key 1",
          "keyThatCanBeUsedInGetAtt2" : "data for key 2"
       }
    }
  4. Após receber uma resposta SUCCESS, o ROS continua a operação da pilha. Uma resposta FAILED ou a ausência de resposta causa falha na operação. Recupere dados de saída da resposta com a função Fn::GetAtt.