AWS Javascript SDKを使用してクラスターを作成し、ECSタスクのコンテナーインスタンスを登録しています。リクエストパラメータにインスタンスIDドキュメント値を提供することに驚かされました。実行中のEC2インスタンスをコンテナインスタンスとして登録しようとしています。次のコマンドcurl
コマンドを実行して、インスタンスIDドキュメントを取得しました。
curl http://169.254.169.254/latest/dynamic/instance-identity/document/
出力:
{
"accountId" : "01234567891",
"architecture" : "x86_64",
"availabilityZone" : "us-east-11",
"billingProducts" : null,
"devpayProductCodes" : null,
"marketplaceProductCodes" : null,
"imageId" : "ami-123456789012d",
"instanceId" : "i-12345678901",
"instanceType" : "t2.micro",
"kernelId" : null,
"pendingTime" : "2020-07-12T15:57:19Z",
"privateIp" : "172.31.33.40",
"ramdiskId" : null,
"region" : "us-east-1",
"version" : "2017-09-30"
}
出力を文字列に変換しましたが、NodeJSコードでエラーが発生します。
{ InvalidParameterException: An identity document was provided, but not valid.
message:
'The identity document and identity document signature were not valid.',
code: 'InvalidParameterException',
time: 2020-07-14T07:30:59.782Z,
requestId: '7bca816f-8c8f-4e6e-8e77-04c93b45c17e',
statusCode: 400,
retryable: false,
retryDelay: 68.57527460306602 } 'InvalidParameterException: The identity document and identity document signature were not valid.\n
registerContainerInstances
EC2インスタンスからAPIを実行する必要がありますか?
案内してください!!!
問題を修正しました。EC2SDKを使用してECSAMI Imageでインスタンスを起動し、ユーザーデータに次のスクリプトを追加しました。
#!/bin/bash
echo "ECS_CLUSTER=YOUR_CLUSTER_NAME" >> /etc/ecs/ecs.config
上記のコードは、指定されたECSクラスターに登録されます。registerContainerInstances
APIを使用する必要はありません。AWSがこのAPIをAPIリファレンスから削除できれば素晴らしいと思います。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加