Định cấu hình ALM Accelerator theo cách thủ công

Bạn có thể định cấu hình các thành phần của ALM Accelerator for Power Platform bằng ứng dụng quản trị đi kèm hoặc theo cách thủ công. Bài viết này hướng dẫn bạn cách định cấu hình ứng dụng theo cách thủ công và được cấu trúc thành bảy phần:

Điều kiện tiên quyết

Trước khi cài đặt ALM Accelerator for Power Platform, hãy đảm bảo rằng bạn đáp ứng các điều kiện tiên quyết sau.

  • Bộ tăng tốc ALM phải được cài đặt trong môi trường Power Platform có cơ sở dữ liệu Microsoft Dataverse . Tất cả các môi trường bạn sử dụng Trình tăng tốc ALM để triển khai các giải pháp cũng yêu cầu cơ sở dữ liệu Dataverse .

    Lưu ý

    Bộ tăng tốc ALM không tương thích với Dataverse for Teams. Cả ứng dụng ALM Accelerator và các quy trình liên quan đều giả định rằng bạn đang sử dụng phiên bản đầy đủ của Dataverse trong mọi môi trường.

    Chúng tôi khuyên bạn nên cài đặt Bộ tăng tốc ALM trong cùng môi trường với các giải pháp Bộ công cụ khởi đầu CoE khác. Tìm hiểu thêm về cách xác định chiến lược tốt nhất cho tổ chức của bạn:

  • Trình tăng tốc ALM sử dụng Azure DevOps để kiểm soát và triển khai nguồn. Nếu bạn chưa có tổ chức Azure DevOps , hãy đăng ký miễn phí cho tối đa năm người dùng trên Azure DevOps trang web.

  • Để hoàn thành các bước trong phần này, bạn cần có những người dùng và quyền sau trong Azure, Azure DevOps và Power Platform:

    • Người dùng Azure được cấp phép có quyền tạo và xem Microsoft Entra nhóm, tạo đăng ký ứng dụng và cấp quyền cho quản trị viên đăng ký ứng dụng bằng Microsoft Entra ID
    • Người dùng Azure DevOps được cấp phép có quyền tạo và quản lý quy trình, kết nối dịch vụ, kho lưu trữ và tiện ích mở rộng
    • Người dùng Power Platform được cấp phép có quyền tạo người dùng ứng dụng và cấp cho họ quyền quản trị
  • Các đầu nối sau phải có sẵn để sử dụng cùng nhau trong môi trường mà Bộ tăng tốc ALM được nhập vào:

  • Cài đặt Bộ công cụ sáng tạo trong môi trường nơi bạn cài đặt Trình tăng tốc ALM.

Thiết lập cơ bản

Các bước sau đây là chung về chức năng của Trình tăng tốc ALM và không dành riêng cho bất kỳ dự án hoặc giải pháp nào.

Tạo đăng ký ứng dụng trong môi trường Microsoft Entra của bạn

Tạo đăng ký ứng dụng cho Trình tăng tốc ALM để cấp cho ứng dụng và các quyền quy trình liên quan cần thiết để thực hiện các hoạt động trong Azure DevOps và Power Apps hoặc Dataverse. Bạn chỉ cần làm điều này một lần.

Các bước sau đây cho biết cách tạo một đăng ký ứng dụng duy nhất có quyền cho cả Dataverse và Azure DevOps. Tuy nhiên, bạn có thể muốn tạo các đăng ký ứng dụng riêng biệt để phân chia trách nhiệm. Bạn nên xem xét mức độ ảnh hưởng của việc đăng ký ứng dụng riêng biệt đến cả việc bảo trì và bảo mật trước khi quyết định chiến lược đăng ký ứng dụng.

Tạo đăng ký ứng dụng

  1. Đăng nhập vào Cổng thông tin Azure.

  2. Chọn Microsoft Entra ID>Đăng ký ứng dụng.

  3. Chọn + Đăng ký mới, sau đó đặt tên cho đăng ký, chẳng hạn như ALMAcceleratorServicePrincipal.

  4. Để tất cả các tùy chọn khác ở giá trị mặc định và chọn Đăng ký.

Thêm quyền đăng ký ứng dụng

  1. Ở bảng điều khiển bên trái, hãy chọn Quyền API.

  2. Chọn + Thêm quyền.

  3. Chọn Dynamics CRM, sau đó chọn Quyền được ủy quyềnuser_impersonation.

  4. Chọn Thêm quyền để thêm Dynamics CRM quyền mạo danh người dùng API vào đăng ký ứng dụng.

  5. Chọn + Thêm quyền một lần nữa.

  6. Chọn tab API mà tổ chức của tôi sử dụng . Tìm kiếm và chọn PowerApps-Advisor, sau đó chọn Quyền được ủy quyềnPhân tích. Tất cả (không cần có sự đồng ý của quản trị viên).

    Cần có quyền này để chạy phân tích tĩnh thông qua trình kiểm tra ứng dụng.

  7. Chọn Thêm quyền để thêm PowerApps-Phân tích API cố vấn. Tất cả quyền đăng ký ứng dụng.

  8. Chọn + Thêm quyền một lần nữa.

  9. Trên tab API Microsoft hoặc tab API mà tổ chức của tôi sử dụng tab, hãy chọn Azure DevOps, sau đó chọn Quyền được ủy quyềnuser_impersonation.

    Cần có quyền này để kết nối với Azure DevOps thông qua trình kết nối tùy chỉnh trong ứng dụng ALM Accelerator.

  10. Nếu bạn đã thêm quyền Azure DevOps từ tab API mà tổ chức của tôi sử dụng , hãy sao chép ID ID ứng dụng (ứng dụng khách) để sử dụng sau này trong quy trình này.

    Bạn sẽ sử dụng nó làm ID ứng dụng DevOps (ứng dụng khách), khác với ID ứng dụng (ứng dụng khách) bạn sẽ sao chép sau trong quy trình này.

    Ảnh chụp màn hình cửa sổ Yêu cầu quyền API, trong đó tab API mà tổ chức của tôi sử dụng và ID Ứng dụng (máy khách) được tô sáng.

    Nếu bạn không tìm thấy quyền Azure DevOps trên tab API mà tổ chức của tôi sử dụng , hãy làm theo các bước sau để nhận được ID ứng dụng DevOps (ứng dụng khách):

    1. Mở cửa sổ trình duyệt riêng tư và truy cập https://dev.azure.com/<your devops organization>/_apis.
    2. Trên trang đăng nhập, sao chép giá trị của thông số client_id trong URL.

    Ảnh chụp màn hình của một Azure DevOps trang đăng nhập của tổ chức, trong đó thông số client_id trong URL được đánh dấu.

  11. Chọn Thêm quyền để thêm Azure DevOps quyền mạo danh người dùng API vào đăng ký ứng dụng.

  12. Chọn Cấp sự đồng ý của quản trị viên cho <đối tượng thuê của bạn>.

