教學:建立部署 Amazon Alexa 技能的管道 - AWS CodePipeline

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

教學:建立部署 Amazon Alexa 技能的管道

在此教學課程中,您會設定管道在您的部署階段中,將 Alexa Skills Kit 做為部署提供者,來持續交付您的 Alexa 技能。當您變更來源儲存庫中的來源檔案時,完整的管道便會偵測到您的技能變更。管道稍後會使用 Alexa Skills Kit 來部署至 Alexa 技能開發階段。

注意

此功能不適用於亞太區域 (香港) 或歐洲 (米蘭) 地區。若要使用該區域中可用的其他部署動作,請參閱部署動作整合

若要將您的自訂技能建立為 Lambda 函數,請參閱將自訂技能託管為 AWS Lambda 函數。您也可以建立使用 Lambda 來源檔 CodeBuild 案的管道,以及針對您的技能將變更部署至 Lambda 的專案。例如,若要建立新技能和相關 Lambda 功能,您可以建立 AWS CodeStar 專案。請參閱在 AWS CodeStar中建立 Alexa 技能專案。對於該選項,管道包括第三個構建階段,其中包含一個 CodeBuild動作和一個動作在的部署階段 AWS CloudFormation。

必要條件

您必須已擁有下列各項目:

步驟 1:建立 Alexa 開發人員服務 LWA 安全性描述檔

在本節,您會建立安全性描述檔,來搭配 Login with Amazon (LWA) 使用。如果您已有描述檔,則可以略過此步驟。

  • 使用中的步驟generate-lwa-tokens建立安全性設定檔。

  • 建立描述檔後,請記下 Client ID (用戶端 ID)Client Secret (用戶端密碼)

  • 請確定您如說明所述輸入 Allowed Return URLs (允許的傳回 URL)。URL 允許 ASK CLI 命令重新導向重新整理字符請求。

步驟 2:創建 Alexa 技能源文件並推送到您的 CodeCommit 存儲庫

在本節,您會建立並推送 Alexa 技能來源檔案到管道用於來源階段的儲存庫。對於您已在 Amazon 開發人員主控台中建立的技能,您會產生和推送下列項目:

  • skill.json 檔案。

  • interactionModel/custom 資料夾。

    注意

    此目錄結構符合 Alexa Skills Kit 技能套件格式要求,如技能套件格式中所述。如果目錄結構未使用正確的技能套件格式,變更不會順利部署到 Alexa Skills Kit 主控台。

為您的技能建立來源檔案
  1. 從 Alexa Skills Kit 開發人員主控台擷取您的技能 ID。使用此命令:

    ask api list-skills

    依名稱找出您的技能,然後複製 skillId 欄位中已關聯的 ID。

  2. 產生包含您的技能詳細資訊的 skill.json 檔案。使用此命令:

    ask api get-skill -s skill-ID > skill.json
  3. (選用) 建立 interactionModel/custom 資料夾。

    使用此命令產生資料夾內的互動模型檔案。在地區設定上,此教學使用 en-US 做為檔案名稱中的地區設定。

    ask api get-model --skill-id skill-ID --locale locale > ./interactionModel/custom/locale.json
將檔案推送至 CodeCommit 儲存庫
  1. 將文件推送或上傳到您的 CodeCommit 存儲庫。這些檔案是 Create Pipeline (建立管道) 精靈針對 AWS CodePipeline中的部署動作所建立的來源成品。在本機目錄中,您的檔案應該如下所示:

    skill.json /interactionModel /custom |en-US.json
  2. 選擇您要用來上傳檔案的方法:

    1. 若要在您的本機電腦上從複製的儲存庫中使用 Git 命令列:

      1. 請執行下列命令來同時將所有檔案放入階段:

        git add -A
      2. 請執行下列命令來確認檔案並附加確認訊息:

        git commit -m "Added Alexa skill files"
      3. 運行以下命令將文件從本地存儲庫推送到存 CodeCommit 儲庫:

        git push
    2. 若要使用 CodeCommit 主控台上傳檔案:

      1. 開啟主 CodeCommit 控台,然後從「儲存庫」清單中選擇您的存放

      2. 選擇 Add file (新增檔案),然後選擇 Upload file (上傳檔案)

      3. 選擇 Choose file (選擇檔案),然後瀏覽您的檔案。輸入您的使用者名稱和電子郵件地址來確定變更。選擇 Commit changes (遞交變更)

      4. 對於您要上傳的每個檔案重複此步驟。

