

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# AWS Service Catalog Einschränkungen für Vorlagen
<a name="catalogs_constraints_template-constraints"></a>

**Anmerkung**  
AWS Service Catalog unterstützt keine Vorlagenbeschränkungen für Terraform Open Source- oder Terraform Cloud-Produkte. 

Um die Optionen für Endbenutzer zu beschränken, wenn sie ein Produkt starten, wenden Sie Vorlageneinschränkungen an. Wenden Sie Vorlageneinschränkungen an, um sicherzustellen, dass die Endbenutzer die Produkte verwenden können, ohne gegen die Compliance-Anforderungen Ihrer Organisation zu verstoßen. Sie wenden Vorlagenbeschränkungen auf ein Produkt in einem Portfolio an. AWS Service Catalog Ein Portfolio muss ein oder mehrere Produkte enthalten, damit Sie Vorlageneinschränkungen definieren können.

Eine Vorlageneinschränkung besteht aus einer oder mehreren Regeln, die die zulässigen Werte für Parameter einschränken, die in der dem Produkt zugrunde liegenden CloudFormation Vorlage definiert sind. Die Parameter in einer CloudFormation -Vorlage definieren die Menge von Werten, die Benutzer beim Erstellen eines Stacks angeben können. Ein Parameter könnte beispielsweise die verschiedenen Instance-Typen definieren, aus denen Benutzer wählen können, wenn sie einen Stack starten, der EC2 Instances enthält.

Wenn die Menge der Parameterwerte in einer Vorlage für die Zielgruppe Ihres Portfolios zu ungenau ist, können Sie Vorlageneinschränkungen festlegen, um die Werte, die Benutzer beim Start eines Produkts auswählen können, zu begrenzen. Wenn die Vorlagenparameter beispielsweise EC2 Instance-Typen beinhalten, die für Benutzer, die nur kleine Instance-Typen verwenden sollten (wie `t2.micro` oder`t2.small`), zu groß sind, können Sie eine Vorlageneinschränkung hinzufügen, um die Instance-Typen einzuschränken, die Endbenutzer wählen können. Weitere Informationen zu CloudFormation Vorlagenparametern finden Sie unter [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html) im *CloudFormation Benutzerhandbuch*.

Vorlageneinschränkungen sind in einem Portfolio gebunden. Wenn Sie Vorlageneinschränkungen auf ein Produkt in einem Portfolio anwenden und dann das Produkt in ein anderes Portfolio einschließen, gelten die Einschränkungen nicht für das Produkt im zweiten Portfolio.

Wenn Sie eine Vorlageneinschränkung auf ein Produkt anwenden, das bereits für Benutzer freigegeben ist, ist die Einschränkung sofort für alle nachfolgenden Produktstarts und für alle Versionen des Produkts im Portfolio aktiv.

Sie definieren Beschränkungsregeln für Vorlagen, indem Sie einen Regeleditor verwenden oder die Regeln als JSON-Text in der AWS Service Catalog Administratorkonsole schreiben. Weitere Informationen über Regeln, einschließlich Syntax und Beispiele, finden Sie unter [Vorlageneinschränkungsregeln](reference-template_constraint_rules.md).

Zum Testen einer Einschränkung vor der Freigabe für die Benutzer erstellen Sie ein Testportfolio mit den gleichen Produkten und testen Sie die Einschränkungen mit diesem Portfolio.

**So wenden Sie Vorlageneinschränkungen auf ein Produkt an**

1. Öffnen Sie die Service Catalog-Konsole unter [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/).

1. Wählen Sie auf der Seite **Portfolios** das Portfolio aus, das das Produkt enthält, auf das Sie eine Vorlagenbeschränkung anwenden möchten. 

1. Erweitern Sie den Abschnitt **Einschränkungen** und wählen Sie **Einschränkungen hinzufügen**.