Định cấu hình bí mật ứng dụng khách và chuyển hướng URI

  1. Trong bảng điều khiển bên trái, chọn Chứng chỉ & bí mật.

  2. Lựa chọn + Mã bí mật máy khách mới.

  3. Chọn ngày hết hạn rồi chọn Thêm.

  4. Sao chép bí mật ứng dụng khách Giá trị để sử dụng sau. Đây là lần duy nhất bạn có thể sao chép giá trị. Hãy chắc chắn làm như vậy trước khi bạn rời khỏi trang.

  5. Ở bảng điều khiển bên trái, hãy chọn Tổng quan.

  6. Sao chép ID ứng dụng (ứng dụng khách)ID thư mục (đối tượng thuê).

  7. Chọn Thiết lập.

Cấp quyền cho Power App Management để đăng ký ứng dụng của bạn

Cấp Power App Management quyền đăng ký ứng dụng của bạn để quy trình có thể thực hiện các hành động cần thiết trong môi trường của bạn. Để làm điều đó, hãy chạy lệnh ghép ngắn PowerShell sau với tư cách là người dùng tương tác có Power Apps đặc quyền quản trị. Bạn chỉ cần chạy lệnh này một lần sau khi tạo đăng ký ứng dụng.

Quan trọng

Lệnh ghép ngắn PowerShell sau đây cung cấp các quyền nâng cao đăng ký ứng dụng như Power Platform Quản trị viên. Chính sách bảo mật của tổ chức bạn có thể không cho phép các loại quyền này. Hãy chắc chắn rằng chúng được cho phép trước khi bạn tiếp tục. Nếu chúng không được phép, một số khả năng nhất định sẽ không hoạt động trong quy trình của Bộ tăng tốc ALM.

Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
Install-Module -Name Microsoft.PowerApps.PowerShell -AllowClobber
New-PowerAppManagementApp -ApplicationId <the Application (client) ID you copied when you created the app registration>

Cài đặt phần mở rộng Azure DevOps

Trình tăng tốc ALM sử dụng một số Azure DevOps tiện ích mở rộng, bao gồm một số tiện ích mở rộng của bên thứ ba có sẵn trên Azure DevOps thị trường. Trang web của mỗi tiện ích mở rộng của bên thứ ba và liên kết cho mã nguồn của chúng được cung cấp theo hướng dẫn sau. Tìm hiểu cách đánh giá nhà xuất bản tiện ích mở rộng Marketplace.

  1. đăng nhập vào Azure DevOps.

  2. Chọn Cài đặt tổ chức.

  3. Chọn Chung>Tiện ích mở rộng.

  4. Tìm kiếm và cài đặt các tiện ích mở rộng sau:

Sao chép quy trình YAML từ GitHub sang phiên bản Azure DevOps của bạn

  1. Đi tới https://aka.ms/coe-alm-accelerator-templates-latest-release và sao chép URL của bản phát hành gần đây nhất.

  2. đăng nhập vào Azure DevOps.

  3. Tạo một dự án hoặc chọn một dự án hiện có.

  4. Chọn Kho lưu trữ, sau đó chọn Nhập kho lưu trữ trong danh sách kho lưu trữ.

  5. Dán URL bạn đã sao chép vào bước 1 làm URL sao chép, sau đó chọn Nhập.

  6. Xác nhận nhánh mặc định cho repo là main. Chọn ReposChi nhánh và đảm bảo chính chi nhánh được gắn thẻ làm mặc định.

    Nếu không, hãy chọn ba dấu chấm dọc () tương ứng với nhánh chính và từ Menu tùy chọn khác , chọn Đặt làm nhánh mặc định.

    Lưu ý

    Kho lưu trữ này là nơi chạy các mẫu quy trình giải pháp và quy trình xuất/nhập. Sau này, khi tạo quy trình cho các giải pháp của mình, bạn có thể cần tham khảo dự án và kho lưu trữ cụ thể này nếu bạn chọn sử dụng một kho lưu trữ khác để kiểm soát nguồn cho các giải pháp của mình.

Tạo quy trình để nhập, xóa và xuất các giải pháp

Tạo quy trình nhập, xóa và xuất dựa trên YAML trong kho lưu trữ Azure DevOps . Các quy trình này chạy khi bạn sử dụng ứng dụng để chuyển giao giải pháp cho Git, nhập giải pháp hoặc xóa giải pháp.

Lưu ý

Nếu bạn mong muốn tất cả các bản xuất của mình sẽ thực hiện các hành động giống nhau bất kể giải pháp mà quy trình đang chạy, thì bạn có thể tạo một quy trình xuất duy nhất như được mô tả trong phần này. Tuy nhiên, bạn có thể cần các hành động xuất khác nhau tùy theo giải pháp. Trong trường hợp đó, bạn có thể thêm tên giải pháp vào quy trình xuất-giải pháp-sang-git, như export-solution-to-git-SampleSolution, để có ứng dụng thực thi quy trình giải pháp cụ thể khi bạn thực hiện các hành động trong ứng dụng.

Bảng sau đây hiển thị sự tương ứng giữa tệp YAML trong kho lưu trữ và đường dẫn đi kèm.

Tệp YAML Tên quy trình
export-solution-to-git.yml export-solution-to-git
import-unmanaged-to-dev-environment.yml import-unmanaged-to-dev-environment
delete-unmanaged-solution-and-components.yml delete-unmanaged-solution-and-components
  1. Trong Azure DevOps, hãy đi tới Quy trình>Tạo quy trình mới.

  2. Chọn Azure Repos Git cho kho lưu trữ mã của bạn, sau đó trỏ đến Azure DevOps repo mà bạn đã tạo và gieo mầm bằng các mẫu quy trình ở các bước trước đó.

  3. Trên trang Định cấu hình quy trình của bạn, hãy chọn Tệp YAML của Quy trình Azure hiện có và trỏ tới /Pipelines/export-solution-to-git.yml, /Pipelines/import-unmanaged-to-dev-environment.yml hoặc /Pipelines/delete-unmanaged-solution-and-components.yml.

  4. Chọn Tiếp tục rồi chọn Lưu.

  5. Chọn menu Thêm () bên cạnh Chạy quy trình, rồi chọn Đổi tên/Di chuyển.

  6. Thay đổi tên đường dẫn thành export-solution-to-git, import-unmanaged-to-dev-environment, hoặc xóa-không được quản lý-giải pháp và thành phần, nếu thích hợp.

  7. Chọn Lưu.

