修改專案以使用自訂容器 - AWS SimSpace Weaver

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

修改專案以使用自訂容器

這些指示假設您已經知道如何使用 AWS SimSpace Weaver 並希望讓您的應用程式儲存和開發工作流程 AWS 雲端 更有效率。

必要條件
  • 您在 Amazon Elastic Container Registry (Amazon ECR) 中有一個自定義容器。如需建立自訂容器的詳細資訊,請參閱建立自訂容器

若要修改專案以使用自訂容器
  1. 為專案的模擬應用程式角色新增許可以使用 Amazon ECR。

    1. 如果您還沒有具有以下許可的 IAM 政策,請建立該政策。我們建議使用策略名稱simspaceweaver-ecr。如需如何建立 IAM 政策的詳細資訊,請參閱AWS Identity and Access Management 使用者指南中的建立 IAM 政策

      { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement", "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
    2. 尋找專案模擬應用程式角色的名稱:

      1. 在文字編輯器中,開啟 AWS CloudFormation 範本:

        sdk-folder\PackagingTools\sample-stack-template.yaml
      2. 尋找下方的RoleName屬性WeaverAppRole。此值是專案模擬應用程式角色的名稱。

        AWSTemplateFormatVersion: "2010-09-09" Resources: WeaverAppRole: Type: 'AWS::IAM::Role' Properties: RoleName: 'weaver-MySimulation-app-role' AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: Service: - 'simspaceweaver.amazonaws.com'
    3. simspaceweaver-ecr原則附加至專案的模擬應用程式角色。如需有關如何附加政策的詳細資訊,請參閱AWS Identity and Access Management 使用指南中的新增和移除 IAM 身分許可。

    4. 瀏覽sdk-folder並執行下列命令以更新範例 SimSpace Weaver 堆疊:

      python setup.py --cloudformation
  2. 在專案的模擬結構描述中指定容器映像檔。

    • 您可以在下新增選擇default_image性屬性,simulation_properties以指定所有網域的預設自訂容器映像檔。

    • 在您要使用app_config自訂容器映像檔的網域中新增image屬性。將 Amazon ECR 儲存庫 URI 指定為值。您可以為每個網域指定不同的映像檔。

      • 如果image未為網域指定且已指定,default_image則該網域中的應用程式會使用預設映像檔。

      • 如果image未為網域指定且default_image未指定,則該網域中的應用程式會在標準 SimSpace Weaver 容器中執行。

    範例 包含自訂容器設定的結構描述片段
    sdk_version: "1.17.0" simulation_properties: log_destination_service: "logs" log_destination_resource_name: "MySimulationLogs" default_entity_index_key_type: "Vector3<f32>" default_image: "111122223333.dkr.ecr.us-west-2.amazonaws.com/my-ecr-repository:latest" # image to use if no image specified for a domain domains: MyCustomDomain: launch_apps_via_start_app_call: {} app_config: package: "s3://weaver-myproject-111122223333-us-west-2/MyViewApp.zip" launch_command: ["MyViewApp"] required_resource_units: compute: 1 endpoint_config: ingress_ports: - 7000 image: "111122223333.dkr.ecr.us-west-2.amazonaws.com/my-ecr-repository:latest" # custom container image to use for this domain MySpatialDomain: launch_apps_by_partitioning_strategy: partitioning_strategy: "MyGridPartitioning" grid_partition: x: 2 y: 2 app_config: package: "s3://weaver-myproject-111122223333-us-west-2/MySpatialApp.zip" launch_command: ["MySpatialApp"] required_resource_units: compute: 1 image: "111122223333.dkr.ecr.us-west-2.amazonaws.com/my-ecr-repository:latest" # custom container image to use for this domain
  3. 像往常一樣構建和上傳您的項目。