1. **Wählen Sie im Fenster Produkt und Typ** auswählen unter **Produkt** das Produkt aus, für das Sie die Vorlagenbeschränkungen definieren möchten. Wählen Sie dann für **Einschränkungstyp** die Option **Vorlage** aus. Klicken Sie auf **Weiter**.

1. Bearbeiten Sie auf der Seite **Template Constraint Builder** die Einschränkungsregeln mithilfe des JSON-Editors oder der Rule Builder-Schnittstelle.
   + Um den JSON-Code für die Regel zu bearbeiten, wählen Sie die Registerkarte **Constraint-Texteditor**. Auf dieser Registerkarte stehen mehrere Beispiele zur Verfügung, die Sie bei den ersten Schritten unterstützen.

     Um die Regeln mithilfe einer Rule Builder-Oberfläche zu erstellen, wählen Sie die Registerkarte **Rule Builder**. Auf dieser Registerkarte können Sie jeden beliebigen Parameter auswählen, der in der Vorlage für das Produkt angegeben ist. Außerdem können Sie die zulässigen Werte für diese Parameter angeben. Abhängig von der Art des Parameter geben Sie die zulässigen Werte an, indem Sie Elemente in einer Checkliste auswählen, eine Zahl angeben oder eine Reihe von Werten in einer durch Komma getrennten Liste festlegen.

     Wenn Sie mit dem Erstellen einer Regel fertig sind, wählen Sie **Regel hinzufügen**. Die Regel wird in der Tabelle auf der Registerkarte **Rule Builder** angezeigt. Um die JSON-Ausgabe zu überprüfen und zu bearbeiten, wählen Sie die Registerkarte **Constraint Text Editor**.

1. Wenn Sie mit der Bearbeitung der Regeln für Ihre Einschränkung fertig sind, wählen Sie „**Senden**“. Um die Einschränkung zu sehen, gehen Sie zur Seite mit den Portfoliodetails und erweitern Sie die **Option Einschränkungen**.

# Vorlageneinschränkungsregeln
<a name="reference-template_constraint_rules"></a>

Die Regeln, die Einschränkungen für Vorlagen in einem AWS Service Catalog Portfolio definieren, beschreiben, wann Endbenutzer die Vorlage verwenden können und welche Werte sie für Parameter angeben können, die in der CloudFormation Vorlage deklariert sind, die zur Erstellung des Produkts verwendet wurde, das sie verwenden möchten. Regeln sind nützlich, um zu verhindern, dass Endbenutzer unabsichtlich einen falschen Wert angeben. Sie können beispielsweise eine Regel hinzufügen, um zu überprüfen, ob Endbenutzer ein gültiges Subnetz in einer bestimmten VPC angegeben oder `m1.small` Instance-Typen für Testumgebungen verwendet haben. CloudFormation verwendet Regeln, um Parameterwerte zu validieren, bevor die Ressourcen für das Produkt erstellt werden.

Jede Regel besteht aus zwei Eigenschaften: eine Regelbedingung (optional) und Assertions (erforderlich). Die Regelbedingung bestimmt, wann eine Regel wirksam wird. Die Assertions beschreiben, welche Werte Benutzer für einen bestimmten Parameter angeben können. Wenn Sie keine Regelbedingung definieren, werden die Assertions der Regel immer wirksam. Zum Definieren einer Regelbedingung und von Assertions verwenden Sie *regelspezifische intrinsische Funktionen*. Dies sind Funktionen, die nur im Abschnitt `Rules` einer Vorlage verwendet werden können. Sie können Funktionen verschachteln, aber das Endergebnis einer Regelbedingung oder Assertion muss entweder "true" oder "false" lauten.

Beispiel: Angenommen, Sie haben eine VPC und einen Subnetzparameter im Abschnitt `Parameters` deklariert. Sie können eine Regel erstellen, die validiert, das sich ein angegebenes Subnetz in einer bestimmten VPC befindet. Wenn ein Benutzer also eine VPC angibt, CloudFormation wertet er die Assertion aus, um zu überprüfen, ob sich der Subnetzparameterwert in dieser VPC befindet, bevor der Stack erstellt oder aktualisiert wird. Wenn der Parameterwert ungültig ist, können Sie den CloudFormation Stack nicht sofort erstellen oder aktualisieren. Wenn Benutzer keine VPC angeben, wird der Wert des Subnetzparameters CloudFormation nicht überprüft.