Tạo các biến quy trình xuất (tùy chọn)

Bạn có thể đặt các biến đường dẫn trên đường dẫn xuất-giải pháp sang git để kiểm soát thông tin nào được lưu giữ trong kiểm soát nguồn. Để áp dụng các cài đặt này trên toàn cầu, hãy đặt các biến trên quy trình xuất giải pháp sang git của bạn. Để áp dụng cài đặt cho các giải pháp cụ thể khi xuất, hãy tạo quy trình xuất cho giải pháp của bạn như được mô tả trong ghi chú ở phần trước và đặt các biến trên quy trình đó.

Để đảm bảo giá trị hiện tại của các biến môi trường không bao giờ được cam kết kiểm soát nguồn trong quá trình xuất, hãy tạo biến DoNotExportCurrentEnvironmentVariableValues trên quy trình xuất-giải pháp-thành-git của bạn và đặt giá trị của biến đó thành True.

Quan trọng

Biến quy trình này được khuyến nghị để bạn có thể sử dụng chức năng cấu hình triển khai trong Bộ tăng tốc ALM.

Để đảm bảo giá trị của các biến môi trường mặc định cụ thể được đặt trong quá trình xuất giải pháp, hãy tạo biến VerifyDefaultEnvironmentVariableValues trên quy trình xuất-giải pháp-sang-git của bạn và đặt giá trị của nó thành True. Đặt giá trị của các biến môi trường mặc định trong customDeploymentSettings.json như được mô tả trong hướng dẫn cấu hình triển khai.

  1. Trong Azure DevOps, chọn Đường dẫn>Thư viện>Tạo Nhóm biến mới.

  2. Đặt tên cho nhóm biến mới alm-accelerator-variable-group, chính xác như được đưa ra ở đây.

    Các quy trình đề cập đến nhóm biến cụ thể này nên nó phải được đặt tên chính xác như được hiển thị. Nếu bạn quyết định sử dụng quy ước đặt tên khác cho nhóm biến của mình, bạn cần sửa đổi các phần của quy trình để tham chiếu đến tên bạn sử dụng thay thế.

  3. Thêm các biến sau vào nhóm biến:

    Tên Description Giá_trị
    AADHost Điểm cuối ủy quyền Microsoft Entra Đối với đám mây công cộng, hãy sử dụng login.microsoftonline.com. Đối với các đám mây của chính phủ, hãy sử dụng URL ủy quyền thích hợp.
    Quy trìnhCanvasApps Liệu ứng dụng canvas có được giải nén trong quá trình xuất hay được đóng gói trong quá trình xây dựng hay không Nếu Sai thì ứng dụng canvas sẽ không được giải nén trong quá trình xuất hoặc được đóng gói trong quá trình xây dựng. Chức năng giải nén và đóng gói của ứng dụng canvas có trong bản xem trước và không được khuyến nghị sử dụng trong môi trường sản xuất tại thời điểm này. Tuy nhiên, bạn không thể xem mã nguồn canvas trong kiểm soát nguồn trừ khi bạn đặt biến này thành True.
  4. (Tùy chọn) Nếu bạn sử dụng tính năng tự động kiểm tra studio canvas trong quy trình của mình, hãy thêm các biến sau vào nhóm biến:

    Tên Giá_trị
    TestAutomationLoginMethod Đám MâyBản Sắc
    TestAutomationMakerPortalUrl Thông thường, URL từ cổng thông tin của nhà sản xuất Power Apps *https://make.powerapps.com*
    TestAutomationUsername Tài khoản người dùng được sử dụng để thực hiện kiểm tra tự động
    TestAutomationPassword Mật khẩu của tài khoản người dùng được sử dụng để thực hiện kiểm tra tự động
  5. (Tùy chọn) Theo mặc định, các biến toàn cục bị hạn chế và bạn cần định cấu hình quyền truy cập cho từng quy trình. Bạn có thể đơn giản hóa việc đó và cho phép truy cập vào bất kỳ quy trình nào. Trong Nhóm biến (Đường ống>Thư viện>alm-accelerator-variable-group), chọn Quyền đường dẫn trong menu trên cùng, chọn () và sau đó chọn Mở quyền truy cập.

Đặt quyền cho dịch vụ xây dựng dự án

Quan trọng

