Vincular um parâmetro a um grupo de recursos

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 3 min. de leitura
  • Para tornar a ordenação do catálogo menos propensa a erros, você pode vincular um parâmetro a um grupo de recursos (um grupo fornecido no sistema base). Os parâmetros que são baseados em um grupo de recursos listam somente os valores especificados das 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 de catálogo lista somente os 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 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 SN na seção de metadados do modelo do Azure Resource Manager (ARM) ou do CloudFormation (CF). Todos os pools de SN estã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 para 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). Você especifica o filtro de pool 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.

      Grupo de tipos de hardware
      Pool de imagens
      LoadBalancerPool Todos: obtém todos os balanceadores de carga.
      Pool de rede

      getAllObjects: obtém todas as redes.

      getObjectsByLDC: obtém redes que dependem 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.
      Pool de sub-redes getObjectsByNetwork: obtém todas as sub-redes.
      VirtualMachinePool getByAvailabilityZone: obtém todas as máquinas virtuais.
    3. Modifique uma definição de modelo do 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 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 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.