

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS SAM 範本中繼資料區段屬性
<a name="serverless-sam-template-publishing-applications-metadata-properties"></a>

`AWS::ServerlessRepo::Application` 是中繼資料金鑰，可用來指定要發佈至 的應用程式資訊 AWS Serverless Application Repository。

**注意**  
`AWS::ServerlessRepo::Application` 中繼資料金鑰不支援CloudFormation [內部函數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html)。

## Properties
<a name="serverless-sam-template-publishing-applications-metadata-properties-table"></a>

此資料表提供 AWS SAM 範本 `Metadata`區段屬性的相關資訊。本節是 AWS Serverless Application Repository 使用 將應用程式發佈至 的必要項目 AWS SAM CLI。


****  

| 屬性 | Type | 必要 | 描述 | 
| --- | --- | --- | --- | 
| Name | String | TRUE | 應用程式名稱。<br />最小長度 = 1。最大長度 = 140。<br />模式：`"[a-zA-Z0-9\\-]+";` | 
| Description | String | TRUE | 應用程式的描述。<br />最小長度 = 1。最大長度 = 256。 | 
| Author | String | TRUE | 發佈應用程式的作者名稱。<br />最小長度 = 1。最大長度 = 127。<br />模式：`"^[a-z0-9](([a-z0-9]\|-(?!-))*[a-z0-9])?$";` | 
| SpdxLicenseId | String | FALSE | 有效的授權識別符。若要檢視有效授權識別符的清單，請參閱 軟體套件資料交換 (SPDX[) 網站上的 SPDX 授權清單](https://spdx.org/licenses/)。 | 
| LicenseUrl | String | FALSE | 本機授權檔案的參考，或授權檔案的 Amazon S3 連結，符合您應用程式的 spdxLicenseID 值。<br />尚未使用 `sam package`命令封裝的 AWS SAM 範本檔案可以參考此屬性的本機檔案。不過，若要使用 `sam publish`命令發佈應用程式，此屬性必須是 Amazon S3 儲存貯體的參考。<br />大小上限：5 MB。<br />您必須為此屬性提供值，才能將您的應用程式公開。請注意，發佈應用程式後就無法更新此屬性。因此，若要將授權新增至應用程式，您必須先將其刪除，或使用不同的名稱發佈新的應用程式。 | 
| ReadmeUrl | String | FALSE | 本機讀我檔案的參考或讀我檔案的 Amazon S3 連結，其中包含應用程式及其運作方式的更詳細說明。<br />尚未使用 `sam package`命令封裝的 AWS SAM 範本檔案可以參考此屬性的本機檔案。不過，若要使用 `sam publish`命令發佈，此屬性必須是 Amazon S3 儲存貯體的參考。<br />大小上限：5 MB。 | 
| Labels | String | FALSE | 可改善搜尋結果中應用程式探索的標籤。<br />最小長度 = 1。最大長度 = 127。最大標籤數量：10。<br />模式：`"^[a-zA-Z0-9+\\-_:\\/@]+$";` | 
| HomePageUrl | String | FALSE | 包含應用程式詳細資訊的 URL，例如應用程式的 GitHub 儲存庫位置。 | 
| SemanticVersion | String | FALSE | 應用程式的語義版本。如需語意版本控制規格，請參閱[語意版本控制](https://semver.org/)網站。<br />您必須為此屬性提供值，才能將您的應用程式公開。 | 
| SourceCodeUrl | String | FALSE | 應用程式原始程式碼的公有儲存庫連結。 | 

## 使用案例
<a name="serverless-sam-template-publishing-applications-metadata-properties-cases"></a>

本節列出發佈應用程式的使用案例，以及針對該使用案例處理的`Metadata`屬性。*未*針對指定使用案例列出的屬性會被忽略。
+ **建立新的應用程式** – 如果 中沒有 AWS Serverless Application Repository 具有帳戶相符名稱的應用程式，則會建立新的應用程式。
  + `Name`
  + `SpdxLicenseId`
  + `LicenseUrl`
  + `Description`
  + `Author`
  + `ReadmeUrl`
  + `Labels`
  + `HomePageUrl`
  + `SourceCodeUrl`
  + `SemanticVersion`
  +  AWS SAM 範本的內容 （例如，任何事件來源、資源和 Lambda 函數程式碼）

   
+ **建立應用程式版本** – 如果 中 AWS Serverless Application Repository 已有符合帳戶名稱的應用程式，*且* SemanticVersion *正在*變更，則會建立應用程式版本。
  + `Description`
  + `Author`
  + `ReadmeUrl`
  + `Labels`
  + `HomePageUrl`
  + `SourceCodeUrl`
  + `SemanticVersion`
  +  AWS SAM 範本的內容 （例如，任何事件來源、資源和 Lambda 函數程式碼）

   
+ **更新應用程式** – 如果 中已有 AWS Serverless Application Repository 符合帳戶名稱的應用程式，*且* SemanticVersion *未*變更，則會更新應用程式。
  + `Description`
  + `Author`
  + `ReadmeUrl`
  + `Labels`
  + `HomePageUrl`

## 範例
<a name="serverless-sam-template-publishing-applications-metadata-properties-example"></a>

以下是範例`Metadata`區段：

```
Metadata:
  AWS::ServerlessRepo::Application:
    Name: {{my-app}}
    Description: {{hello world}}
    Author: {{user1}}
    SpdxLicenseId: Apache-2.0
    LicenseUrl: {{LICENSE.txt}}
    ReadmeUrl: {{README.md}}
    Labels: {{['tests']}}
    HomePageUrl: {{https://github.com/user1/my-app-project}}
    SemanticVersion: {{0.0.1}}
    SourceCodeUrl: {{https://github.com/user1/my-app-project}}
```