Azure DevOps chứa một số tài khoản "Dịch vụ xây dựng" và có thể gây nhầm lẫn khi bạn làm theo các bước trong phần này. Hãy chú ý đến tên và định dạng được chỉ định trong bước 3 và 5. Bạn có thể cần tìm kiếm tài khoản cụ thể nếu tài khoản đó không hiển thị trong danh sách ban đầu.

  1. Trong Azure DevOps, chọn Cài đặt dự án.

  2. Chọn Kho lưu trữ>Bảo mật.

  3. Trong Người dùng, tìm kiếm và chọn Dịch vụ xây dựng bộ sưu tập dự án (Tên tổ chức của bạn).

    Lưu ý

    Bạn có thể không thấy Tên tổ chức của bạn sau người dùng Dịch vụ xây dựng bộ sưu tập dự án . Nó có thể chỉ là một mã định danh duy nhất. Trong trường hợp này, hãy sử dụng chức năng tìm kiếm để tìm người dùng, sau đó chọn người dùng đó.

  4. Đặt các quyền sau cho người dùng dịch vụ xây dựng:

    Quyền Giá_trị
    Đóng góp Cho phép
    Đóng góp vào yêu cầu kéo Cho phép
    Tạo nhánh Cho phép
    Chỉnh sửa chính sách Cho phép
  5. Trong Người dùng, hãy tìm kiếm và chọn Tên dự án của bạn Xây dựng dịch vụ (Tổ chức của bạn Tên).

  6. Đặt các giá trị tương tự như trong bước 4.

  7. Chọn Pipelines, chọn ba dấu chấm () ở góc trên bên phải, sau đó chọn Quản lý bảo mật.

  8. Đặt các quyền sau cho Tên dự án của bạn Dịch vụ xây dựng (Tên tổ chức của bạn) người dùng:

    Quyền Giá_trị
    Chỉnh sửa quy trình xây dựng Cho phép
    Chỉnh sửa chất lượng xây dựng Cho phép
    Quản lý hàng đợi xây dựng Cho phép
    Ghi đè xác thực kiểm tra theo bản dựng Cho phép
    Cập nhật thông tin xây dựng Cho phép
    Xem quy trình xây dựng Cho phép
    Xem bản dựng Cho phép
  9. Chọn Cài đặt dự án>Nhóm tác nhân, chọn Bảo mật rồi chọn Thêm.

  10. Tìm kiếm và chọn Tên dự án của bạn Dịch vụ xây dựng (Tên tổ chức của bạn).

  11. Đặt Vai trò thành Người đọc.

  12. Chọn Thêm.

  13. (Tùy chọn) Theo mặc định, các quyền trong quy trình cho từng kho lưu trữ bị hạn chế và bạn cần định cấu hình chúng một cách riêng lẻ. Bạn có thể đơn giản hóa việc đó và cho phép truy cập vào bất kỳ quy trình nào. Trong Cài đặt dự án>Kho lưu trữ, chọn lần lượt từng kho lưu trữ. Chọn Bảo mật ở menu trên cùng. Tìm khối Quyền đường dẫn , chọn (), sau đó chọn Mở truy cập.

Thiết lập dự án phát triển

Phần sau đây hướng dẫn bạn các bước cần thiết để thiết lập từng dự án phát triển mà bạn hỗ trợ. Trong bối cảnh này, một dự án phát triển bao gồm cơ sở hạ tầng và cấu hình hỗ trợ quản lý vòng đời ứng dụng (ALM) lành mạnh, bao gồm cấu hình của môi trường Dataverse hỗ trợ chính quy trình ALM.

Tạo kết nối dịch vụ để Azure DevOps truy cập Power Platform

Mỗi Dataverse môi trường—phát triển, xác thực, thử nghiệm và sản xuất—phải có Power Platform kết nối dịch vụ trong Azure DevOps. Thực hiện các bước sau cho từng môi trường của bạn.

Lưu ý

Người dùng ứng dụng ALM Accelerator chỉ nhìn thấy những môi trường mà họ có vai trò người dùng hoặc quản trị viên trên kết nối dịch vụ trong Azure DevOps. Nếu họ làm việc trong môi trường phát triển cá nhân, người tạo phải có vai trò người dùng hoặc quản trị viên trên kết nối dịch vụ cho môi trường phát triển cá nhân của họ. Các kết nối dịch vụ môi trường sản xuất, kiểm tra và xác thực như dịch vụ xây dựng chỉ cần cấp quyền cho quy trình.

  1. đăng nhập vào Azure DevOps, sau đó chọn dự án của bạn.

  2. Chọn Cài đặt dự án>Kết nối dịch vụ, sau đó chọn Tạo kết nối dịch vụ.

  3. Tìm kiếm và chọn loại kết nối dịch vụ Power Platform .

  4. Chọn Tiếp theo.

  5. Đối với URL máy chủ, hãy nhập URL môi trường của bạn; ví dụ: https://myorg.crm.dynamics.com/.

    Quan trọng

    Bạn phải bao gồm dấu gạch chéo lên phía trước (/) trong URL; nghĩa là sau .com trong ví dụ này.

  6. Đối với Tên kết nối dịch vụ, hãy nhập cùng một URL mà bạn đã nhập trong bước 4, bao gồm cả dấu gạch chéo đào tạo (/).

  7. Nhập ID đối tượng thuê, ID ứng dụng (máy khách) và mật khách hàng mà bạn đã sao chép từ Microsoft Entra khi tạo đăng ký ứng dụng.

  8. Chọn Cấp quyền truy cập cho tất cả quy trình.

  9. Chọn Lưu.

Kết nối dịch vụ phải cung cấp quyền của người dùng cho tất cả người dùng trong mọi môi trường mà người dùng cần để có thể truy cập từ ứng dụng (ví dụ: môi trường người tạo).

  1. Trong danh sách Kết nối Dịch vụ, chọn kết nối dịch vụ sẽ được chia sẻ với người dùng.

  2. Chọn Thêm (...) ở góc trên bên phải, sau đó chọn Bảo mật.

  3. Trong danh sách Nhóm hoặc Người dùng , hãy chọn người dùng hoặc nhóm bạn muốn cấp quyền cho người dùng.

  4. Chọn Người dùng, chọn Vai trò rồi chọn Thêm.

Lặp lại các bước trong phần này cho từng môi trường phát triển, xác nhận, thử nghiệm và sản xuất của bạn.

Đặt quyền cho dịch vụ xây dựng dự án để sử dụng các kết nối dịch vụ

  1. Trong Azure DevOps, chọn Cài đặt>dự án Kết nối dịch vụ.

  2. Chọn (...) ở góc trên bên phải, chọn Bảo mật, sau đó chọn Thêm.

  3. Tìm kiếm và chọn Tên dự án của bạn Dịch vụ xây dựng (Tên tổ chức của bạn).

  4. Đặt Vai trò thành Quản trị viên , sau đó chọn Thêm.

Tạo người dùng ứng dụng trong môi trường Dataverse của bạn

Tạo người dùng ứng dụng trong môi trường của bạn để cho phép các quy trình kết nối với Dataverse. Thực hiện việc này trong mỗi môi trường mà bạn dự định sử dụng Bộ tăng tốc ALM để triển khai.

  1. đăng nhập vào Power Platform trung tâm quản trị.

  2. Chọn môi trường phát triển của bạn rồi chọn Cài đặt.

  3. Chọn Người dùng + quyền>Người dùng ứng dụng.

  4. Chọn + Người dùng ứng dụng mới.

  5. Chọn + Thêm ứng dụng, chọn đăng ký ứng dụng bạn đã tạo trước đó rồi chọn Thêm.

  6. Chọn Đơn vị kinh doanh.

  7. Chọn biểu tượng bút chì ở bên phải Vai trò bảo mật, sau đó chọn vai trò bảo mật cho người dùng ứng dụng.

    Chúng tôi khuyên bạn nên cấp cho quản trị viên hệ thống người dùng ứng dụng các đặc quyền vai trò bảo mật để người dùng có thể thực hiện các chức năng cần thiết trong từng môi trường.

  8. Chọn Tạo.

