Joh*_*Mee 4 aws-cli graphql aws-appsync
用于 AppSync的AWS CLI有一系列可爱的功能,可以从我工作站的命令行远程管理它,这样我在大多数情况下不必使用浏览器控制台。
但是要进行查询,我必须进入 Web 浏览器控制台并在 AppSync 下找到 GraphQl 查询。我可以通过 CLI 更改所有方式,但我找不到简单地发出 graphql 查询的命令。
我错过了吗?它在吗?
不想再看这个画面了……
小智 6
Appsync 查询页面实际上是几个事物的结合。您不能根据 ( https://docs.aws.amazon.com/cli/latest/reference/appsync/index.html )从 CLI 发出查询
但是,您可以使用 GUI 客户端工具将 POST 发送到您的 Appsync 端点。像 Postman 或 Insomnia(我个人最喜欢的)。但是,您的目标是真正通过 CLI 发送符合 GraphQL 的查询,然后您将不得不求助于“curl”
这是我拥有的一个示例 python 脚本,它向我的 Appsync API 发送 curl 请求。
#!/usr/bin/env python3
import os
cmd = """curl -i -H 'Content-Type: application/json' -H "x-api-key: <ENTER YOUR API KEY FROM THE APPSYNC SETTINGS PAGE>" -H "Host: <ENTER YOUR HOST ENDPOINT FROM THE APPSYNC API SETTINGS PAGE >" -X POST -d '{"query": "query {listEvents {items {id}}}"}' https://<ENTER YOUR HOST ENDPOINT FROM THE APPSYNC API SETTINGS PAGE>/graphql"""
def doGraphqlRequest():
os.system(cmd)
print("Starting request to Appsync endpoint")
doGraphQLRequest()
print("Finsihed request to Appsync endpoint")
Run Code Online (Sandbox Code Playgroud)
稍微解释一下,您正在向给定“/graphql/ 端点”的 appsync 发出 POST 请求和查询。您有 3 个标题(由 -H 标志表示)
希望这可以帮助!
graphql-python/gql从版本 3.0.0rc0开始支持 AWS AppSync 。
它支持实时端点上的查询、突变甚至订阅。
它支持 IAM、api 密钥和 JWT 身份验证方法。
它有一个gql-cli脚本,允许您从命令行执行查询、突变和订阅。
该文档可在此处获取
对于查询和突变,请使用--transport appsync_http参数:
# Put the request in a file
$ echo 'mutation createMessage($message: String!) {
createMessage(input: {message: $message}) {
id
message
createdAt
}
}' > mutation.graphql
# Execute the request using gql-cli with --transport appsync_http
$ cat mutation.graphql | gql-cli $AWS_GRAPHQL_API_ENDPOINT --transport appsync_http -V message:"Hello world!"
Run Code Online (Sandbox Code Playgroud)
对于订阅,请使用--transport appsync_websockets参数:
echo "subscription{onCreateMessage{message}}" | gql-cli $AWS_GRAPHQL_API_ENDPOINT --transport appsync_websockets
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1845 次 |
| 最近记录: |