Hinzufügen von serverlosen Anwendungskomponenten - AWS Marketplace

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.

Hinzufügen von serverlosen Anwendungskomponenten

Sie können ein Produkt erstellen, das ein oder mehrere Amazon Machine Images (AMIs) enthält, die mithilfe einer oder mehrerer AWS CloudFormation Vorlagen bereitgestellt werden, wobei serverlose Komponenten in das Produkt integriert sind. Erstellen Sie beispielsweise ein Produkt, bei dem ein AMI als Controller-Server und ein anderes AMI als Worker-Server konfiguriert ist und als AWS CloudFormation Stack bereitgestellt wird. Die AWS CloudFormation Vorlage, die zur Erstellung des Stacks verwendet wird, kann die Definition für die Einrichtung einer AWS Lambda Funktion enthalten, die durch ein Ereignis auf einem der Server ausgelöst wird.

Wenn Sie diesen Ansatz für die Erstellung Ihres Produkts verwenden, können Sie die Architektur vereinfachen und Ihren Käufern den Start erleichtern. Dieser Ansatz kann Ihnen gleichzeitig die Aktualisierung Ihres Produkts erleichtern.

Weitere Informationen zum Erstellen von AMIs für Ihr Produkt finden Sie unter AMI-basierte Produkte. Informationen zum Ausfüllen von AWS CloudFormation Vorlagen für Ihr Produkt finden Sie unterAMI-basierte Lieferung mit AWS CloudFormation.

Wenn Sie Ihre serverlose Anwendung definieren, verwenden Sie eine Vorlage AWS Serverless Application Model (AWS SAM), die Sie in der AWS Serverless Application Repository speichern. AWS SAM ist ein Open-Source-Framework für die Erstellung serverloser Anwendungen. AWS SAM Transformiert und erweitert die Syntax während der Bereitstellung in AWS Serverless Application Model Syntax. AWS CloudFormation AWS Serverless Application Repository ist ein verwaltetes Repository für serverlose Anwendungen. Es ermöglicht es Ihnen, wiederverwendbare Anwendungen zu speichern und freizugeben, sodass Käufer serverlose Architekturen zusammen- und bereitstellen können. Führen Sie die folgenden Schritte aus, um diese Art von Produkt zu erstellen und anzubieten:

AWS Marketplace überprüft und validiert Ihr Produkt, bevor Ihr Angebot erstellt wird. Wenn es Probleme gibt, die Sie lösen müssen, bevor das Angebot aufgeführt wird, senden wir Ihnen eine E-Mail-Nachricht.

Im Rahmen der Erfüllung eines Abonnements kopieren wir die AMIs, serverlosen Anwendungen und AWS CloudFormation Vorlagen jeweils in ein AWS Marketplace eigenes Repository. AWS-Region Wenn ein Käufer Ihr Produkt abonniert, gewähren wir ihm Zugriff und benachrichtigen ihn auch, wenn Sie Ihre Software aktualisieren.

Erstellen einer serverless Anwendung

Ihr erster Schritt besteht darin, die AWS Lambda Funktionen zu verpacken, die zur Erstellung Ihrer serverlosen Anwendung verwendet wurden. Ihre Anwendung ist eine Kombination aus Lambda-Funktionen, Ereignisquellen und anderen Ressourcen, die zusammenarbeiten, um Aufgaben auszuführen. Eine serverlose Anwendung kann so einfach wie eine Lambda-Funktion sein oder mehrere Funktionen mit anderen Ressourcen wie APIs, Datenbanken und Ereignisquellenzuordnungen enthalten.

