Binden Sie einen Parameter an einen Ressourcenpool

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 2 Minuten Lesedauer
  • Um die Katalogbestellung weniger fehleranfällig zu machen, können Sie einen Parameter an einen Ressourcenpool (einen in Basissystembereitgestellten Pool) binden. Parameter, die auf einem Ressourcenpool basieren, führen nur Werte aus vorhandenen Tabellen im Katalogbestellformular im 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-Adminportal zu Design > 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::Metadata die Datenquelle als Schlüssel hinzu, und geben Sie einen SN- Poolfilter für den Wert ein, z. B. StorageAccountPool.getObjectsByLDC, wie in diesem Beispiel gezeigt.
        "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 benutzerdefinierten Attributnamen (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.