Lặp lại các bước này trong môi trường xác thực, thử nghiệm và sản xuất của bạn.

Thiết lập giải pháp

Khi bạn tạo một giải pháp trong Dataverse, bạn cần tạo quy trình dành riêng cho giải pháp đó. Các quy trình mẫu sau đây được bao gồm trong thư mục Pipelines trong kho lưu trữ coe-alm-templates :

Các quy trình mẫu cung cấp sự linh hoạt để các tổ chức lưu trữ các mẫu quy trình của họ trong một dự án hoặc kho lưu trữ riêng biệt từ YAML quy trình giải pháp cụ thể. Làm theo các bước trong phần này để định cấu hình quy trình giải pháp của bạn. Lặp lại các bước này cho từng giải pháp mà bạn đang sử dụng Bộ tăng tốc ALM để kiểm soát nguồn.

Quan trọng

YAML cho quy trình giải pháp của bạn luôn được lưu trữ trong cùng một repo mà bạn sử dụng để kiểm soát nguồn cho giải pháp của mình. Tuy nhiên, các mẫu quy trình—nghĩa là thư mục Pipeline\Templates—có thể tồn tại trong cùng một repo với YAML đường ống giải pháp của bạn hoặc trong một repo hoặc dự án riêng biệt.

Tạo quy trình xây dựng và triển khai giải pháp

Các quy trình giải pháp được sử dụng để xây dựng và triển khai các giải pháp được kiểm soát nguồn vào các môi trường trong đối tượng thuê của bạn. Các quy trình mẫu giả định rằng bạn chỉ đang sử dụng ba môi trường: xác thực, kiểm tra và sản xuất. Tuy nhiên, bạn có thể tạo nhiều đường ống giải pháp nếu cần dựa trên chiến lược môi trường của tổ chức bạn.

Các quy trình triển khai mẫu được kích hoạt bởi các thay đổi đối với chi nhánh (nghĩa là thử nghiệm và sản xuất) hoặc là một phần của chính sách nhánh trong Azure DevOps (nghĩa là xác thực). Tìm hiểu thêm về cách thiết lập chính sách nhánh để xác thực yêu cầu kéo. Bạn cũng có thể chạy pipeline theo cách thủ công mà không cần kích hoạt.

Làm theo các bước trong phần này để tạo quy trình triển khai từ YAML đường ống mẫu. Bảng sau đây mô tả cấu hình đường ống.

Quan trọng

Tên quy trình phải chính xác như được hiển thị trong bảng sau, với tên giải pháp của bạn thay cho MyNewSolution.

Tên tệp YAML quy trình Tên quy trình Đã bật chính sách nhánh Bắt buộc
build-deploy-validation-MyNewSolution.yml deploy-validation-MyNewSolution Có Có
build-deploy-test-MyNewSolution.yml deploy-test-MyNewSolution No Có
Xây dựng-triển khai-prod-MyNewSolution.yml deploy-prod-MyNewSolution No Không (Đi tới phần tiếp theo)

Lưu ý

Các bước sau đây tạo, xây dựng và triển khai quy trình cho môi trường xác thực, kiểm tra và sản xuất. Tuy nhiên, bạn có thể muốn xây dựng và triển khai để xác thực và kiểm tra, sau đó triển khai các thành phần lạ từ bản dựng thử nghiệm đến sản xuất. Nếu đúng như vậy, hãy làm theo các bước trong phần này chỉ dành cho môi trường xác thực và kiểm tra của bạn. Sau đó, bỏ qua Tạo giải pháp quy trình triển khai để đặt cấu hình quy trình phát hành của bạn.

Tạo tệp quy trình

  1. Trong Azure DevOps, hãy đi tới kho lưu trữ có chứa thư mục quy trình mà bạn cam kết, sau đó chọn thư mục Quy trình.

  2. Mở một trong ba quy trình triển khai mẫu và sao chép YAML để sử dụng trong quy trình mới của bạn.

  3. Lưu ý tên của kho lưu trữ để sử dụng trong quy trình của bạn.

  4. Đi tới kho lưu trữ mà bạn muốn sử dụng để kiểm soát nguồn cho giải pháp của mình.

  5. Tạo một nhánh dựa trên nhánh mặc định của bạn và đặt tên cho giải pháp của bạn; ví dụ,MyNewSolution .

    Nhánh này trở thành nhánh phiên bản tiếp theo (v-next) cho giải pháp của bạn. Tất cả các công việc phát triển phải được phân nhánh từ nhánh này đến nhánh làm việc cá nhân của nhà phát triển, sau đó sáp nhập vào nhánh v-next để đẩy đến xác nhận và thử nghiệm. Về sau, khi một bản phát hành đã sẵn sàng, nhánh v-next có thể được hợp nhất vào nhánh chính hoặc nhánh mặc định.

  6. Chọn Mới từ menu trên cùng và sau đó chọn Thư mục.

  7. Đặt tên thư mục mới giống với giải pháp của bạn.

  8. Đặt tên cho tệp YAML quy trình mới, chẳng hạn như build-deploy-validation-SampleSolution.yml.build-deploy-test-SampleSolution.yml hoặc build-deploy-prod-SampleSolution.yml.

  9. Chọn Tạo.

