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.
Schritt 1: Herunterladen der AWS CloudFormation Vorlage
Sie können -AWS CloudFormationVorlagen verwenden, um Portfolios und Produkte zu konfigurieren und bereitzustellen. Bei diesen Vorlagen handelt es sich um Textdateien, die in JSON oder YAML formatiert werden können und die Ressourcen beschreiben, die Sie bereitstellen möchten. Weitere Informationen finden Sie unter Vorlagenformate im AWS CloudFormation-Benutzerhandbuch. Sie können den AWS CloudFormation Editor oder einen Texteditor Ihrer Wahl verwenden, um Vorlagen zu erstellen und zu speichern. In diesem Tutorial stellen wir eine einfache Vorlage bereit, damit Sie loslegen können. Die Vorlage startet eine einzelne Linux-Instance, die für den SSH-Zugriff konfiguriert ist.
Anmerkung
Die Verwendung von -AWS CloudFormationVorlagen erfordert spezielle Berechtigungen. Bevor Sie beginnen, stellen Sie sicher, dass Sie über die richtigen Berechtigungen verfügen. Weitere Informationen finden Sie unter Voraussetzungen in Bibliothek „Erste Schritte“.
Herunterladen der Vorlage
Die für dieses Tutorial bereitgestellte Beispielvorlage, development-environment.template
, ist unter https://awsdocs.s3.amazonaws.com/servicecatalog/development-environment.template
Vorlagen – Übersicht
Der Text der Beispielvorlage lautet wie folgt:
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "AWS Service Catalog sample template. Creates an Amazon EC2 instance
running the Amazon Linux AMI. The AMI is chosen based on the region
in which the stack is run. This example creates an EC2 security
group for the instance to give you SSH access. **WARNING** This
template creates an Amazon EC2 instance. You will be billed for the
AWS resources used if you create a stack from this template.",
"Parameters" : {
"KeyName": {
"Description" : "Name of an existing EC2 key pair for SSH access to the EC2 instance.",
"Type": "AWS::EC2::KeyPair::KeyName"
},
"InstanceType" : {
"Description" : "EC2 instance type.",
"Type" : "String",
"Default" : "t2.micro",
"AllowedValues" : [ "t2.micro", "t2.small", "t2.medium", "m3.medium", "m3.large",
"m3.xlarge", "m3.2xlarge" ]
},
"SSHLocation" : {
"Description" : "The IP address range that can SSH to the EC2 instance.",
"Type": "String",
"MinLength": "9",
"MaxLength": "18",
"Default": "0.0.0.0/0",
"AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})",
"ConstraintDescription": "Must be a valid IP CIDR range of the form x.x.x.x/x."
}
},
"Metadata" : {
"AWS::CloudFormation::Interface" : {
"ParameterGroups" : [{
"Label" : {"default": "Instance configuration"},
"Parameters" : ["InstanceType"]
},{
"Label" : {"default": "Security configuration"},
"Parameters" : ["KeyName", "SSHLocation"]
}],
"ParameterLabels" : {
"InstanceType": {"default": "Server size:"},
"KeyName": {"default": "Key pair:"},
"SSHLocation": {"default": "CIDR range:"}
}
}
},
"Mappings" : {
"AWSRegionArch2AMI" : {
"us-east-1" : { "HVM64" : "ami-08842d60" },
"us-west-2" : { "HVM64" : "ami-8786c6b7" },
"us-west-1" : { "HVM64" : "ami-cfa8a18a" },
"eu-west-1" : { "HVM64" : "ami-748e2903" },
"ap-southeast-1" : { "HVM64" : "ami-d6e1c584" },
"ap-northeast-1" : { "HVM64" : "ami-35072834" },
"ap-southeast-2" : { "HVM64" : "ami-fd4724c7" },
"sa-east-1" : { "HVM64" : "ami-956cc688" },
"cn-north-1" : { "HVM64" : "ami-ac57c595" },
"eu-central-1" : { "HVM64" : "ami-b43503a9" }
}
},
"Resources" : {
"EC2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"InstanceType" : { "Ref" : "InstanceType" },
"SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ],
"KeyName" : { "Ref" : "KeyName" },
"ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, "HVM64" ] }
}
},
"InstanceSecurityGroup" : {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"GroupDescription" : "Enable SSH access via port 22",
"SecurityGroupIngress" : [ {
"IpProtocol" : "tcp",
"FromPort" : "22",
"ToPort" : "22",
"CidrIp" : { "Ref" : "SSHLocation"}
} ]
}
}
},
"Outputs" : {
"PublicDNSName" : {
"Description" : "Public DNS name of the new EC2 instance",
"Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicDnsName" ] }
},
"PublicIPAddress" : {
"Description" : "Public IP address of the new EC2 instance",
"Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicIp" ] }
}
}
}
Vorlagenressourcen
Die Vorlage deklariert Ressourcen, die erstellt werden, wenn das Produkt gestartet wird. Sie besteht aus folgenden Abschnitten:
-
AWSTemplateFormatVersion (optional) – Die Version des AWS Vorlagenformats, das zum Erstellen dieser Vorlage verwendet wurde. Die neueste Version des Vorlagenformats ist 2010-09-09 und derzeit der einzige gültige Wert.
-
Beschreibung (optional) – Eine Beschreibung der Vorlage.
-
Parameter (optional) – Die Parameter, die Ihr Benutzer angeben muss, um das Produkt zu starten. Für jeden Parameter enthält die Vorlage eine Beschreibung und Einschränkungen, die der eingegebene Wert erfüllen muss. Weitere Informationen zu den Einschränkungen finden Sie unter Verwenden von AWS Service Catalog-Einschränkungen.
Mit dem
KeyName
Parameter können Sie einen Amazon Elastic Compute Cloud (Amazon EC2)-Schlüsselpaarnamen angeben, den Endbenutzer angeben müssen, wenn sie AWS Service Catalog zum Starten Ihres Produkts verwenden. Das Schlüsselpaar erstellen Sie im nächsten Schritt. -
Metadaten (optional) – Objekte, die zusätzliche Informationen über die Vorlage bereitstellen. Der Schlüssel AWS::CloudFormation::Interface definiert, wie die Ansicht der Endbenutzerkonsole Parameter anzeigt. Die Eigenschaft
ParameterGroups
legt fest, wie Parameter gruppiert werden und welche Überschriften die Gruppen erhalten. Die EigenschaftParameterLabels
definiert benutzerfreundliche Parameternamen. Wenn ein Benutzer Parameter zum Starten eines Produkts auf Basis dieser Vorlage angibt, zeigt die Endbenutzer-Konsolenansicht den Parameter mit der BezeichnungServer size:
unter der ÜberschriftInstance configuration
und die Parameter mit der BezeichnungKey pair:
undCIDR range:
unter der ÜberschriftSecurity configuration
an. -
Zuordnungen (optional) – Eine Zuordnung von Schlüsseln und zugehörigen Werten, mit der Sie bedingte Parameterwerte angeben können, ähnlich wie bei einer Nachschlagetabelle. Sie können einen Schlüssel einem entsprechenden Wert zuordnen, indem Sie die intrinsische Funktion Fn::FindInMap in den Abschnitten Ressourcen und Ausgaben verwenden. Die obige Vorlage enthält eine Liste von AWS Regionen und das Amazon Machine Image (AMI), das jeder Region entspricht. AWS Service Catalog verwendet diese Zuordnung, um anhand der AWS Region, die der Benutzer in der auswählt, zu bestimmen, welches AMI verwendet werden sollAWS Management Console.
-
Ressourcen (erforderlich) – Stack-Ressourcen und ihre Eigenschaften. Sie können auf Ressourcen in den Abschnitten Ressourcen und Ausgaben der Vorlage verweisen. In der obigen Vorlage geben wir eine EC2-Instance an, auf der Amazon Linux ausgeführt wird, und eine Sicherheitsgruppe, die SSH-Zugriff auf die Instance ermöglicht. Der Abschnitt Eigenschaften der EC2-Instance-Ressource verwendet die Informationen, die der Benutzer zum Konfigurieren des Instance-Typs und eines Schlüsselnamens für den SSH-Zugriff verwendet.
AWS CloudFormation verwendet die aktuelle AWS Region, um die AMI-ID aus den zuvor definierten Zuordnungen auszuwählen, und weist ihr eine Sicherheitsgruppe zu. Die Sicherheitsgruppe wird so konfiguriert, dass der eingehende Zugriff auf Port 22 aus dem CIDR-IP-Adressbereich, den der Benutzer angibt, zugelassen wird.
-
Ausgaben (optional) – Text, der dem Benutzer mitteilt, wann der Produktstart abgeschlossen ist. Die angegebene Vorlage ruft den öffentlichen DNS-Namen der gestarteten Instance ab und zeigt sie dem Benutzer an. Der Benutzer benötigt den DNS-Namen zum Herstellen einer Verbindung mit der Instance per SSH.
Weitere Informationen zur Seite Vorlagenanatomie finden Sie unter Vorlagenreferenz im AWS CloudFormation -Benutzerhandbuch.