我有一个(非常基本但完美的)AWS lambda函数,用Python编写,但是有嵌入的凭据连接到:1)外部Web服务2)DynamoDB表.
该函数的作用非常基本:它针对服务POST(登录凭证#1),然后将部分响应状态保存到DynamoDB表中(使用AWS凭证#2).
这些是该功能的相关部分:
h = httplib2.Http()
auth = base64.encodestring('myuser' + ':' + 'mysecretpassword')
(response, content) = h.request('https://vca.vmware.com/api/iam/login', 'POST', headers = {'Authorization':'Basic ' + auth,'Accept':'application/xml;version=5.7'})
Run Code Online (Sandbox Code Playgroud)
然后
conn = boto.connect_dynamodb(aws_access_key_id='FAKEhhahahah',aws_secret_access_key='FAKEdhdhdudjjdjdjhdjjhdjdjjd')
Run Code Online (Sandbox Code Playgroud)
如何通过在函数内部不使用这些凭据来清理代码?
仅供参考此功能计划每5分钟运行一次(没有其他外部事件触发它).
这让我疯了.
我有一个看起来像这样的JSON:
{
"gateways": [
{
"DHCP": "On",
"External IPs": "46.244.46.66",
"Firewall": "On",
"NAT": "Off",
"Name": "gateway",
"Routed Networks": "photon, default-routed-network",
"Selected": "*",
"Syslog": "",
"Uplinks": "d5p6v51-ext",
"VPN": "Off"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我可以轻松地提取大多数键的值.
例如
jq --raw-output .gateways[0].Name
gateway
Run Code Online (Sandbox Code Playgroud)
然而,我真正需要得到的是"External IPs"价值,我无法弄清楚如何管理空间.
我试过了
jq --raw-output .gateways[0].'External IPs'
jq --raw-output .gateways[0].`External IPs`
jq --raw-output .gateways[0]."External IPs"
Run Code Online (Sandbox Code Playgroud)
但这些都不起作用.
任何提示?
我正在使用 wasmer 及其包管理器 wapm 来玩 WASM。我可以轻松安装Figlet WASM 包(如此处所述)并在本地运行它:
\nubuntu@ip-172-31-1-78:~$ wapm execute figlet it works\n _ _ _ \n(_) |_ __ _____ _ __| | _____ \n| | __| \\ \\ /\\ / / _ \\| \'__| |/ / __|\n| | |_ \\ V V / (_) | | | <\\__ \\\n|_|\\__| \\_/\\_/ \\___/|_| |_|\\_\\___/\n \nubuntu@ip-172-31-1-78:~$ \nRun Code Online (Sandbox Code Playgroud)\n作为试验 WASM 的一种方法,我想获取figlet.wasm系统上安装的文件并在浏览器中运行它。
我已经启动了本地 nginx 服务,并将figlet.wasm根文件夹中
<!doctype html>\n\n<html lang="en">\n<head>\n <meta …Run Code Online (Sandbox Code Playgroud) 我正在摸索似乎有可能常见的需求,但我无法在网络上找到任何示例.
我有这样一个文件:
answer VNET_1_DHCP yes
answer VNET_1_DHCP_CFG_HASH 4CF2C196E368CE83B9D1895C5E05301CDFDEBCA0
answer VNET_1_HOSTONLY_NETMASK 255.255.255.0
answer VNET_1_HOSTONLY_SUBNET 192.168.224.0
answer VNET_1_VIRTUAL_ADAPTER yes
answer VNET_8_DHCP yes
answer VNET_8_DHCP_CFG_HASH D326C0BC7FF6C38C57AF341F9075E576C175B250
answer VNET_8_HOSTONLY_NETMASK 255.255.255.0
answer VNET_8_HOSTONLY_SUBNET 172.16.102.0
answer VNET_8_NAT yes
answer VNET_8_VIRTUAL_ADAPTER yes
Run Code Online (Sandbox Code Playgroud)
我需要提取特定子网的VNET号(192.168.224.0).VNET数量可能会有所不同(从理论上讲,子网甚至不存在).所以我需要匹配子网是否存在,如果存在则提取网络号(1在本例中).
我发现在BASH中实现它非常容易:
if grep -q 192.168.224.0 ./networking; then
echo "The ${VMNET_SUBNET} network already exists"
NETWORK_NUMBER=$(grep ${VMNET_SUBNET} ./networking | cut -d'_' -f 2)
echo NETWORK_NUMBER
else <do something to create it.....>
Run Code Online (Sandbox Code Playgroud)
我试图找到使用Go实现这个的最简单方法.
谢谢.
我试图在go中创建一个泛型函数,它接受输入shell命令(带参数)并执行它.
请注意,shell命令可能具有不同数量的参数.
我知道exec.Command()Go中输入("ls", "-la", "/var")命令+参数的格式.
以下剪辑的代码不起作用:
func exe_cmd(commandarray []string) {
var shell_command string = ""
for i := 0; i < len(commandarray); i++ {
shell_command = shell_command + " " + commandarray[i]
}
cmd := exec.Command(shell_command)
fmt.Println("Command is: ", shell_command)
fmt.Printf("==> Executing: %s\n", strings.Join(cmd.Args, " "))
out, err := cmd.Output()
fmt.Printf("OutVar: %s\n", out)
fmt.Printf("ErrVar: %s\n", err)
}
func dummy() {
dummycmd := []string{"ls", "-la", "/var"}
exe_cmd(dummycmd)
}
Run Code Online (Sandbox Code Playgroud)
在的结束for的shell_command变量将包含"ls -la /var",我有一个很难弄清楚如何形成它的方式,就是输入格式要求,即 …
go ×2
amazon-iam ×1
aws-lambda ×1
bash ×1
boto ×1
javascript ×1
jq ×1
python ×1
shell ×1
webassembly ×1