本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用成品在工作流程中的動作之間共用資料
人工因素是工作流程動作的輸出,通常由資料夾或檔案的封存組成。人工因素很重要,因為它們可讓您在動作之間共用檔案和資訊。
例如,您可能有一個生成sam-template.yml
文件的構建操作,但您希望部署操作使用它。在這個案例中,您會使用成品來允許建置動作與部署動作共用sam-template.yml
檔案。代碼可能看起來像這樣:
Actions:
BuildAction:
Identifier: aws/build@v1
Steps:
- Run: sam package --output-template-file sam-template.yml
Outputs:
Artifacts:
- Name: MYARTIFACT
Files:
- sam-template.yml
DeployAction:
Identifier: aws/cfn-deploy@v1
Inputs:
Artifacts:
- MYARTIFACT
Configuration:
template: sam-template.yml
在先前的程式碼中,建置動作 (BuildAction
) 會產生sam-template.yml
檔案,然後將其新增至名為的輸出成品MYARTIFACT
。後續的部署動作 (DeployAction
) 會指定MYARTIFACT
為輸入,讓它能夠存取sam-template.yml
檔案。
我可以共享工件而不將它們指定為輸出和輸入嗎?
是,您可以在動作之間共用成品,而不必在動作的 YAML 程式碼Outputs
和Inputs
區段中指定它們。若要這麼做,您必須開啟運算共用。如需有關計算共用以及如何在開啟時指定人工因素的詳細資訊,請參閱跨動作共用運算。
注意
雖然運算共用功能可讓您省去Outputs
和Inputs
區段的需求來簡化工作流程的 YAML 程式碼,但是在開啟此功能之前,您應該注意這項功能的限制。如需有關這些限制的資訊,請參閱計算共用的考量。
可以在工作流程之間共用成品嗎?
否,您無法在不同工作流程之間共用人工因素;不過,您可以在相同工作流程中的動作之間共用人工因素。
定義輸出人工因素
使用下列指示來定義您要輸出動作的人工因素。然後,此成品可供其他動作使用。
注意
並非所有動作都支援輸出成品。若要判斷您的動作是否支援這些動作,請執行後續的視覺化編輯器指示,並查看動作是否包含「輸出」索引標籤上的「輸出成品」按鈕。如果是,則支援輸出加工品。
定義輸入人工因素
如果您要使用由其他動作產生的人工因素,則必須將其指定為目前動作的輸入。您可以指定多個成品作為輸入,這取決於動作。如需詳細資訊,請參工作流程 YAML 定義閱您的動作。
注意
您無法從其他工作流程參考人工因素。
使用下列指示,從另一個動作指定人工因素作為目前動作的輸入。
先決條件
在開始之前,請確定已從其他動作輸出成品。如需詳細資訊,請參閱 定義輸出人工因素。輸出成品可讓其他動作使用。
參考人工因素中的檔案
如果您的檔案位於人工因素內,且需要在其中一個工作流程動作中參照此檔案,請完成下列程序。
注意
另請參閱參考來源儲存庫中的檔案。
參照人工因素中的檔案
-
在您要參考檔案的動作中,新增類似下列內容的程式碼:
Actions: My-action: Inputs: Sources: - WorkflowSource Artifacts: -
artifact-name
Configuration: Steps: - run: cd $CATALYST_SOURCE_DIR_artifact-name
/build-output && cat file.txt在先前的程式碼中,動作會在人工因素
名稱加工品的
目錄中尋找並顯示檔案。build-output
file.txt
如需更多範例,請參閱文物的例子。
注意
您可能可以省略
$CATALYST_SOURCE_DIR_
前綴,具體取決於您如何配置操作。如需詳細資訊,請參閱下列指引。artifact-name
/關於如何引用變量的指導:
-
如果您的動作在下只包含一個項目
Inputs
(例如,它包含一個輸入成品而不包含來源),則您可以省略前置詞,並僅指定相對於人工因素根目錄的檔案路徑。 -
如果檔案位於主要輸入中,您也可以省略前置詞。如果沒有,則主要輸入可以是
WorkflowSource
,或列出的第一個輸入成品WorkflowSource
。 -
根據您使用的動作,前綴可能會有所不同。如需詳細資訊,請參閱下表。
-
動作類型 | 要使用的檔案路徑字首 | 範例 |
---|---|---|
|
|
|
所有其他動作 |
或
|
或
|
下載成品
您可以下載並檢查工作流程動作所產生的成品,以進行疑難排解。您可以下載兩種類型的神器:
-
來源人工因素 — 包含執行開始時存在的來源儲存庫內容快照的人工因素。
-
工作流程加工品 — 在工作流程組態檔案
Outputs
屬性中定義的人工因素。
若要依工作流程下載人工因素輸出
請在以下位置開啟 CodeCatalyst 主控台。
https://codecatalyst.aws/ -
選擇您的專案。
在瀏覽窗格中,選擇 CI/CD,然後選擇 [工作流程]。
-
選擇工作流程的名稱。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選,或依工作流程名稱進行篩選。
-
a 在工作流程名稱下,選擇 [執行]。
-
在 [執行歷程記錄] 的 [執行 ID] 欄中,選擇執行。例如
Run-95a4d
。 -
在執行名稱下,選擇「成品」。
-
選擇成品旁邊的 [下載]。存檔文件下載。它的文件名由七個隨機字符組成。
-
使用您選擇的歸檔提取公用程序提取存檔。
文物的例子
下列範例顯示如何在工作流程定義檔案中輸出、輸入及參照人工因素。
範例:輸出成品
下列範例會示範如何輸出包含兩個 .jar 檔案的成品。
Actions:
Build:
Identifier: aws/build@v1
Outputs:
Artifacts:
- Name: ARTIFACT1
Files:
- build-output/file1.jar
- build-output/file2.jar
範例:輸入由其他動作產生的人工因素
下列範例說明如何輸出呼叫 ARTIFACT4
in 的加工品BuildActionA
,並將其輸入BuildActionB
。
Actions:
BuildActionA:
Identifier: aws/build@v1
Outputs:
Artifacts:
- Name: ARTIFACT4
Files:
- build-output/file1.jar
- build-output/file2.jar
BuildActionB:
Identifier: aws/build@v1
Inputs:
Artifacts:
- ARTIFACT4
Configuration:
範例:參考多個成品中的檔案
下列範例說明如何輸出名為ART5
和 ART6
in 的兩個成品BuildActionC
,然後參考中 (下) 名為 file5.txt
(在成品中ART5
) 和 file6.txt
(在成品中 ART6
BuildActionD
) 的兩個檔案。Steps
注意
如需參考檔案的更多資訊,請參閱參考人工因素中的檔案。
注意
雖然範例顯示正在使用的$CATALYST_SOURCE_DIR_ART5
前置詞,但您可以省略它。這是因為ART5
是主要輸入。若要深入瞭解主要輸入,請參閱參考人工因素中的檔案。
Actions:
BuildActionC:
Identifier: aws/build@v1
Outputs:
Artifacts:
- Name: ART5
Files:
- build-output/file5.txt
- Name: ART6
Files:
- build-output/file6.txt
BuildActionD:
Identifier: aws/build@v1
Inputs:
Artifacts:
- ART5
- ART6
Configuration:
Steps:
- run: cd $CATALYST_SOURCE_DIR_ART5/build-output && cat file5.txt
- run: cd $CATALYST_SOURCE_DIR_ART6/build-output && cat file6.txt
範例:參照單一人工因素中的檔案
下面的例子說明如何輸出一個ART7
在中命名的成品BuildActionE
,然後在 file7.txt
(下ART7
) 中引用BuildActionF
(在工件中Steps
)。
請注意,參考如何不需要在build-output
目錄前面的$CATALYST_SOURCE_DIR_
人工因素名稱
前綴,就像在中所做的那樣。範例:參考多個成品中的檔案這是因為在下只有一個項目指定Inputs
。
注意
如需參考檔案的更多資訊,請參閱參考人工因素中的檔案。
Actions:
BuildActionE:
Identifier: aws/build@v1
Outputs:
Artifacts:
- Name: ART7
Files:
- build-output/file7.txt
BuildActionF:
Identifier: aws/build@v1
Inputs:
Artifacts:
- ART7
Configuration:
Steps:
- run: cd build-output && cat file7.txt
範例:存在人工因素時參照檔案 WorkflowSource
下面的例子說明如何輸出一個ART8
在中命名的成品BuildActionG
,然後在 file8.txt
(下ART8
) 中引用BuildActionH
(在工件中Steps
)。
請注意參考如何需要$CATALYST_SOURCE_DIR_
人工因素名稱
前綴,就像在中一樣。範例:參考多個成品中的檔案這是因為在Inputs
(源和成品)下指定了多個項目,因此您需要前綴來指示在何處查找文件。
注意
如需參考檔案的更多資訊,請參閱參考人工因素中的檔案。
Actions:
BuildActionG:
Identifier: aws/build@v1
Outputs:
Artifacts:
- Name: ART8
Files:
- build-output/file8.txt
BuildActionH:
Identifier: aws/build@v1
Inputs:
Sources:
- WorkflowSource
Artifacts:
- ART8
Configuration:
Steps:
- run: cd $CATALYST_SOURCE_DIR_ART8/build-output && cat file8.txt