Verwenden Sie die AWS SAM , um ein Modell für Ihre serverlose Anwendung zu definieren. Eine Beschreibung der Eigenschaftsnamen und -typen finden Sie AWS::Serverless::Applicationin AWS Labs unter GitHub. Das Folgende ist ein Beispiel für eine AWS SAM Vorlage mit einer einzigen Lambda-Funktion und AWS Identity and Access Management (IAM) -Rolle.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: An example of SAM template with Lambda function and IAM role Resources: SampleFunction: Type: AWS::Serverless::Function Properties: Handler: 'com.sampleproject.SampleHandler::handleRequest' Runtime: java8 CodeUri: 's3://DOC-EXAMPLE-BUCKET/2EXAMPLE-1234-4b12-ac37-515EXAMPLEe5-lambda.zip' Description: Sample Lambda function Timeout: 120 MemorySize: 1024 Role: Fn::GetAtt: [SampleFunctionRole, Arn] # Role to execute the Lambda function SampleFunctionRole: Type: "AWS::IAM::Role" Properties: AssumeRolePolicyDocument: Statement: - Effect: "Allow" Principal: Service: - "lambda.amazonaws.com" Action: "sts:AssumeRole" ManagedPolicyArns: - "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" Policies: - PolicyName: SFNXDeployWorkflowDefinitionPolicy PolicyDocument: Statement: - Effect: "Allow" Action: - "s3:Get*" Resource: "*" RoleName: "SampleFunctionRole"

Veröffentlichen Ihrer Anwendung im Repository

Laden Sie zunächst den Anwendungscode hoch, um eine Anwendung zu veröffentlichen. Speichern Sie Ihre Code-Artefakte (z. B. Lambda-Funktionen, Skripts, Konfigurationsdateien) in einem Amazon S3 S3-Bucket, der Ihrem Konto gehört. Wenn Sie Ihre Anwendung hochladen, ist sie zunächst auf privat gesetzt, was bedeutet, dass sie nur für den Benutzer verfügbar ist AWS-Konto , der sie erstellt hat. Sie müssen eine IAM-Richtlinie erstellen, die AWS Serverless Application Repository Berechtigungen für den Zugriff auf die von Ihnen hochgeladenen Artefakte gewährt.

