Todos os produtos
Search
Central de documentação

Resource Orchestration Service:ALIYUN::ROS::CustomResource

Última atualização: Jun 27, 2026

O tipo ALIYUN::ROS::CustomResource cria um recurso personalizado que executa sua própria lógica de configuração durante operações de stack.

Em modelos do ROS, use ALIYUN::ROS::CustomResource ou Custom::String para definir um recurso personalizado.

Recursos personalizados permitem incorporar lógica de configuração aos modelos. O ROS executa essa lógica durante a criação, atualização ou exclusão da stack. Visão geral de recursos personalizados.

O recurso personalizado deve enviar uma resposta para uma URL pré-assinada; caso contrário, a operação de stack falhará. ResponseURL oferece suporte à rede pública; InnerResponseURL oferece suporte à rede privada da Alibaba Cloud.

Sintaxe

{
  "Type": "ALIYUN::ROS::CustomResource",
  "Properties": {
    "ServiceToken": String,
    "Timeout": Number,
    "Parameters": Map
  }
}

Propriedades

Propriedade

Tipo

Obrigatório

Permite atualizações

Descrição

Restrições

ServiceToken

String

Sim

Não

Token de serviço fornecido pelo provedor para acessar o serviço.

Atualmente, há suporte para função do Function Compute, tópico do SMQ (

Simple Message Queue (formerly MNS)

), fila do SMQ e HTTP&HTTPS.

Comprimento máximo: 512 caracteres.

Valores válidos:

  • FC 2.0: acs:fc:<region_id>:<account_id>:services/<service_name>/functions/<function_name>

  • FC 3.0: acs:fc:<region_id>:<account_id>:functions/<function_name>

  • Fila do SMQ: acs:mns:<region_id>:<account_id>:queues/<queue_name>

  • Tópico do SMQ: acs:mns:<region_id>:<account_id>:topics/<topic_name>

  • HTTP & HTTPS: web[options]:<url>

    options é opcional. Valores válidos: sync e idempotent. Separe vários valores com vírgula (,).

    sync: modo síncrono. O ROS usa a resposta direta em vez de aguardar um callback de URL pré-assinada. O comportamento padrão é assíncrono.

    idempotent: torna as solicitações de criação idempotentes. O ROS tenta novamente em caso de erros de rede ou respostas 500. As solicitações de criação não são idempotentes por padrão. As solicitações de atualização e exclusão são sempre idempotentes.

Exemplos:

  • acs:fc:cn-hangzhou:123456789:services/test-service/functions/test-function

  • acs:mns:cn-hangzhou:123456789:queues/test-queue

  • acs:mns:cn-hangzhou:123456789:topics/test-topic

  • web:https://example.com

  • web[sync]:http://example.com

  • web[sync,idempotent]:https://example.com

Timeout

Number

Sim

Sim

Tempo limite, em segundos, para o provedor de serviço personalizado responder.

  • Se ServiceToken especificar uma função do FC, um tópico do SMQ, uma fila do SMQ ou uma solicitação HTTP/HTTPS assíncrona, o valor padrão de Timeout será 60. O valor deve estar entre 1 e 43200.

  • Caso ServiceToken especifique uma solicitação HTTP/HTTPS síncrona, o ROS ignora Timeout. O tempo limite é sempre de 10 segundos.

Parameters

Map

Não

Sim

Parâmetros a serem passados ao provedor de serviço personalizado. Defina-os conforme as especificações do provedor.

Nenhuma.

Valores de retorno

Fn::GetAtt

  • Outputs: dados retornados pelo provedor de serviço personalizado, representados como um objeto map.

  • *: uma chave no map Outputs.

Exemplos

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  CustomResource:
    Type: ALIYUN::ROS::CustomResource
    Properties:
      ServiceToken: acs:fc:cn-hangzhou:123456789:services/test-service/functions/test-function
      Parameters:
        Key1: Value1
        Key2: Value2
      Timeout: 60
Parameters:
  Parameters:
    Type: Json
    Description: Parameters to be passed to service provider.
Outputs:
  Outputs:
    Description: Output data received from service provider.
    Value:
      Fn::GetAtt:
        - CustomResource
        - Outputs
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "CustomResource": {
      "Type": "ALIYUN::ROS::CustomResource",
      "Properties": {
        "ServiceToken": "acs:fc:cn-hangzhou:123456789:services/test-service/functions/test-function",
        "Parameters": {
          "Key1": "Value1",
          "Key2": "Value2"
        },
        "Timeout": 60
      }
    }
  },
  "Parameters": {
    "Parameters": {
      "Type": "Json",
      "Description": "Parameters to be passed to service provider."
    }
  },
  "Outputs": {
    "Outputs": {
      "Description": "Output data received from service provider.",
      "Value": {
        "Fn::GetAtt": [
          "CustomResource",
          "Outputs"
        ]
      }
    }
  }
}

Observações

  • Especifique um nome para o tipo de recurso personalizado

    Use ALIYUN::ROS::CustomResource como tipo de recurso ou defina seu próprio nome. Por exemplo, utilize Custom::MyCustomResourceTypeName em vez de ALIYUN::ROS::CustomResource.

    O nome do tipo de recurso personalizado pode conter letras, números e os seguintes caracteres especiais: _@-. O nome pode ter até 68 caracteres. Não é possível alterar o tipo durante uma atualização.

    Nomes de tipos personalizados ajudam a distinguir recursos na stack. Por exemplo, nomeie dois recursos de teste de ping como Custom::PingTester para identificá-los rapidamente.

  • Substituição de recursos personalizados durante atualizações

    Não é possível substituir o PhysicalResourceId de um recurso durante uma atualização no ROS.

  • Obtenção de valores de retorno

    O provedor de serviço personalizado define os valores de retorno. Recupere-os das propriedades definidas pelo provedor chamando Fn::GetAtt.