Binden Sie einen Parameter an einen Ressourcenpool

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 2 Minuten Lesedauer
  • Um die Fehleranfälligkeit der Katalogbestellung zu verringern, können Sie einen Parameter an einen Ressourcenpool (einen in Basissystembereitgestellten Pool) binden. Parameter, die auf einem Ressourcenpool basieren, führen nur angegebene Werte aus vorhandenen Tabellen im Katalogbestellformular in Cloudbenutzerportalauf.

    Vorbereitungen

    Erforderliche Rolle: sn_cmp.cloud_service_designer

    Warum und wann dieser Vorgang ausgeführt wird

    Das Katalogbestellformular listet nur Parameterwerte auf, für die die Datenquelle angegeben ist. Wenn Sie beispielsweise den Parameter Resource Group Name in Ihrer Vorlage verwenden, können Sie das Feld Ressourcengruppenname im Metadatenabschnitt an einen vorhandenen SN-Pool (ResourceGroupPool) binden.

    Wenn Sie einen Ressourcenblock mithilfe einer Cloud-Vorlage erstellen, können Sie einen Parameter im Metadatenabschnitt der Azure Resource Manager- (ARM) oder CloudFormation-Vorlage (CF) an einen SN-Pool binden. Alle SN-Pools werden im Verfahren aufgelistet.

    Prozedur

    1. Navigieren Sie im Cloud-Administrationsportal zu Entwurf > Cloud-Katalogelemente.
    2. Wählen Sie eine vorhandene Vorlage aus, oder klicken Sie auf Neu, um eine neue Cloud-Vorlage zu erstellen.

      Wenn Sie eine vorhandene Vorlage auswählen, benennen Sie die Vorlage um.

      Im nächsten Schritt ändern Sie die Vorlagendefinition für den entsprechenden Vorlagentyp (wählen Sie ARM oder CloudFormation aus). Sie geben den SN-Poolfilter als Wert für datasource an.

      Tabelle : 1. SN-Pools, die als Datenquellenwert verwendet werden sollen
      SN-Pool Filter
      AvailabilityZonePool

      getAllObjects: Ruft alle Verfügbarkeitszonen ab.

      getObjectsByLDC: Ruft die Verfügbarkeitszone abhängig vom LDC ab.

      HardwareTypePool
      ImagePool
      LoadBalancerPool Alle: Ruft alle Lastenausgleichsmodule ab.
      NetworkPool

      getAllObjects: Ruft alle Netzwerke ab.

      getObjectsByLDC: Ruft die Netzwerke abhängig vom LDC ab.

      ResourceGroupPool getObjectsByLDC: Ruft die Ressourcengruppen abhängig vom LDC ab.
      SecurityGroupPool getObjectsByNetwork: Ruft alle Sicherheitsgruppen ab.
      SecurityGroupProfilePool Alle: Ruft alle Sicherheitsgruppenprofile ab.
      SSHKeyPool UserKeys: Ruft alle SSH-Schlüssel ab.
      StorageAccountPool getObjectsByLDC: Ruft die Speicherkonten abhängig vom LDC ab.
      StorageVolumePool Alle: Ruft alle Speichervolumes ab.
      SubnetPool getObjectsByNetwork: Ruft alle Subnetze ab.
      VirtualMachinePool getByAvailabilityZone: Ruft alle virtuellen Computer ab.
    3. Ändern Sie eine ARM-Vorlagendefinition:
      1. Fügen Sie das Attribut SNC::Parameter::Metadata im Metadatenabschnitt parameters hinzu.
      2. Fügen Sie für das Attribut SNC::Parameter::Metadatadie Datenquelle als Schlüssel hinzu, und geben Sie einen SN-Pool-Filter für den Wert ein, z. B. StorageAccountPool.getObjectsByLDC (siehe Beispiel).
        "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. Ändern Sie eine CloudFormation-Vorlagendefinition:
      1. Fügen Sie das Attribut SNC::Parameter::Metadata hinzu, und definieren Sie den Namen des anwenderdefinierten Attributs (VpcId) mit einem datasource.
        Geben Sie für den Wert datasource einen SN-Poolfilter ein, wie in diesem Beispiel NetworkPool.getObjectsByLDC.
      2. Definieren Sie das Zuordnungsattribut datasourceFilter, um den benutzerdefinierten Namen (VpcId) an den tatsächlichen Attributnamen (Network) zu binden.
        "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. Klicken Sie auf Absenden.
    6. Nachdem der Ressourcenblock, die Blaupause und die Katalogelemente erstellt wurden, sieht der Benutzer des Cloud-Service im Katalogbestellformular nur die Werteliste der Pooldaten für den Parameter.