如何获取用于Userdata的RDS端点

时间:2018-05-07 00:39:19

标签: amazon-web-services boto3

我正在尝试将RDS端点用于cli的用户数据,但无法弄明白。 我需要将RDS端点注入到php文件中,但是当我尝试以下操作时,我得到:

Unable to locate credentials. You can configure credentials by running "aws configure".

我正在使用CLI构建ec2和vpc,并且需要能够将RDS端点作为Userdata的一部分。

我在EC2实例上尝试了以下操作,我收到了上述错误。

aws rds --region ca-central-1 describe-db-instances --query "DBInstances[*].Endpoint.Address"

即使我能够解决这个问题,我也需要能够让端点作为userdata的一部分传递。这甚至可能吗?

2 个答案:

答案 0 :(得分:1)

Unable to locate credentials错误表明AWS Command-Line Interface (CLI)没有任何凭据来调用AWS API。

您应该为EC2实例分配角色,并且有足够的权限在RDS上调用describe-db-instances。请参阅:IAM Roles for Amazon EC2

然后,您的用户数据可以包含以下内容:

#!
RDS=`aws rds --region ca-central-1 describe-db-instances --query "DBInstances[*].Endpoint.Address"`
echo >file $RDS

或将其作为参数传递:

php $RDS

答案 1 :(得分:-1)

我可以使用它-

mac = curl -s http://169.254.169.254/latest/meta-data/mac

VPC_ID = curl -s http://169.254.169.254/latest/meta-data/network/interfaces/macs/ $ mac / vpc-id

aws rds describe-db-instances --region us-east-2 | jq -r --arg VPC_ID "VPC_ID" '.DBInstances[] |select (.DBSubnetGroup.VpcId=="'$VPC_ID'") | .Endpoint.Address'