選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 AWS SDK 服務整合收集 Amazon S3 儲存貯體資訊

焦點模式
使用 AWS SDK 服務整合收集 Amazon S3 儲存貯體資訊 - AWS Step Functions

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

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

本教學課程說明如何執行與 Amazon Simple Storage Service 的 AWS SDK 整合。您在本教學課程中建立的狀態機器會收集 Amazon S3 儲存貯體的相關資訊,然後列出儲存貯體以及目前區域中每個儲存貯體的版本資訊。

步驟 1:建立狀態機器

使用 Step Functions 主控台,您將建立狀態機器,其中包含列出目前帳戶和區域中所有 Amazon S3 儲存貯體Task的狀態。然後,您將新增另一個Task狀態,以叫用 HeadBucket API 來驗證傳回的儲存貯體是否可以在目前區域中存取。如果無法存取儲存貯體,HeadBucketAPI 呼叫會傳回S3.S3Exception錯誤。您將包含一個Catch區塊來擷取此例外狀況,並將 Pass 狀態做為備用狀態。

  1. 開啟 Step Functions 主控台,然後選擇建立狀態機器

  2. 選擇範本對話方塊中,選取空白

  3. 選擇選取以在 中開啟工作流程 Studio設計模式

  4. 在本教學課程中,您將在 中撰寫狀態機器的 Amazon States Language(ASL) 定義程式碼編輯器。若要這樣做,請選擇程式碼

  5. 移除現有的樣板程式碼,並貼上下列狀態機器定義。

    { "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 } } }
  6. 為您的狀態機器指定名稱。若要執行此操作,請選擇 MyStateMachine 預設狀態機器名稱旁的編輯圖示。然後,在狀態機器組態中,在狀態機器名稱方塊中指定名稱。

    針對本教學課程,輸入名稱 Gather-S3-Bucket-Info-Standard

  7. (選用) 在狀態機器組態中,指定其他工作流程設定,例如狀態機器類型及其執行角色。

    狀態機器設定中保留所有預設選擇。

    如果您先前已為狀態機器建立具有正確許可的 IAM 角色,並想要使用它,請在許可中選擇現有角色,然後從清單中選擇角色。或選取輸入角色 ARN,然後為該 IAM 角色提供 ARN。

  8. 確認角色建立對話方塊中,選擇確認以繼續。

    您也可以選擇檢視角色設定以返回狀態機器組態

    注意

    如果您刪除 Step Functions 建立的 IAM 角色,Step Functions 稍後無法重新建立該角色。同樣地,如果您修改角色 (例如,從 IAM 政策中的主體移除 Step Functions),Step Functions 稍後無法還原其原始設定。

    步驟 2 中,您將新增缺少的許可到狀態機器角色。

步驟 2:新增必要的 IAM 角色許可

若要收集目前區域中 Amazon S3 儲存貯體的相關資訊,您必須提供狀態機器存取 Amazon S3 儲存貯體所需的許可。

  1. 在狀態機器頁面上,選擇 IAM 角色 ARN 以開啟狀態機器角色的角色頁面。

  2. 選擇新增許可,然後選擇建立內嵌政策

  3. 選擇 JSON 索引標籤,然後將下列許可貼到 JSON 編輯器。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketVersioning" ], "Resource": "*" } ] }
  4. 選擇檢閱政策

  5. 檢閱政策下,針對政策名稱,輸入 s3-bucket-permissions

  6. 選擇 Create policy (建立政策)。

步驟 3:執行標準狀態機器執行

  1. Gather-S3-Bucket-Info-Standard 頁面上,選擇開始執行

  2. 開始執行對話方塊中,執行下列動作:

    1. (選用) 輸入自訂執行名稱以覆寫產生的預設值。

      非 ASCII 名稱和記錄

      Step Functions 接受包含非 ASCII 字元的狀態機器、執行、活動和標籤名稱。由於這類字元不適用於 Amazon CloudWatch,因此我們建議您僅使用 ASCII 字元,以便在 CloudWatch 中追蹤指標。

    2. 選擇 Start execution (開始執行)

    3. Step Functions 主控台會引導您前往標題為執行 ID 的頁面。此頁面稱為執行詳細資訊頁面。在此頁面上,您可以在執行進行時或完成後檢閱執行結果。

      若要檢閱執行結果,請在圖形檢視中選擇個別狀態,然後選擇步驟詳細資訊窗格上的個別索引標籤,分別檢視每個狀態的詳細資訊,包括輸入、輸出和定義。如需您可以在執行詳細資訊頁面上檢視之執行資訊的詳細資訊,請參閱 執行詳細資訊概觀

步驟 4:執行快速狀態機器執行

  1. 使用步驟 1 中提供的狀態機器定義建立快速狀態機器。請確定您也包含必要的 IAM 角色許可,如步驟 2 所述。

    提示

    若要與您先前建立的標準機器區別,請將 Express 狀態機器命名為 Gather-S3-Bucket-Info-Express

  2. Gather-S3-Bucket-Info-Standard 頁面上,選擇開始執行

  3. 開始執行對話方塊中,執行下列動作:

    1. (選用) 輸入自訂執行名稱以覆寫產生的預設值。

      非 ASCII 名稱和記錄

      Step Functions 接受包含非 ASCII 字元的狀態機器、執行、活動和標籤名稱。由於這類字元不適用於 Amazon CloudWatch,因此我們建議您僅使用 ASCII 字元,以便在 CloudWatch 中追蹤指標。

    2. 選擇 Start execution (開始執行)

    3. Step Functions 主控台會引導您前往標題為執行 ID 的頁面。此頁面稱為執行詳細資訊頁面。在此頁面上,您可以在執行進行時或完成後檢閱執行結果。

      若要檢閱執行結果,請在圖形檢視中選擇個別狀態,然後選擇步驟詳細資訊窗格上的個別索引標籤,分別檢視每個狀態的詳細資訊,包括輸入、輸出和定義。如需您可以在執行詳細資訊頁面上檢視之執行資訊的詳細資訊,請參閱執行詳細資訊概觀

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。