查找 executionRoleArn、taskRoleArn 的值
Finding the values for executionRoleArn, taskRoleArn
我正在处理 AWS Python tutorial, module 2。
我在 C 部分,我必须通过在 json
文件中填写一些 REPLACE_ME
值来创建 task definition
。
{
"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": []
}
}
我怀疑我可能知道的唯一值是,当我将 docker 图像推送到 Elastic Compute Repository
时,我可以从 docker push 002847010850.dkr.ecr.us-east-1.amazonaws.com/mythicalmysfits/service
中获取它
所以我做了一个猜测,并为两个 REPLACE_ME 都使用了 "clusterArn"
值,第三个使用了原始图像标签,但是
$ 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",
"cpu": "256",
"memory": "512",
"networkMode": "awsvpc",
"requiresCompatibilities": [
"FARGATE"
],
"executionRoleArn": "arn:aws:ecs:us-east-1:002847010850:cluster/MythicalMysfits-Cluster",
"taskRoleArn": "arn:aws:ecs:us-east-1:002847010850:cluster/MythicalMysfits-Cluster",
"containerDefinitions": [
{
"name": "MythicalMysfits-Service",
"image": "002847010850.dkr.ecr.us-east-1.amazonaws.com/mythicalmysfits/service",
"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
}
]
}
谁能告诉我哪里出错了?本教程非常糟糕 - 只是一堆咒语,非常脆弱,没有明显的论坛讨论可以解决它。
Marcin 的答案建议让我重新思考并查看教程前面的 JSON 输出。
aws cloudformation describe-stacks --stack-name MythicalMysfitsCoreStack
给出了一堆 key/value 对,REPLACE_ME_ECS_SERVICE_ROLE_ARN
REPLACE_ME_ECS_TASK_ROLE_ARN
OutputValues
都在里面。
然后程序就可以工作了。
我正在处理 AWS Python tutorial, module 2。
我在 C 部分,我必须通过在 json
文件中填写一些 REPLACE_ME
值来创建 task definition
。
{
"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": []
}
}
我怀疑我可能知道的唯一值是,当我将 docker 图像推送到 Elastic Compute Repository
时,我可以从docker push 002847010850.dkr.ecr.us-east-1.amazonaws.com/mythicalmysfits/service
中获取它
所以我做了一个猜测,并为两个 REPLACE_ME 都使用了 "clusterArn"
值,第三个使用了原始图像标签,但是
$ 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",
"cpu": "256",
"memory": "512",
"networkMode": "awsvpc",
"requiresCompatibilities": [
"FARGATE"
],
"executionRoleArn": "arn:aws:ecs:us-east-1:002847010850:cluster/MythicalMysfits-Cluster",
"taskRoleArn": "arn:aws:ecs:us-east-1:002847010850:cluster/MythicalMysfits-Cluster",
"containerDefinitions": [
{
"name": "MythicalMysfits-Service",
"image": "002847010850.dkr.ecr.us-east-1.amazonaws.com/mythicalmysfits/service",
"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
}
]
}
谁能告诉我哪里出错了?本教程非常糟糕 - 只是一堆咒语,非常脆弱,没有明显的论坛讨论可以解决它。
Marcin 的答案建议让我重新思考并查看教程前面的 JSON 输出。
aws cloudformation describe-stacks --stack-name MythicalMysfitsCoreStack
给出了一堆 key/value 对,REPLACE_ME_ECS_SERVICE_ROLE_ARN
REPLACE_ME_ECS_TASK_ROLE_ARN
OutputValues
都在里面。
然后程序就可以工作了。