Vincular um parâmetro a um grupo de recursos

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 3 min. de leitura
  • Para tornar a ordem do catálogo menos propensa a erros, você pode vincular um parâmetro a um grupo de recursos (um grupo fornecido em sistema base). Os parâmetros que são baseados em uma lista de grupos de recursos somente valores especificados de tabelas existentes no formulário de pedido de 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 de catálogo lista somente valores de parâmetros que têm a fonte de dados especificada. Por exemplo, se você usar o parâmetro Resource Group Name em seu modelo, poderá vincular o campo Nome do grupo de recursos a um pool de SN existente (ResourceGroupPool) na 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 do Azure Resource Manager (ARM) ou CloudFormation (CF). Todos os pools de SN são listados no procedimento.

    Procedimento

    1. No Portal de administração 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 modelo.

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

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

      getAllObjects: obtém todas as zonas de disponibilidade.

      getObjectsByLDC: obtém a zona de disponibilidade dependendo do LDC.

      HardwareTypePool
      ImagePool
      LoadBalancerPool Todos: obtém todos os balanceadores de carga.
      Pool de rede

      getAllObjects: obtém todas as redes.

      getObjectsByLDC: obtém redes dependendo do 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 getByAvailabilityZone: obtém todas as máquinas virtuais.
    3. Modifique uma definição de modelo de ARM:
      1. Adicione o atributo SNC::Parameter::Metadata na seção de metadados parameters.
      2. Para o atributo SNC::Parameter::Metadata, adicione a fonte de dados como a chave e insira um filtro de pool de SN para o valor, como StorageAccountPool.getObjectsByLDC, conforme 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::Metadata e defina o nome do atributo personalizado (VpcId) com um datasource.
        Para o valor datasource, insira um filtro de pool do SN, como NetworkPool.getObjectsByLDC neste exemplo.
      2. Defina o atributo de mapeamento datasourceFilter para vincular o nome personalizado (VpcId) ao 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.