本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS SDK 服務整合收集 Amazon S3 儲存貯體資訊
本教學課程說明如何使用 Amazon 簡單儲存服務執行 AWS SDK 整合。您在本教學中建立的狀態機會收集 Amazon S3 儲存貯體的相關資訊,然後列出儲存貯體以及目前區域中每個儲存貯體的版本資訊。
步驟 1:建立狀態機
使用 Step Functions 主控台,您將建立一個狀態機器,其中包含列出目前帳戶和區域中所有 Amazon S3 儲存貯體的Task
狀態。然後,您將添加另一個調用 HeadBucket
API 的Task
狀態,以驗證返回的存儲桶是否可以在當前區域中訪問。如果存儲桶無法訪問,則 HeadBucket
API 調用返回S3.S3Exception
錯誤。您將包含一個Catch
塊來 catch 此異常和一個Pass
狀態作為後備狀態。
-
開啟 Step Functions 主控台
,然後選擇建立狀態機器。 在「選擇範本」對話方塊中,選取「空白」。
選擇選取。這會在設計模式中開啟工作流程工作室
-
在本教學課程中,您將在程式碼編輯器. Amazon States Language 若要這麼做,請選擇 [程式碼]。
-
刪除現有的樣板代碼並粘貼以下狀態機定義。
{ "Comment": "A description of my state machine", "StartAt": "ListBuckets", "States": { "ListBuckets": { "Type": "Task", "Parameters": {}, "Resource": "arn:aws:states:::aws-sdk:s3:listBuckets", "Next": "Map" }, "Map": { "Type": "Map", "ItemsPath": "$.Buckets", "ItemProcessor": { "ProcessorConfig": { "Mode": "INLINE" }, "StartAt": "HeadBucket", "States": { "HeadBucket": { "Type": "Task", "ResultPath": null, "Parameters": { "Bucket.$": "$.Name" }, "Resource": "arn:aws:states:::aws-sdk:s3:headBucket", "Catch": [ { "ErrorEquals": [ "S3.S3Exception" ], "ResultPath": null, "Next": "Pass" } ], "Next": "GetBucketVersioning" }, "GetBucketVersioning": { "Type": "Task", "End": true, "Parameters": { "Bucket.$": "$.Name" }, "ResultPath": "$.BucketVersioningInfo", "Resource": "arn:aws:states:::aws-sdk:s3:getBucketVersioning" }, "Pass": { "Type": "Pass", "End": true, "Result": { "Status": "Unknown" }, "ResultPath": "$.BucketVersioningInfo" } } }, "End": true } } }
-
指定狀態機的名稱。若要執行此操作,請選擇的預設狀態機器名稱旁邊的編輯圖示MyStateMachine。然後,在 [狀態機器組態] 中,在 [狀態機器名稱] 方塊中指定名稱。
針對本教學課程,輸入名稱
Gather-S3-Bucket-Info-Standard
。 -
(選擇性) 在狀態機器組態中,指定其他工作流程設定,例如狀態機器類型及其執行角色。
保留狀態機器設定中的所有預設選項。
如果您先前已使用狀態機器的正確許可建立 IAM 角色,並且想要使用它,請在 [權限] 中選取 [選擇現有角色],然後從清單中選取角色。或選取 [輸入角色 ARN],然後為該 IAM 角色提供 ARN。
-
在 [確認角色建立] 對話方塊中,選擇 [確認] 以繼續。
您也可以選擇 [檢視角色設定] 以返回 [狀態機器組態]。
注意
如果您刪除 Step Functions 建立的 IAM 角色,則 Step Functions 稍後無法重新建立。同樣地,如果您修改角色 (例如,透過從 IAM 政策中的主體移除 Step Functions),Step Functions 稍後無法還原其原始設定。
在步驟 2 中,您將缺少的權限添加到狀態機器角色。
步驟 2:新增必要的 IAM 角色許可
若要收集目前區域中 Amazon S3 儲存貯體的相關資訊,您必須提供狀態機器存取 Amazon S3 儲存貯體的必要許可。
-
在狀態機器頁面上,選擇 IAM 角色 ARN 以開啟狀態機器角色的「角色」頁面。
-
選擇新增許可,然後選擇建立內嵌政策。
選擇 [JSON] 索引標籤,然後將下列權限貼到 JSON 編輯器中。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketVersioning" ], "Resource": "*" } ] }
選擇檢閱政策。
在 檢閱政策 下,針對政策 名稱 ,輸入
s3-bucket-permissions
。選擇 建立政策 。
步驟 3:執行標準狀態機器執行
-
在 [聚集-S3 儲存區資訊標準] 頁面上,選擇 [開始執行]。
-
在 [開始執行] 對話方塊中,執行下列動作:
-
(選擇性) 若要識別您的執行項目,您可以在「名稱」(Name) 方塊中指定執行項目的名稱。默認情況下,Step Functions 自動生成一個唯一的執行名稱。
注意
Step Functions 可讓您建立狀態機器、執行項目和活動的名稱,以及包含非 ASCII 字元的標籤。這些非 ASCII 名稱不適用於 Amazon CloudWatch。若要確保您可以追蹤 CloudWatch 量度,請選擇僅使用 ASCII 字元的名稱。
-
選擇 Start execution (開始執行)。
-
Step Functions 主控台會將您導向至標題為執行 ID 的頁面。此頁面稱為「執行詳細資訊」頁面。在此頁面上,您可以在執行進行時或完成之後複查執行結果。
若要複查執行結果,請在「圖形」檢視中選擇個別狀態,然後選擇步驟詳情窗格上的個別索引標籤,分別檢視每個狀態的詳細資訊,包括輸入、輸出和定義。如需有關可在「執行詳細資訊」頁面檢視之執行資訊的詳細資訊,請參閱執行詳細資訊頁面 — 介面概觀。
-
步驟 4:執行快速狀態機器執行
-
使用步驟 1 中提供的狀態機定義建立 Express 狀態機。請確定您也包含必要的 IAM 角色許可,如步驟 2 所述。
提示
若要與之前建立的標準機器區分開來,請將 Express 狀態機命名為
Gather-S3-Bucket-Info-Express
。 -
在 [聚集-S3 儲存區資訊標準] 頁面上,選擇 [開始執行]。
-
在 [開始執行] 對話方塊中,執行下列動作:
-
(選擇性) 若要識別您的執行項目,您可以在「名稱」(Name) 方塊中指定執行項目的名稱。默認情況下,Step Functions 自動生成一個唯一的執行名稱。
注意
Step Functions 可讓您建立狀態機器、執行項目和活動的名稱,以及包含非 ASCII 字元的標籤。這些非 ASCII 名稱不適用於 Amazon CloudWatch。若要確保您可以追蹤 CloudWatch 量度,請選擇僅使用 ASCII 字元的名稱。
-
選擇 Start execution (開始執行)。
-
Step Functions 主控台會將您導向至標題為執行 ID 的頁面。此頁面稱為「執行詳細資訊」頁面。在此頁面上,您可以在執行進行時或完成之後複查執行結果。
若要複查執行結果,請在「圖形」檢視中選擇個別狀態,然後選擇步驟詳情窗格上的個別索引標籤,分別檢視每個狀態的詳細資訊,包括輸入、輸出和定義。如需有關可在「執行詳細資訊」頁面檢視之執行資訊的詳細資訊,請參閱執行詳細資訊頁面 — 介面概觀。
-