アプリケーションを発行する方法 - AWS Serverless Application Repository

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

アプリケーションを発行する方法

このセクションでは、 CLI または AWS Serverless Application Repository を使用してサーバーレスアプリケーションを AWS SAM に発行する手順について説明します AWS Management Console。また、アプリケーションを共有して他のユーザーがデプロイできるようにする方法と、 AWS Serverless Application Repositoryからアプリケーションを削除する方法についても説明します。

重要

アプリケーションの発行時に入力した情報は暗号化されません。この情報には、作成者名などのデータが含まれます。個人を特定できる情報を保存または公開しない場合は、アプリケーションの発行時に、この情報を入力しないことをお勧めします。

アプリケーションの発行 (AWS CLI)

アプリケーションを に発行する最も簡単な方法は、一連の AWS SAM CLI コマンドを使用すること AWS Serverless Application Repository です。詳細については、 AWS Serverless Application Model (AWS SAM) デベロッパーガイドの「 CLI AWS SAM を使用したアプリケーションの公開」を参照してください。

新しいアプリケーションの発行 (コンソール)

このセクションでは、 を使用して AWS Management Console に新しいアプリケーションを発行する方法について説明します AWS Serverless Application Repository。既存のアプリケーションの新しいバージョンを発行する手順については、「既存アプリケーションの新しいバージョンの発行」を参照してください。

前提条件

にアプリケーションを公開する前に AWS Serverless Application Repository、以下が必要です。

  • 有効な AWS アカウント。

  • 使用される AWS リソースを定義する valid AWS Serverless Application Model (AWS SAM) テンプレート。 AWS SAM テンプレートの詳細については、AWS SAM 「テンプレートの基本」を参照してください。

  • package コマンドを使用して AWS CloudFormation 作成したアプリケーションのパッケージ AWS CLI。このコマンドは、 AWS SAM テンプレートが参照するローカルアーティファクト (ローカルパス) をパッケージ化します。詳細については、 CloudFormation ドキュメントの「 パッケージ」を参照してください。

  • アプリケーションのソースコードを指す URL (アプリケーションを公開で発行する場合)。

  • readme.txt ファイル。このファイルには、お客様がアプリケーションを使用する方法、およびお客様独自の AWS アカウントでアプリケーションをデプロイする前の設定方法が説明されている必要があります。

  • SPDX ウェブサイトの license.txt ファイルまたは有効なライセンス識別子。ライセンスは、アプリケーションを公開共有する場合にのみ必要です。アプリケーションを非公開にしたり、非公開共有したりする場合は、ライセンスを指定する必要はありません。

  • アプリケーションをパッケージ化したときに Amazon S3 にアップロードしたアーティファクトに対する読み取りアクセス許可をサービスに付与するための有効な Amazon S3 バケットポリシー。このポリシーを設定するには、次の手順に従います。

    1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

    2. アプリケーションのパッケージ化に使用した Amazon S3 バケットを選択します。

    3. [アクセス許可] タブを選択します。

    4. [バケットポリシー] ボタンを選択します。

    5. 次のポリシーステートメントを [バケットポリシーエディタ] に貼り付けます。バケット名は Resource要素で、 AWS アカウント ID は Condition要素で置き換えてください。Condition 要素の式は、指定された AWS アカウントからアプリケーションにアクセスするアクセス許可 AWS Serverless Application Repository のみを持つようにします。ポリシーステートメントの詳細については、IAM ユーザーガイドの「IAM JSON ポリシーの要素のリファレンス」を参照してください。

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "serverlessrepo.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::bucketname/*", "Condition" : { "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }
    6. [保存] ボタンを選択します。

手順

次の手順を使用して AWS Serverless Application Repository 、 で新しいアプリケーションを作成します。

で新しいアプリケーションを作成するには AWS Serverless Application Repository
  1. AWS Serverless Application Repository コンソールを開き、[Publish applications] を選択します。

  2. [Publish an application] ページで、次のアプリケーション情報を入力し、[Publish application] を選択します。

    プロパティ 必要 説明
    アプリケーション名

    アプリケーションの名前。

    最小長: 1 最大長 = 140。

    パターン: "[a-zA-Z0-9\\-]+";

    筆者

    アプリケーションを公開する作成者の名前。

    最小長: 1 最大長 = 127。

    パターン: "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";

    ホームページ アプリケーションに関する詳細情報が含まれた URL。例えば、アプリケーションの GitHub リポジトリの場所などです。
    説明

    アプリケーションの説明。

    最小長: 1 最大長 = 256。

    ラベル

    検索結果でアプリケーションを見つけやすくするためのラベル。

    最小長 = 1。最大長 = 127。ラベルの最大数:10。

    パターン: "^[a-zA-Z0-9+\\-_:\\/@]+$";

    Spdx ライセンス (ドロップダウンリスト) SPDX ウェブサイトで使用できるライセンスを一覧表示するドロップダウンから有効なライセンス識別子を選択します。ドロップダウンで項目を選択すると、その下の [ライセンス] テキストボックスに値が入力されます。注意: ドロップダウンでライセンスを選択すると、[ライセンス] テキストボックスの内容が置き換えられ、手動で行った編集はすべて破棄されます。
    ライセンス

    .txt ライセンスファイルをアップロードするか、前述した [Spdx ライセンス] ドロップダウンからライセンスを選択します。[Spdx ライセンス] ドロップダウンからライセンスを選択すると、[ライセンス] テキストボックスに自動的に値が入力されます。ライセンスファイルをアップロードするか、[Spdx ライセンス] ドロップダウンからライセンスを選択した後で、このテキストボックスの内容を手動で編集できます。ただし、ドロップダウンから別の Spdx ライセンスを選択すると、以前に手動で行った編集はすべて破棄されます。

    これはオプションフィールドですが、アプリケーションを公開共有するには、ライセンスを指定する必要があります。

    Readme

    Readme ファイルの内容をアップロードします。このファイルは、テキスト形式またはマークダウン形式です。これらの内容は、 AWS Serverless Application Repositoryでアプリケーションの詳細ページに表示されます。ファイルをアップロードした後で、このテキストボックスの内容を手動で編集できます。

    Semantic version

    アプリケーションのセマンティックバージョンです。詳細については、セマンティックバージョニングのウェブサイトを参照してください。

    アプリケーションをパブリックにするには、このプロパティに値を指定する必要があります。

    Source code Url アプリケーションのソースコードを含むパブリックリポジトリへのリンク。
    SAM template

    使用される AWS リソースを定義する valid AWS Serverless Application Model (AWS SAM) テンプレート。

アプリケーションの共有

公開アプリケーションには、次の 3 つのカテゴリのいずれかでアクセス許可を設定できます。

  • 非公開 (デフォルト) - 同じアカウントで作成され、他の AWS アカウントと共有されていないアプリケーション。 AWS アカウントを共有するコンシューマーのみが、プライベートアプリケーションをデプロイするアクセス許可を持っています。

  • プライベート共有 – パブリッシャーが特定の AWS アカウントのセット、または AWS 組織内の AWS アカウントと明示的に共有したアプリケーション。コンシューマーには、自分の AWS アカウントまたは AWS Organization と共有されているアプリケーションをデプロイするアクセス許可があります。詳細については AWS Organizations、AWS Organizations 「 ユーザーガイド」を参照してください。

  • 公開共有 – パブリッシャーがすべてのユーザーと共有しているアプリケーション。すべてのコンシューマーは、すべての公開共有アプリケーションをデプロイするためのアクセス許可を付与されます。

アプリケーションを に公開すると AWS Serverless Application Repository、デフォルトでプライベートに設定されます。このセクションでは、アプリケーションを特定の AWS アカウントまたは AWS 組織とプライベートに共有する方法、または全員とパブリックに共有する方法について説明します。

コンソールからのアプリケーションの共有

アプリケーションを他のユーザーと共有するには、2 つのオプションがあります。1) 特定の AWS アカウントまたは AWS 組織内の AWS アカウントと共有するか、2) 全員とパブリックに共有します。詳細については AWS Organizations、AWS Organizations 「 ユーザーガイド」を参照してください。