Cập nhật và lưu tệp

  1. Dán YAML mà bạn đã sao chép trong bước 2 ở phần trước vào tệp đường dẫn mới.

  2. Thay đổi các giá trị sau trong đường dẫn YAML mới:

    • Thay đổi Tài nguyên>Kho lưu trữ>Tên thành tên của kho lưu trữ chứa các mẫu quy trình của bạn.

      Trong ví dụ này, kho lưu trữ có tên coe-alm-accelerator-templates và nó tồn tại trong cùng dự án với MyNewSolution repo. Nếu kho lưu trữ mẫu của bạn nằm trong một dự án Azure DevOps khác, hãy sử dụng định dạng ProjectName/RepoName. Bạn cũng có thể chỉ định nhánh nơi chứa mẫu của mình bằng cách sử dụng tham số ref nếu cần.

    • Thay đổi bất kỳ giá trị nào đề cập đến SampleSolutionName thành tên duy nhất cho giải pháp của bạn; ví dụ: Giải pháp mới của tôi.

  3. Chọn Cam kết để lưu các thay đổi.

  4. Trong Azure DevOps, hãy đi đến Quy trình, sau đó chọn Tạo quy trình mới.

  5. Chọn Git kho lưu trữ Azure cho kho lưu trữ mã của bạn.

  6. Chọn Kho lưu trữ DevOps có chứa YAML quy trình triển khai.

  7. Trên trang Định cấu hình quy trình của bạn , hãy chọn Tệp YAML của quy trình Azure hiện có, trỏ tới tệp YAML trong kho lưu trữ của bạn mà bạn đã tạo trước đó, sau đó chọn Tiếp tục.

  8. Chọn Lưu, chọn () bên cạnh Chạy quy trình, rồi chọn Đổi tên/Di chuyển.

  9. Thay đổi tên đường dẫn thành deploy-validation-MyNewSolution, deploy-test-MyNewSolution hoặc deploy-prod-MyNewSolution, trong đó MyNewSolution là tên giải pháp của bạn.

  10. Chọn Lưu.

  11. Nếu đường dẫn mới của bạn chưa được tạo trong nhánh mặc định của kho lưu trữ: Chọn Chỉnh sửa trên đường dẫn. Chọn () ở góc trên bên phải, sau đó chọn Trình kích hoạt. Chọn tab YAML, sau đó chọn Lấy nguồn. Thay đổi Nhánh mặc định cho các bản dựng thủ công và theo lịch trình để trỏ đến nhánh giải pháp của bạn. Tìm hiểu thêm về cách định cấu hình trình kích hoạt quy trình.

  12. Lặp lại các bước trước để tạo quy trình triển khai cho từng môi trường của bạn, tham khảo quy trình triển khai YAML mẫu từ coe-alm-accelerator-templates repo (triển khai-xác thực-SampleSolution.yml, triển khai-test-SampleSolution.ymltriển khai- prod-SampleSolution.yml).

  13. Chọn Lưu và đưa vào hàng đợi rồi chọn Lưu.

Tạo quy trình triển khai giải pháp (không bắt buộc)

Như đã đề cập trước đó, các bước trong phần trước sẽ tạo quy trình xây dựng và triển khai cho môi trường xác thực, thử nghiệm và sản xuất. Tuy nhiên, bạn có thể tạo một giải pháp riêng quy trình triển khai nếu bạn chỉ muốn xây dựng và triển khai để xác thực và kiểm tra, sau đó triển khai các tạo phẩm từ bản dựng thử nghiệm sang bản sản xuất.

Hãy làm theo các bước trong phần này để tạo giải pháp quy trình triển khai từ quy trình mẫu YAML. Bảng sau đây mô tả cấu hình đường ống.

Quan trọng

Tên quy trình phải chính xác như được hiển thị trong bảng sau, với tên giải pháp của bạn thay cho MyNewSolution.

Tên tệp YAML quy trình Tên quy trình Đã bật chính sách nhánh
Triển khai-prod-MyNewSolution.yml Triển khai-prod-MyNewSolution No
  1. Trong Azure DevOps, hãy đi tới kho lưu trữ có chứa thư mục quy trình mà bạn cam kết rồi chọn thư mục Quy trình.

  2. Mở quy trình triển khai mẫu deploy-prod-pipelinetifact-SampleSolution.yml và sao chép YAML để sử dụng trong quy trình mới của bạn.

  3. Lưu ý tên của kho lưu trữ để sử dụng trong quy trình của bạn.

  4. Đi tới kho lưu trữ mà bạn muốn sử dụng để kiểm soát nguồn cho giải pháp của mình.

  5. Chọn Mới từ menu trên cùng và sau đó chọn Tệp.

  6. Đặt tên cho tệp YAML của đường dẫn mới; ví dụ: deploy-prod-MyNewSolution.yml, trong đó MyNewSolution là tên giải pháp của bạn.

  7. Chọn Tạo.

  8. Dán YAML mà bạn đã sao chép trong bước 2 vào tệp đường dẫn mới.

  9. Thay đổi các giá trị sau trong đường dẫn YAML mới:

    • Thay đổi Kích hoạt>Các nhánh>Bao gồm các nhánh trong đó các thay đổi sẽ kích hoạt việc triển khai vào sản xuất.

    • Thay đổi Tài nguyên>Kho lưu trữ>Tên thành tên của kho lưu trữ chứa các mẫu quy trình của bạn.

      Trong ví dụ này, kho lưu trữ có tên coe-alm-accelerator-templates và nó tồn tại trong cùng dự án với MyNewSolution repo. Nếu kho lưu trữ mẫu của bạn nằm trong một dự án Azure DevOps khác, hãy sử dụng định dạng ProjectName/RepoName. Bạn cũng có thể chỉ định nhánh nơi chứa mẫu của mình bằng cách sử dụng tham số ref nếu cần.

    • Cập nhật Tài nguyên>Đường dẫn>Nguồn để chỉ định đường dẫn xây dựng chứa các thành phần lạ mà đường dẫn này sẽ triển khai. Trong trường hợp này, bạn sẽ triển khai các tạo phẩm từ quy trình thử nghiệm mà bạn đã tạo trước đó, quy trình này đã xây dựng và triển khai giải pháp của bạn vào môi trường thử nghiệm.

    • Thay đổi bất kỳ giá trị nào đề cập đến SampleSolutionName thành tên duy nhất cho giải pháp của bạn; ví dụ: Giải pháp mới của tôi.

  10. Lặp lại các bước từ 11 đến 20 trong phần trước cho deploy-validation-ALMAcceleratorSampleSolution deploy-test-ALMAcceleratorSampleSolution , để tạo một pipeline từ quy trình sản xuất mới YAML có têndeploy-prod-ALMAcceleratorSampleSolution .

Đặt quy trình triển khai biến

Đối với mỗi quy trình triển khai bạn đã đặt cấu hình trước đó, bạn phải đặt giá trị của các EnvironmentName biến và ServiceConnection dựa trên môi trường mà kênh dẫn triển khai. Bạn cũng có thể đặt EnableFlows biến để tắt Power Automate luồng như một phần của quá trình triển khai.

Tạo các biến kết nối môi trường và dịch vụ (bắt buộc)

