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

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

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

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

重要

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

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

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

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

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

前提条件

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

  • 有効な AWS アカウント。

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

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

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

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

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

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

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

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

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

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

    5. 次のポリシーステートメントを [バケットポリシーエディタ] に貼り付けます。Resource エレメントのバケット名、および Condition エレメントの AWS アカウント ID を必ず置き換えてください。Condition エレメントの式は、AWS Serverless Application Repository が、指定された AWS アカウントからのアプリケーションのみにアクセスする許可を持っていることを保証します。ポリシーステートメントの詳細については、IAM ユーザーガイドの「IAM 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] を選択します。

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

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

    最小長 = 1。最大長 = 140。

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

    筆者 TRUE

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

    最小長 = 1。最大長 = 127。

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

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

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

    最小長 = 1。最大長 = 256。

    ラベル FALSE

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

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

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

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

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

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

    Readme FALSE

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

    Semantic version FALSE

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

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

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

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

アプリケーションの共有

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

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

  • 非公開共有 - パブリッシャーが一連の特定の AWS アカウントまたは AWS Organization の AWS アカウントと明示的に共有しているアプリケーション。コンシューマーは、これらの AWS アカウントまたは AWS Organization と共有されているアプリケーションをデプロイするためのアクセス許可を付与されます。AWS Organizations の詳細については、「AWS Organizations ユーザーガイド」を参照してください。

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

アプリケーションを AWS Serverless Application Repository に公開すると、デフォルトでは 非公開に設定されます。このセクションでは、特定の AWS アカウントまたは AWS Organization とアプリケーションを非公開で共有する方法、またはすべてのユーザーと公開で共有する方法について説明します。

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

アプリケーションを他のユーザーと共有するには、次の 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 Organization を指定しようとすると、エラーが発生します。

    アプリケーションを 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 アカウントを指定します。

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

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

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

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

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

    注記

    アプリケーションを「アプリケーションの共有解除」オペレーションで 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. [Delete] (削除) を選択します。

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

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

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

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

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

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

AWS Management Console を使用して AWS Organization からアプリケーションを共有解除するには、管理アカウントのユーザーは次の操作を実行できます。

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

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

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

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

AWS CLI を使用して AWS Organization のアプリケーションを共有解除する管理アカウント

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

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

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

アプリケーションの削除

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

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

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