## Syntax
<a name="template-constraint-rules-syntax"></a>

Der Abschnitt `Rules` einer Vorlage besteht aus dem Schlüsselnamen `Rules`, gefolgt von einem einzigen Doppelpunkt. Regeldeklarationen werden durch Klammern eingeschlossen. Wenn Sie mehrere Regeln deklarieren, werden sie durch Kommas getrennt. Für jede Regel deklarieren Sie einen logischen Namen in Anführungszeichen gefolgt von einem Doppelpunkt und Klammern, die die Regelbedingung und Assertionen umschließen.

Eine Regel kann eine `RuleCondition`-Eigenschaft enthalten und muss eine `Assertions`-Eigenschaft einschließen. Für jede Regel können Sie nur eine Regelbedingung definieren. Innerhalb der `Assertions`-Eigenschaft können Sie eine oder mehrere Assertionen definieren. Sie definieren eine Regelbedingung und Assertionen mit regelspezifischen intrinsischen Funktionen, wie in der folgenden Pseudovorlage dargestellt:

```
"Rules":{
   "Rule01":{
      "RuleCondition":{
         "Rule-specific intrinsic function"
      },
      "Assertions":[
         {
            "Assert":{
               "Rule-specific intrinsic function"
            },
            "AssertDescription":"Information about this assert"
         },
         {
            "Assert":{
               "Rule-specific intrinsic function"
            },
            "AssertDescription":"Information about this assert"
         }
      ]
   },
   "Rule02":{
      "Assertions":[
         {
            "Assert":{
               "Rule-specific intrinsic function"
            },
            "AssertDescription":"Information about this assert"
         }
      ]
   }
}
```

Die Pseudovorlage zeigt einen `Rules`-Abschnitt mit zwei Regeln namens `Rule01` und `Rule02` an. `Rule01` enthält eine Regelbedingung und zwei Assertionen. Wenn die Funktion in der Regelbedingung mit "true" ausgewertet wird, werden beide Funktionen in jeder Assertion ausgewertet und angewendet. Wenn die Regelbedingung "false" ergibt, wird die Regel nicht wirksam. `Rule02` ist stets wirksam, da sie über keine Regelbedingung verfügt. Dies bedeutet, dass die eine Assertion immer ausgewertet und angewendet wird.

[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-rules.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-rules.html)

## Beispiel: Bedingtes Überprüfen eines Parameterwerts
<a name="template-constraint-rules-example"></a>

Die beiden folgenden Regeln überprüfen den Wert des Parameters `InstanceType`. Je nach Wert des Environment-Parameters (`test` oder `prod`) muss der Benutzer `m1.small` oder `m1.large` für den `InstanceType`-Parameter angeben. Die Parameter `InstanceType` und `Environment` müssen im `Parameters`-Abschnitt derselben Vorlage deklariert sein.

```
"Rules" : {
  "testInstanceType" : {
    "RuleCondition" : {"Fn::Equals":[{"Ref":"Environment"}, "test"]},
    "Assertions" : [
      {
        "Assert" :  { "Fn::Contains" : [ ["m1.small"], {"Ref" : "InstanceType"} ] },
        "AssertDescription" : "For the test environment, the instance type must be m1.small"
      }
    ]
  },
  "prodInstanceType" : {
    "RuleCondition" : {"Fn::Equals":[{"Ref":"Environment"}, "prod"]},
    "Assertions" : [
      {
        "Assert" :  { "Fn::Contains" : [ ["m1.large"], {"Ref" : "InstanceType"} ] },
        "AssertDescription" : "For the prod environment, the instance type must be m1.large"
      }
    ]
  }
}
```