

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

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

# 範例：將檔案發佈至 Amazon S3
<a name="s3-pub-action-example-workflow"></a>

下列範例工作流程包含 **Amazon S3 發佈**動作，以及建置動作。工作流程會建置靜態文件網站，然後將其發佈至託管的 Amazon S3。工作流程包含下列依順序執行的建置區塊：
+ **觸發**條件 – 當您將變更推送至來源儲存庫時，此觸發條件會自動啟動工作流程執行。關於觸發條件的詳細資訊，請參閱 [使用觸發程序自動啟動工作流程執行](workflows-add-trigger.md)。
+ **建置**動作 (`BuildDocs`) – 在觸發時，動作會建置靜態文件網站 (`mkdocs build`)，並將相關聯的 HTML 檔案和支援中繼資料新增至名為 的成品`MyDocsSite`。如需建置動作的詳細資訊，請參閱 [使用工作流程建置](build-workflow-actions.md)。
+ **Amazon S3 發佈**動作 (`PublishToS3`) – 建置動作完成後，此動作會將`MyDocsSite`成品中的網站複製到 Amazon S3 進行託管。

**注意**  
下列工作流程範例僅供說明之用，如果沒有其他組態，將無法運作。

**注意**  
在後續的 YAML 程式碼中，您可以視需要省略 `Connections:`區段。如果您省略本節，您必須確保環境中**預設 IAM 角色**欄位中指定的角色包含 **Amazon S3 發佈**動作所需的許可和信任政策。如需使用預設 IAM 角色設定環境的詳細資訊，請參閱 [建立環境](deploy-environments-creating-environment.md)。如需 **Amazon S3 發佈**動作所需許可和信任政策的詳細資訊，請參閱 中的 [Role](s3-pub-action-ref.md#s3.pub.environment.connections.role) 屬性描述[「Amazon S3 發佈」動作 YAML](s3-pub-action-ref.md)。

```
Name: codecatalyst-s3-publish-workflow
SchemaVersion: 1.0

Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  BuildDocs:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
        - Run: echo BuildDocs started on `date`
        - Run: pip install --upgrade pip
        - Run: pip install mkdocs
        - Run: mkdocs build
        - Run: echo BuildDocs completed on `date`
    Outputs:
      Artifacts:
      - Name: MyDocsSite
        Files:
          - "site/**/*"
        
  PublishToS3:
    Identifier: aws/s3-publish@v1
    Environment:
      Name: codecatalyst-s3-publish-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-s3-publish-build-role
    Inputs:
      Sources:
        - WorkflowSource
      Artifacts:
        - MyDocsSite
    Configuration:      
      DestinationBucketName: amzn-s3-demo-bucket
      SourcePath: /artifacts/PublishToS3/MyDocSite/site
      TargetPath: my/docs/site
```