オプション 1: アプリケーションを AWS 組織内の特定の AWS アカウント (複数可) またはアカウントと共有するには
  1. AWS Serverless Application Repository コンソールを開きます。

  2. ナビゲーションペインで、[Published Applications (後悔アプリケーション)] を選択して、作成したアプリケーションの一覧を表示します。

  3. 共有するアプリケーションを選択します。

  4. [共有] タブを選択します。

  5. [Application policy statements (アプリケーションポリシーステートメント)] セクションで、[Create Statement (ステートメントの作成)] ボタンを選択します。

  6. [Statement Configuration (ステートメント設定)] ウィンドウで、アプリケーションの共有方法に基づいてフィールドに入力します。

    注記

    組織と共有している場合は、 AWS アカウントがメンバーである組織のみを指定できます。自分がメンバーではない AWS 組織を指定しようとすると、エラーが発生します。

    アプリケーションを AWS Organization と共有するには、今後共有を取り消す必要がある場合に備えて、 UnshareApplicationアクションがポリシーステートメントに追加されることを確認する必要があります。

  7. [保存] ボタンを選択します。

オプション 2: アプリケーションをすべてのユーザーと公開するには
  1. AWS Serverless Application Repository コンソールを開きます。

  2. ナビゲーションペインで、[Published Applications (後悔アプリケーション)] を選択して、作成したアプリケーションの一覧を表示します。

  3. 共有するアプリケーションを選択します。

  4. [共有] タブを選択します。

  5. [Public Sharing (公開共有)] セクションで、[編集] ボタンを選択します。

  6. [Public Sharing (公開共有)] で、[有効] ラジオボタンを選択します。

  7. テキストボックスにアプリケーション名を入力し、[保存] ボタンを選択します。