步驟 3:使用 ASK CLI 命令建立重新整理字符

CodePipeline 根據 Amazon 開發人員帳戶中的用戶端 ID 和密碼使用重新整理權杖來授權其代表您執行的動作。在本節中,您可以使用 ASK CLI 來建立字符。當您使用 Create Pipeline (建立管道) 精靈時,您會使用這些登入資料。

使用您的 Amazon 開發人員帳戶登入資料建立重新整理字符
  1. 使用下列命令:

    ask util generate-lwa-tokens
  2. 出現提示時,如此範例所示,輸入您的用戶端 ID 和密碼:

    ? Please type in the client ID: amzn1.application-client.example112233445566 ? Please type in the client secret: example112233445566
  3. 登入瀏覽器頁面隨即顯示。使用您的 Amazon 開發人員帳戶登入資料登入。

  4. 返回命令列畫面。存取字符和重新整理字符會在輸出中產生。複製輸出中傳回的重新整理字符。

步驟 4:建立管道

在本節中,您可以採取下列動作建立管道:

  • 帶有 CodeCommit 動作的源階段,其中源成品是支持您技能的 Alexa 技能文件。

  • 具有 Alexa Skills Kit 部署動作的部署階段。

使用精靈建立管道
  1. 請登入 AWS Management Console 並開啟 CodePipeline 主控台,網址為 http://console.aws.amazon.com/codesuite/codepipeline/home

  2. 選擇您要在其中建立專案及其資源的「 AWS 區域」。下列區域才能取得 Alexa 技能執行時間:

    • 亞太區域 (東京)

    • 歐洲 (愛爾蘭)

    • 美國東部 (維吉尼亞北部)

    • 美國西部 (奧勒岡)

  3. Welcome (歡迎) 頁面、Getting started (入門) 頁面、或者 Pipelines (管道) 頁面上,選擇 Create pipeline (建立管道)

  4. Step 1: Choose pipeline settings (步驟 1:選擇管道設定)Pipeline name (管道名稱) 中,輸入 MyAlexaPipeline

  5. 管線類型中,針對本教學課程的目的選擇 V1。您也可以選擇 V2;但是請注意,管道類型在特性和價格上有所不同。如需詳細資訊,請參閱 管線類型

  6. 在 [服務角色] 中,選擇 [新增服務角色] CodePipeline 以允許在 IAM 中建立服務角色。

  7. Advanced settings (進階設定) 下的設定保留為預設值,然後選擇 Next (下一步)

  8. Step 2: Add source stage (步驟 2:新增來源階段)Source provider (來源提供者) 中,選擇 AWS CodeCommit。在存放庫名稱中,選擇您在其中建立的 CodeCommit 存放庫名稱步驟 1:建立 CodeCommit 儲存庫。在 Branch name (分支名稱) 中,選擇包含最新程式碼更新的分支名稱。

    選取儲存庫名稱和分支後,會出現訊息顯示要為此管道建立的 Amazon E CloudWatch vents 規則。

    選擇下一步

  9. Step 3: Add build stage (步驟 3:新增建置階段) 中,選擇 Skip build stage (跳過建置階段),然後再次選擇 Skip (跳過) 來接受警告訊息​。

    選擇下一步

  10. Step 4: Add deploy stage (步驟 4:新增部署階段) 中:

    1. Deploy provider (部署提供者) 中,選擇 Alexa Skills Kit

    2. Alexa skill ID (Alexa 技能 ID) 中,輸入指派給您在 Alexa Skills Kit 開發人員主控台中技能的技能 ID。

    3. Client ID (用戶端 ID) 中,輸入您註冊之應用程式的 ID。

    4. Client secret (用戶端密碼) 中,輸入您在註冊時選擇的密碼。

    5. Refresh token (重新整理字符) 中,輸入您在步驟 3 產生的字符。

      「步驟 4:Alexa 技能套件」動作的部署頁面
    6. 選擇下一步

  11. Step 5: Review (步驟 5:檢閱) 中,檢閱資訊,然後選擇 Create pipeline (建立管道)

步驟 5:變更任一來源檔案並驗證部署

變更您的技能,然後將變更推送至您的儲存庫。這會觸發您的管道執行。驗證您的技能已在 Alexa Skills Kit 開發人員主控台中更新。