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

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

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

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

重要

作為建立管道的一部分,客戶提供的 S3 成品儲存貯體將由 CodePipeline 用於成品。(這與用於 S3 來源動作的儲存貯體不同。) 如果 S3 成品儲存貯體位於與管道帳戶不同的帳戶中,請確保 S3 成品儲存貯體由 AWS 帳戶 安全且可靠的 擁有。

注意

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

若要將自訂技能建立為 Lambda 函數,請參閱將自訂技能託管為 AWS Lambda 函數 。您也可以建立管道,使用 Lambda 來源檔案和 CodeBuild 專案,為您的技能將變更部署至 Lambda。

必要條件

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

步驟 1:建立 Alexa 開發人員服務LWA安全設定檔

在本節中,您可以建立安全設定檔,以搭配 Amazon 登入 (LWA) 使用。如果您已有描述檔,則可以略過此步驟。

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

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

  • 請務必輸入指示中提供的允許傳回URLs。允許 URLs ASKCLI命令重新導向重新整理權杖請求。

步驟 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:使用ASKCLI命令來建立重新整理權杖

CodePipeline 會根據 Amazon 開發人員帳戶中的用戶端 ID 和秘密使用重新整理權杖,以授權其代表您執行的動作。在本節中,您可以使用 ASKCLI來建立權杖。當您使用 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 並在 https://http://console.aws.amazon.com/codesuite/codepipeline/home 開啟 CodePipeline 主控台。

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

    • 亞太區域 (東京)

    • 歐洲 (愛爾蘭)

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

    • 美國西部 (奧勒岡)

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

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

  5. 管道類型 中,選擇 V2。如需詳細資訊,請參閱管道類型。選擇 Next (下一步)

  6. 服務角色 中,選擇要允許 CodePipeline 在 中建立服務角色的新服務角色IAM。

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

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

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

    選擇 Next (下一步)

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

    選擇 Next (下一步)

  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. 選擇 Next (下一步)

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

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

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