查找executionRoleArn,taskRoleArn的值

如何解决查找executionRoleArn,taskRoleArn的值

我正在研究AWS Python tutorial,module 2

我在C部分,必须在task definition文件中填充一些REPLACE_ME值来创建json

{
  "family": "mythicalmysfitsservice","cpu": "256","memory": "512","networkMode": "awsvpc","requiresCompatibilities": [
    "FARGATE"
  ],"executionRoleArn": "REPLACE_ME_ECS_SERVICE_ROLE_ARN","taskRoleArn": "REPLACE_ME_ECS_TASK_ROLE_ARN","containerDefinitions": [
    {
      "name": "MythicalMysfits-Service","image": "REPLACE_ME_IMAGE_TAG_USED_IN_ECR_PUSH","portMappings": [
        {
          "containerPort": 8080,"protocol": "http"
        }
      ],"logConfiguration": {
        "logDriver": "awslogs","options": {
          "awslogs-group": "mythicalmysfits-logs","awslogs-region": "us-east-1","awslogs-stream-prefix": "awslogs-mythicalmysfits-service"
        }
      },"essential": true
    }
  ]
}

我不确定三个变量在哪里获取值:

"REPLACE_ME_ECS_SERVICE_ROLE_ARN","REPLACE_ME_ECS_TASK_ROLE_ARN","REPLACE_ME_IMAGE_TAG_USED_IN_ECR_PUSH"

在此步骤之前,在步骤A和B中,我create-cluster,但是该输出对我来说并不明显:

$ aws ecs create-cluster --cluster-name MythicalMysfits-Cluster
{
    "cluster": {
        "clusterArn": "arn:aws:ecs:us-east-1:002847010850:cluster/MythicalMysfits-Cluster","clusterName": "MythicalMysfits-Cluster","status": "ACTIVE","registeredContainerInstancesCount": 0,"runningTasksCount": 0,"pendingTasksCount": 0,"activeServicesCount": 0,"statistics": [],"tags": [],"settings": [
            {
                "name": "containerInsights","value": "disabled"
            }
        ],"capacityProviders": [],"defaultCapacityProviderStrategy": []
    }
}

我怀疑我可能知道的唯一值是"REPLACE_ME_IMAGE_TAG_USED_IN_ECR_PUSH",当我将docker映像推送到Elastic Compute Repository时可以从docker push 002847010850.dkr.ecr.us-east-1.amazonaws.com/mythicalmysfits/service中获取

因此,我做出了一个猜测,将"clusterArn"的值用于REPLACE_ME,将原始图像标签用于第三个,但

$ aws ecs register-task-definition --cli-input-json file://~/environment/aws-modern-application-workshop/module-2/aws-cli/task-definition.json

An error occurred (ClientException) when calling the RegisterTaskDefinition operation: Role is not valid

这是我喂的json:

{
  "family": "mythicalmysfitsservice","executionRoleArn": "arn:aws:ecs:us-east-1:002847010850:cluster/MythicalMysfits-Cluster","taskRoleArn": "arn:aws:ecs:us-east-1:002847010850:cluster/MythicalMysfits-Cluster","image": "002847010850.dkr.ecr.us-east-1.amazonaws.com/mythicalmysfits/service","essential": true
    }
  ]
}

有人可以告诉我我要去哪里哪里吗?本教程非常糟糕-只是一堆咒语,非常脆弱,没有明显的论坛讨论可以解决。

解决方法

您应该为ecs-service-roletask-execution-role REPLACE_ME_ECS_SERVICE_ROLE_ARN使用IAM角色 分别REPLACE_ME_ECS_TASK_ROLE_ARN

ecs-service-role可能已经存在,但是如果没有,则可以如图here所示创建它。 task-execution-role的形式取决于您的应用程序要访问哪些AWS服务,例如S3。

,

Marcin提出的答案建议使我重新考虑并查看了本教程前面部分的JSON输出。

signout()给出了一堆键/值对,并且aws cloudformation describe-stacks --stack-name MythicalMysfitsCoreStack REPLACE_ME_ECS_SERVICE_ROLE_ARN REPLACE_ME_ECS_TASK_ROLE_ARN都在其中。

然后该程序起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?