Mọi quy trình triển khai đều yêu cầu biến EnvironmentName môi trường và biến ServiceConnection kết nối dịch vụ.

  • EnvironmentName Chỉ Azure DevOps định môi trường đang được triển khai để cho phép theo dõi lịch sử triển khai và đặt quyền và phê duyệt để triển khai cho các môi trường cụ thể. Đặt giá trị này thành Xác thực, Kiểm tra hoặc Sản xuất, nếu thích hợp.

  • ServiceConnection chỉ định cách quy trình triển khai kết nối Power Platform. Giá trị được phép là tên của các kết nối dịch vụ mà bạn đã tạo trước đó.

  1. Chọn Chỉnh sửa trên từng quy trình triển khai.

  2. Chọn Biến trên định nghĩa quy trình triển khai để mở trình chỉnh sửa biến.

  3. Để thêm biến, hãy chọn (+). Nhập tên của biến và giá trị thích hợp.

Lặp lại các bước này để tạo các EnvironmentName biến và ServiceConnection .

Tạo biến EnableFlows (không bắt buộc)

Bạn có thể đặt giá trị của biến quy trình có tên EnableFlows là False để bỏ qua các bước tự động bật Power Automate luồng như một phần của quá trình triển khai. Giá trị mặc định của EnableFlows biến là True.

Đặt chính sách nhánh để xác thực yêu cầu kéo

Tạo chính sách nhánh để thực thi quy trình bạn đã tạo trước đó khi yêu cầu kéo được tạo.

  1. Trong Azure DevOps, hãy đi tới Kho lưu trữ rồi chọn thư mục Nhánh.

  2. Tìm nhánh mà bạn muốn tạo chính sách pull request. Chọn (...) ở bên phải chi nhánh, sau đó chọn Chính sách chi nhánh.

  3. Trên trang Chính sách nhánh, đi đến Xác thực bản dựng.

  4. Chọn + để thêm chính sách nhánh mới.

  5. Trong danh sách Xây dựng quy trình , chọn quy trình bạn đã tạo trước đó.

  6. Chỉ định bộ lọc Đường dẫn nếu có để đảm bảo rằng chỉ những thay đổi đối với đường dẫn đã chỉ định mới kích hoạt quy trình cho yêu cầu kéo.

  7. Đặt Trình kích hoạt thành Tự động.

  8. Đặt Yêu cầu chính sách thành Bắt buộc.

  9. Đặt Hết hạn bản dựng thành Ngay lập tức.

  10. Đặt tên Hiển thị cho chính sách chi nhánh của bạn; ví dụ: PR Build Validation.

  11. Chọn Lưu.

Ảnh chụp màn hình của việc chọn cài đặt cho chính sách xây dựng xác thực.

Đặt quyền truy cập tài nguyên cho quy trình

Pipeline cần quyền truy cập vào các tài nguyên cần thiết, chẳng hạn như kho, nhóm biến và kết nối dịch vụ, để chạy. Để cho phép truy cập, bạn có ba tùy chọn.

Cấp quyền truy cập trong lần chạy đầu tiên

Bạn có thể cho phép truy cập vào tài nguyên cần thiết trong lần chạy đầu tiên của quy trình.

  1. Kích hoạt đường ống và mở đường ống chạy vào Azure DevOps.
  2. Chọn Xem trong biểu ngữ "yêu cầu quyền".
  3. Chọn Giấy phép cho từng tài nguyên bắt buộc.

Cho phép rõ ràng

Bạn có thể cấp quyền rõ ràng cho một pipeline để truy cập các repos cần thiết.

  1. Trong Azure DevOps, mở Cài đặt dự án.
  2. Chọn Kho, sau đó chọn một kho lưu trữ.
  3. Chọn thẻ Bảo mật.
  4. Cuộn xuống Quyền quy trình và chọn +.
  5. Chọn quy trình mà bạn muốn cấp quyền truy cập vào kho lưu trữ.

Bạn có thể cấp quyền rõ ràng cho kênh dẫn để truy cập các nhóm biến bắt buộc.

  1. Trong Azure DevOps, chọn Thư viện> quy trình, và sau đó chọn một nhóm biến.
  2. Chọn Quyền quy trình.
  3. Chọn +, sau đó chọn kênh dẫn mà bạn muốn cấp quyền truy cập vào nhóm biến.

Bạn có thể cấp quyền rõ ràng cho quy trình để truy cập các kết nối dịch vụ bắt buộc.

  1. Trong Azure DevOps, mở Cài đặt dự án.
  2. Chọn Kết nối dịch vụ rồi chọn kết nối dịch vụ.
  3. Chọn Tác vụ khác (), sau đó chọn Bảo mật.
  4. Cuộn xuống Quyền quy trình và chọn +.
  5. Chọn đường dẫn mà bạn muốn cấp quyền truy cập vào kết nối dịch vụ.

Cấp quyền truy cập cho tất cả các đường ống

Bạn có thể cho phép tất cả các quy trình, cả quy trình bạn có hiện tại và bất kỳ quy trình nào bạn tạo trong tương lai, truy cập vào các kho lưu trữ cần thiết.

  1. Trong Azure DevOps, mở Cài đặt dự án.
  2. Chọn Kho, sau đó chọn một kho lưu trữ.
  3. Chọn thẻ Bảo mật.
  4. Cuộn xuống Quyền quy trình.
  5. Chọn Tác vụ khác (), chọn Quyền truy cập mở, rồi xác nhận khi được nhắc.

Bạn có thể cho phép tất cả các quy trình truy cập vào các nhóm biến được yêu cầu.

  1. Trong Azure DevOps, chọn Thư viện> quy trình, và sau đó chọn một nhóm biến.
  2. Chọn Quyền quy trình.
  3. Chọn Tác vụ khác (), chọn Quyền truy cập mở, rồi xác nhận khi được nhắc.

Bạn có thể cho phép tất cả các đường ống truy cập vào các kết nối dịch vụ cần thiết.

  1. Trong Azure DevOps, mở Cài đặt dự án.
  2. Chọn Kết nối dịch vụ rồi chọn kết nối dịch vụ.
  3. Chọn Tác vụ khác (), sau đó chọn Bảo mật.
  4. Chọn một kết nối dịch vụ, chọn Tác vụ khác (), sau đó chọn Bảo mật.
  5. Cuộn xuống Quyền quy trình.
  6. Chọn Tác vụ khác (), chọn Quyền truy cập mở, rồi xác nhận khi được nhắc.