So veröffentlichen Sie Ihre serverlose Anwendung im serverlosen Anwendungs-Repository
  1. Öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie den Amazon S3 S3-Bucket aus, den Sie zum Verpacken Ihrer Anwendung verwendet haben.

  3. Wählen Sie die Registerkarte Berechtigungen.

  4. Wählen Sie Bucket Policy aus.

  5. Kopieren Sie die folgende Beispielrichtlinie und fügen Sie sie ein.

    Anmerkung

    Die Beispiel-Richtlinienanweisung erzeugt einen Fehler, bis die Werte für aws:SourceAccount und in den folgenden Schritten aktualisiert Resource werden.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "serverlessrepo.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition" : { "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }
    1. Ersetzen Sie DOC-EXAMPLE-BUCKET im Resource Eigenschaftswert durch den Bucket-Namen für Ihren Bucket.

    2. Ersetzen Sie 123456789012 im Element durch Ihre ID. Condition AWS-Konto Das Condition Element stellt sicher, dass AWS Serverless Application Repository nur das die Berechtigung hat, auf Anwendungen aus den angegebenen Bereichen zuzugreifen. AWS-Konto

  6. Wählen Sie Speichern.

  7. Öffnen Sie die AWS Serverless Application Repository Konsole unterhttps://console.aws.amazon.com/serverlessrepo.

  8. Wählen Sie auf der Seite My Applications (Meine Anwendungen) die Option Publish application (Anwendung veröffentlichen) aus.

  9. Füllen Sie die Pflichtfelder und ggf. alle optionalen Felder aus. Die Pflichtfelder sind:

    • Anwendungsname

    • Autor

    • Beschreibung

    • Quellcode-URL

    • SAM-Vorlage

  10. Wählen Sie Publish application (Anwendung veröffentlichen) aus.

Um nachfolgende Versionen Ihrer Anwendung zu veröffentlichen
  1. Öffnen Sie die AWS Serverless Application Repository Konsole unterhttps://console.aws.amazon.com/serverlessrepo.

  2. Wählen Sie die Anwendung im Navigationsbereich unter My Applications (Meine Anwendungen) aus.

  3. Wählen Sie Publish new version (Neue Version veröffentlichen) aus.

Weitere Informationen finden Sie unter Veröffentlichen serverloser Anwendungen mit der AWS SAM CLI.

Erstellen der CloudFormation-Vorlage

Um Ihre CloudFormation Vorlagen zu erstellen, müssen Sie die Vorlagenvoraussetzungen erfüllen und die erforderlichen Eingabe- und Sicherheitsparameter angeben. Weitere Informationen finden Sie im AWS CloudFormation Benutzerhandbuch unter Anatomie der Vorlage.

In Ihrer CloudFormation Vorlage können Sie auf Ihre serverlose Anwendung und Ihr AMI verweisen. Sie können auch verschachtelte CloudFormation Vorlagen verwenden und sowohl in der Stammvorlage als auch in den verschachtelten Vorlagen auf serverlose Anwendungen verweisen. Um auf die serverlose Anwendung zu verweisen, verwenden Sie die Vorlage. AWS SAM Sie können die AWS SAM Vorlage für Ihre Anwendung automatisch aus dem AWS Serverless Application Repository generieren. Nachfolgend finden Sie eine Beispielvorlage:

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: An example root template for a SAR application Resources: SampleSARApplication: Type: AWS::Serverless::Application Properties: Location: ApplicationId: arn:aws:serverlessrepo:us-east-1:1234567890:applications/TestApplication SemanticVersion: 1.0.0 SampleEC2Instance: Type: AWS::EC2::Instance Properties: ImageId: "ami-79fd7eee" KeyName: "testkey" BlockDeviceMappings: - DeviceName: "/dev/sdm" Ebs: VolumeType: "io1" Iops: "200" DeleteOnTermination: "false" VolumeSize: "20" - DeviceName: "/dev/sdk" NoDevice: {}

Die AWS SAM Vorlage enthält die folgenden Elemente:

  • ApplicationID— Der Amazon-Ressourcenname (ARN) Ihrer Anwendung. Diese Informationen finden Sie im Abschnitt My Applications (Meine Anwendungen) von AWS Serverless Application Repository.

  • SemanticVersion— Die Version Ihrer serverlosen Anwendung. Sie finden ihn im Abschnitt My Applications (Meine Anwendungen ) des AWS Serverless Application Repository.

  • Parameter(optional) — Anwendungsparameter.

Anmerkung

Für ApplicationID und SemanticVersion werden systeminterne Funktionen nicht unterstützt. Sie müssen diese Zeichenketten hartcodieren. Das ApplicationID wird aktualisiert, wenn es von geklont wird. AWS Marketplace

Wenn Sie planen, in Ihrer CloudFormation Vorlage auf Konfigurations- und Skriptdateien zu verweisen, verwenden Sie das folgende Format. Bei verschachtelten Vorlagen (AWS::Cloudformation::Stack) werden nur Funktionen TemplateURLs ohne systemeigene Funktionen unterstützt. Notieren Sie sich den Parameters-Inhalt in der Vorlage.

AWSTemplateFormatVersion: '2010-09-09' Metadata: Name: Seller test product Parameters: CFTRefFilesBucket: Type: String Default: "seller-bucket" CFTRefFilesBucketKeyPrefix: Type: String Default: "cftsolutionFolder/additionCFfiles" Resources: TestEc2: Type: AWS::EC2::Instance Metadata: AWS::CloudFormation::Init: addCloudAccount: files: /etc/cfn/set-aia-settings.sh: source: Fn::Sub: - https://${CFTRefFilesBucket}.${S3Region}amazonaws.com/${CFTRefFilesBucketKeyPrefix}/sampleScript.sh - S3Region: !If - GovCloudCondition - s3-us-gov-west-1 - s3 owner: root mode: '000700' authentication: S3AccessCreds .. .. .. SampleNestedStack: Type: AWS::CloudFormation::Stack Properties: TemplateURL: 'https://sellerbucket.s3.amazon.com/sellerproductfolder/nestedCft.template' Parameters: SampleParameter: 'test' Transform: AWS::Serverless-2016-10-31

Reichen Sie Ihre CloudFormation Vorlagen- und Konfigurationsdateien ein

Um Ihre CloudFormation Vorlagen-, Konfigurations- und Skriptdateien einzureichen, gewähren Sie AWS Marketplace Berechtigungen zum Lesen des Amazon S3 S3-Buckets, in dem diese Dateien gespeichert sind. Aktualisieren Sie dazu Ihre Bucket-Richtlinie, sodass sie die folgenden Berechtigungen enthält.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "assets.marketplace.amazonaws.com" }, "Action": ["s3:GetObject", "s3:ListBucket"], "Resource": ["arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"] } ] }

Aktualisieren Ihrer AWS Serverless Application Repository -Anwendungsberechtigungen