注記

アプリケーションを公開共有するには、SemanticVersion プロパティ LicenseUrl とプロパティの両方が設定されている必要があります。

AWS CLIからのアプリケーションの共有

を使用してアプリケーションを共有するには AWS CLI 、 put-application-policy コマンドを使用して、プリンシパルとして共有する AWS アカウント (複数可) を指定するアクセス許可を付与します。

CLI を使用してアプリケーションを共有する方法の詳細については、 AWS 「」を参照してくださいAWS Serverless Application Repository アプリケーションポリシーの例

アプリケーションの共有解除

Organization からアプリケーションの共有を解除するには、次の 2 つのオプションがあります AWS 。

  1. アプリケーションの発行者は、put-application-policy コマンドを使用してアクセス許可を削除できます。

  2. AWS 組織の管理アカウントのユーザーは、アプリケーションが別のアカウントのユーザーによって公開された場合でも、組織と共有されている任意のアプリケーションで共有解除アプリケーションオペレーションを実行できます。

    注記

    アプリケーションが「アプリケーションの共有解除」オペレーションで AWS Organization から共有解除された場合、そのアプリケーションを AWS Organization と再度共有することはできません。

    詳細については AWS Organizations、AWS Organizations 「 ユーザーガイド」を参照してください。

アクセス許可を削除するパブリッシャー

コンソールからアクセス許可を削除するパブリッシャー

を通じてアプリケーションの共有を解除するには AWS Management Console、他の AWS アカウントと共有しているポリシーステートメントを削除します。これを実行するには、以下の手順を実行します。

  1. AWS Serverless Application Repository コンソールを開きます。

  2. 左側のナビゲーションペインで、[使用可能なアプリケーション] を選択します。

  3. 共有解除するアプリケーションを選択します。

  4. [共有] タブを選択します。

  5. [Application policy statements (アプリケーションポリシーステートメント)] セクションで、共有解除するアカウントとアプリケーションを共有しているポリシーステートメントを選択します。

  6. [削除] を選択します。

  7. 確認メッセージが表示されます。[削除] をもう一度選択します。

を介したアクセス許可の削除 AWS CLI

を使用してアプリケーションの共有を解除するには AWS CLI、パブリッシャーは put-application-policy コマンドを使用してアクセス許可を削除または変更し、アプリケーションをプライベートにしたり、別の AWS アカウントのセットと共有したりできます。

CLI を使用したアクセス許可の変更の詳細については、 AWS 「」を参照してくださいAWS Serverless Application Repository アプリケーションポリシーの例

アプリケーションを共有解除する管理アカウント

コンソールを使用して AWS Organization からアプリケーションを共有解除する管理アカウント

を通じて AWS Organization からアプリケーションの共有を解除するには AWS Management Console、管理アカウントのユーザーが以下を実行できます。

  1. AWS Serverless Application Repository コンソールを開きます。

  2. 左側のナビゲーションペインで、[使用可能なアプリケーション] を選択します。

  3. アプリケーションのタイルで、[共有解除] を選択します。

  4. [共有解除] メッセージボックスで、組織 ID とアプリケーション名を入力し、[保存] を選択して、アプリケーションの共有解除を確認します。

を通じて管理アカウントが AWS 組織からアプリケーションを共有解除する AWS CLI

Organization からアプリケーションの共有を解除するには AWS 、管理アカウントのユーザーが aws serverlessrepo unshare-application コマンドを実行できます。

次のコマンドは、 AWS Organization からアプリケーションの共有を解除します。ここで、application-id はアプリケーションの Amazon リソースネーム (ARN) で、 organization-id は Organization ID です AWS 。

aws serverlessrepo unshare-application --application-id application-id --organization-id organization-id

アプリケーションの削除

AWS Management Console または AWS SAM CLI AWS Serverless Application Repository を使用して、 からアプリケーションを削除できます。

アプリケーションの削除 (コンソール)

を通じて公開されたアプリケーションを削除するには AWS Management Console、次の手順を実行します。

  1. AWS Serverless Application Repository コンソールを開きます。

  2. [My Applications (マイアプリケーション)] に、削除するアプリケーションを選択します。

  3. アプリケーションの詳細ページで、[Delete application (アプリケーションの削除)] を選択します。

  4. [Delete application (アプリケーションの削除)] を選択して、削除を完了します。

アプリケーションの削除 (AWS CLI)

を使用して公開されたアプリケーションを削除するには AWS CLI、 aws serverlessrepo delete-application コマンドを実行します。

次のコマンドはアプリケーションを削除します。ここで、application-id はアプリケーションの Amazon リソースネーム (ARN) です。

aws serverlessrepo delete-application --application-id application-id