Đặt phạm vi ủy quyền công việc

Phạm vi ủy quyền công việc có thể được đặt cho toàn bộ Azure DevOps tổ chức hoặc cho một dự án cụ thể. Tắt cài đặt Giới hạn phạm vi ủy quyền công việc đối với dự án hiện tại đối với quy trình phát hành , nếu bạn chọn một dự án Azure DevOps khác để cài đặt mẫu.

Để đặt phạm vi ủy quyền công việc ở cấp tổ chức cho tất cả các dự án

  1. Trong Azure DevOps, chọn Cài đặt tổ chức > Quy trình > Cài đặt.
  2. Tắt cài đặt Giới hạn phạm vi ủy quyền công việc đối với dự án hiện tại đối với cài đặt quy trình phát hành .

Tạo cấu hình triển khai (tùy chọn)

Bạn cần tạo một số cấu hình trong môi trường đích sau khi triển khai giải pháp. Các cấu hình này dành riêng cho môi trường và bao gồm các tham chiếu kết nối, biến môi trường cũng như quyền cho Microsoft Entra nhóm và nhóm Dataverse , ngoài việc chia sẻ ứng dụng canvas và cập nhật quyền sở hữu các thành phần giải pháp như theo dòng Power Automate . Cùng với các cấu hình này, môi trường mục tiêu thường cần dữ liệu mẫu hoặc cấu hình được liên kết với các bảng Dataverse trong giải pháp để cung cấp trải nghiệm ALM toàn diện đầy đủ.

Nếu giải pháp của bạn yêu cầu những cấu hình hoặc dữ liệu khác này, hãy làm theo hướng dẫn cấu hình triển khai để định cấu hình quy trình của bạn dựa trên môi trường mà bạn đang triển khai.

Nhập giải pháp và định cấu hình ứng dụng

Nhập ứng dụng canvas ALM Accelerator vào môi trường của bạn Power Platform , sau đó định cấu hình trình kết nối tùy chỉnh đi kèm cho Azure DevOps.

Cài đặt ALM Accelerator trong Dataverse

  1. Giải pháp ALM Accelerator phụ thuộc vào Creator Kit. Hãy cài đặt Bộ công cụ sáng tạo ngay bây giờ.

  2. Tải xuống tệp giải pháp được quản lý mới nhất từ GitHub. Cuộn xuống Tài sản và chọn CenterofExcellenceALMAccelerator_<phiên bản> mới nhất_managed.zip.

  3. đăng nhập Power Apps, sau đó chọn môi trường bạn muốn lưu trữ ứng dụng ALM Accelerator.

  4. Trong bảng điều khiển bên trái, hãy chọn Giải pháp.

  5. Chọn Nhập giải pháp>Duyệt, sau đó duyệt đến vị trí của giải pháp được quản lý bạn đã tải xuống và chọn tệp.

  6. Chọn Tiếp rồi lại chọn Tiếp.

  7. Trên trang Kết nối , chọn hoặc tạo kết nối để kết nối kết nối CDS Dataverse DevOps.

    Khi bạn tạo kết nối cho HTTP với Microsoft Entra, sử dụng Microsoft Graph cho cả hai tham số.

  8. Chọn Nhập.

Đặt cấu hình trình kết nối tùy chỉnh DevOps

  1. Chọn Trình kết nối>tùy chỉnh dữ liệu>Tùy chỉnhAzureDevOps.

  2. Chọn Chỉnh sửa. Trên trang Bảo mật , chọn Chỉnh sửa rồi đặt các trường sau:

    Tên Giá_trị
    Loại xác thực OAuth 2.0
    Nhà cung cấp danh tính Azure Active Directory
    ID máy khách ID ứng dụng (ứng dụng khách) bạn đã sao chép khi tạo đăng ký ứng dụng
    Mã bí mật máy khách Giá trị bí mật của ứng dụng (ứng dụng khách) bạn đã sao chép khi tạo đăng ký ứng dụng
    ID Đối tượng thuê Để lại giá trị mặc định, phổ biến
    URL nguồn lực ID ứng dụng DevOps (ứng dụng khách) bạn đã sao chép khi thêm quyền vào đăng ký ứng dụng của mình
    chuyển hướng URL Tự động tạo. Nếu bạn nhận thấy hộp kiểm 'Cập nhật lên URL chuyển hướng duy nhất' bên dưới 'URL chuyển hướng', vui lòng chọn hộp kiểm.
  3. Chọn Cập nhật trình kết nối.

Thêm 'URL chuyển hướng' làm 'URI chuyển hướng'

Cần phải thêm 'URL chuyển hướng' được tạo tự động từ phần trên dưới dạng 'URI chuyển hướng' vào đăng ký ứng dụng.

  1. Quay lại đăng ký ứng dụng bạn đã tạo.

  2. Ở bảng điều khiển bên trái, hãy chọn Tổng quan.

  3. Chọn Thêm URI chuyển hướng.

  4. Chọn + Thêm nền tảng, sau đó chọn Web.

  5. Trong hộp văn bản URI chuyển hướng , dán 'URL chuyển hướng' được tạo tự động được sao chép từ phần trên.

  6. Chọn Thiết lập.

Kiểm tra trình kết nối tùy chỉnh

  1. Mở menu Kiểm tra.

  2. Chọn Kết nối mới rồi làm theo lời nhắc để tạo kết nối.

  3. Trong Power Apps, hãy chọn môi trường của bạn rồi chọn Dataverse>Trình kết nối tùy chỉnh>CustomAzureDevOps.

  4. Chọn Chỉnh sửa, đi tới trang Kiểm tra và sau đó tìm GetOrganizations hoạt động.

  5. Chọn Thao tác thử nghiệm.

  6. Xác nhận phản hồi Trạng thái được trả về 200 và rằng phản hồi Nội dung là bản trình bày JSON của tổ chức Azure DevOps của bạn.

    Ảnh chụp màn hình cài đặt bảo mật thử nghiệm cho trình kết nối Azure DevOps tùy chỉnh.

Thiết lập người tạo để sử dụng ứng dụng ALM Accelerator

  • Định cấu hình quyền người dùng cho tài khoản của người tạo trong Dataverse và Azure DevOps.

  • Đặt cấu hình cài đặt người dùng triển khai để thiết lập trải nghiệm người dùng của ứng dụng và cấp quyền truy cập vào các giải pháp và hồ sơ triển khai.

Đọc thêm