Um Ihre AWS Serverless Application Repository Bewerbung einzureichen AWS Marketplace, müssen Sie AWS Marketplace Berechtigungen zum Lesen Ihrer Bewerbung erteilen. Fügen Sie dazu einer Richtlinie, die Ihrer serverlosen Anwendung zugeordnet ist, Berechtigungen hinzu. Es gibt zwei Möglichkeiten, Ihre Anwendungsrichtlinie zu aktualisieren:

  • Rufen Sie das AWS Serverless Application Repository (AWS Serverloses Repository) auf. Wählen Sie Ihre serverlose Anwendung aus der Liste aus. Wählen Sie die Registerkarte „Teilen“ und dann „Kontoauszug erstellen“. Geben Sie auf der Konfigurationsseite für Kontoauszüge den folgenden Service Principal in das Feld Account-IDs ein. assets.marketplace.amazonaws.com Wählen Sie dann Speichern.

  • Verwenden Sie den folgenden AWS CLI Befehl, um Ihre Anwendungsrichtlinie zu aktualisieren.

    aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements Principals=assets.marketplace.amazonaws.com,Actions=Deploy

Freigeben Ihres AMI

Alle AMIs, die erstellt und eingereicht wurden, AWS Marketplace müssen allen Produktrichtlinien entsprechen. Das Self-Service AMI-Scanning ist im AWS Marketplace Management Portal verfügbar. Mit dieser Funktion können Sie Scans Ihrer AMIs initiieren. Sie erhalten schnell (in der Regel in weniger als einer Stunde) Scanergebnisse mit klarem Feedback an einer einzigen Stelle. Nachdem Ihr AMI erfolgreich gescannt wurde, reichen Sie das AMI zur Bearbeitung durch das AWS Marketplace Seller Operations Team ein, indem Sie Ihr Produktladeformular hochladen.

Reichen Sie Ihr CloudFormation Produkt mit AMI und serverloser Anwendung ein

Beachten Sie Folgendes, bevor Sie Ihr Produkt einreichen:

  • Sie müssen für jede Vorlage ein Architekturdiagramm bereitstellen. Das Diagramm muss die AWS Produktsymbole für jeden AWS Dienst verwenden, der über die CloudFormation Vorlage bereitgestellt wird. Außerdem muss das Diagramm Metadaten für die Dienste enthalten. Unsere offiziellen AWS Architektursymbole können Sie unter AWS-Architektursymbole herunterladen.

  • Die Schätzung der Infrastrukturkosten für jede Vorlage, die Käufern angezeigt wird, basiert auf einer Schätzung, die Sie mithilfe des AWS Preisrechners angeben. Nehmen Sie in die Schätzung die Liste der Services auf, die als Teil der Vorlage bereitgestellt werden sollen, sowie die Standardwerte für eine typische Bereitstellung.

  • Füllen Sie das Produktladeformular aus. Sie finden das Produktladeformular im AWS Marketplace Management Portal. Für einzelne AMI-Produkte und mehrere AMI-Produkte sind unterschiedliche Produktladeformulare erforderlich. Im Formular zum Laden des Produkts geben Sie eine öffentliche URL zu Ihrer CloudFormation Vorlage an. CloudFormation Vorlagen müssen in Form einer öffentlichen URL eingereicht werden.

  • Verwenden Sie die AWS Marketplace Management Portal , um Ihr Angebot einzureichen. Wählen Sie unter Assets (Komponenten) die Option File upload (Datei hochladen) aus, fügen Sie Ihre Datei an und wählen Sie anschließend Upload (Hochladen) aus. Nachdem wir Ihre Vorlage und Metadaten erhalten haben, AWS beginnt die Bearbeitung Ihrer Anfrage.

Nachdem Sie Ihr Angebot eingereicht haben, AWS Marketplace überprüft und validiert es das Formular zum Laden des Produkts. AWS Marketplace Regionalisiert außerdem AMIs und serverlose Anwendungen und aktualisiert die regionale Zuordnung für Ihre AWS CloudFormation Vorlage in Ihrem Namen. Falls Probleme auftreten, wird sich das AWS Marketplace Seller Operations Team per E-Mail mit Ihnen in Verbindung setzen.