Vincular um parâmetro a um pool de recursos

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 3 min. de leitura
  • Para tornar a ordenação de catálogo menos propensa a erros, você pode vincular um parâmetro a um grupo de recursos (um pool fornecido no sistema base). Parâmetros baseados em uma lista de pool de recursos especificaram somente valores de tabelas existentes no formulário de pedido do catálogo no Portal de usuário da nuvem.

    Antes de Iniciar

    Função necessária: sn.cmp.cloud_service_designer

    Por Que e Quando Desempenhar Esta Tarefa

    O formulário de pedido do catálogo lista somente valores de parâmetros que têm fonte de dados especificado. Por exemplo, se você usar Resource Group Nameem seu modelo, você pode vincular o. Nome do grupo de recursos Campo para um pool de SN existente ( ResourceGroupPoolna seção de metadados.

    Ao criar um bloco de recursos usando um modelo de nuvem, você pode vincular um parâmetro a um pool de SN na seção de metadados do modelo Azure Resource Manager (ARM) ou CloudFormation (CF). Todos os pools de SN são listados no procedimento.

    Procedimento

    1. No Portal do administrador de nuvem, navegue até Design > Itens do catálogo na nuvem.
    2. Selecione um modelo existente ou clique em Novo para criar um novo modelo de nuvem.

      Se você selecionar um modelo existente, renomeie-o.

      Na próxima etapa, modifique a definição do modelo para o tipo de modelo apropriado (escolha ARM ou CloudFormation). Especifique o filtro de pool de SN como datasourcevalor.

      Tabela 1. Pools de SN a serem usados como o valor da fonte de dados
      Pool de SN Filtrar
      AvailabilityZonePool

      GetAllObjects: Obtém todas as zonas de disponibilidade.

      GetObjectsByLDC: Obtém a zona de disponibilidade dependendo do LDC.

      HardwareTypePool
      Pool de imagens
      LoadBalancerPool Todos: Obtém todos os balanceadores de carga.
      NetworkPool

      GetAllObjects: Obtém todas as redes.

      GetObjectsByLDC: Obtém redes que dependem de LDC.

      ResourceGroupPool GetObjectsByLDC: Obtém grupos de recursos dependendo do LDC.
      SecurityGroupPool GetObjectsByNetwork: Obtém todos os grupos de segurança.
      SecurityGroupProfilePool Todos: Obtém todos os perfis de grupo de segurança.
      SSHKeyPool UserKeys: Obtém todas as chaves SSH.
      StorageAccountPool GetObjectsByLDC: Obtém contas de armazenamento dependendo do LDC.
      StorageVolumePool Todos: Obtém todos os volumes de armazenamento.
      SubnetPool GetObjectsByNetwork: Obtém todas as sub-redes.
      VirtualMachinePool GetByAvailabilit>Obtém todas as máquinas virtuais.
    3. Modificar uma definição de modelo ARM:
      1. Adicione o atributo SNC::Parameter::Metadataem parametersseção de metadados.
      2. Para SNC::Parameter::Metadataatributo, adicionar fonte de dados E insira um filtro de pool SN para o valor, como StorageAccountPool.getObjectsByLDC como mostrado neste exemplo.
        "parameters": {
            "newStorageAccountName": {
              "type": "string",
              "metadata": {
                "description": "Unique DNS Name for the Storage Account where the Virtual Machine's disks will be placed.",
                 "SNC::Parameter::Metadata": {
                 "allowedPattern": "[0-9a-z]{1,11}",
                 "ConstraintDescription": "must be a alphanumeric ",
                 "datasource":"ServiceNow::Pools::StorageAccountPool.getObjectsByLDC",
         
                } 
              }
            }
        
    4. Modifique uma definição de modelo do CloudFormation:
      1. Adicione o atributo SNC::Parameter::Metadatae definem o nome do atributo personalizado ( VpcId) com um datasource.
        Para datasourceInsira um filtro de pool SN, como NetworkPool.getObjectsByLDC neste exemplo.
      2. Defina datasourceFilteratributo de mapeamento para vincular o nome personalizado ( VpcId) para o nome do atributo real ( Network).
        "Parameters" : { 
         
              "VpcId" : {
              "Type" : "AWS::EC2::VPC::Id",
              "Description" : "VpcId of your existing Virtual Private Cloud (VPC)",
              "ConstraintDescription" : "must be the VPC Id of an existing Virtual Private Cloud."
            },
         
            "SubnetId" : {
              "Type" : "AWS::EC2::Subnet::Id",
              "Description" : "SubnetId of an existing subnet (for the primary network) in your Virtual Private Cloud (VPC)",
              "ConstraintDescription" : "must be an existing subnet in the selected Virtual Private Cloud."
            }
          },
          "Metadata": {
                  "SNC::Parameter::Metadata": {
                        "VpcId":{
                             "datasource":"ServiceNow::Pools::NetworkPool.getObjectsByLDC",
                             "datasourceFilter":{"Network":"VpcId"}
                         },
                         "SubnetId":{
                             "datasource":"ServiceNow::Pools::SubnetPool.getObjectsByNetwork",
                             "datasourceFilter":{"Network":"VpcId"}
                         }
         
                    }
            }
        
    5. Clique em Enviar.
    6. Depois que o bloco de recursos, o plano gráfico e os itens do catálogo são criados, o usuário do serviço em nuvem vê somente a lista de valores dos dados do pool para o parâmetro no formulário de pedido do catálogo.