通过 IAM Identity Center 管理对多个账户的访问时,AWS 访问门户为这些账户中的每个可用角色/权限集提供可单击的链接。但是,控制台始终加载到主页。有没有办法构建一个“深层链接”URL,以便单击它的(授权)用户将:
我知道可以为给定的 PermissionSet设置中继状态,但这还不够,因为我可能希望给定的用户从不同的链接重定向到不同的位置 - 也就是说,我希望在单击的内容中对目的地进行编码URL,不在 PermissionSet 的元数据中。为每个可能的目的地创建不同的 PermissionSet 是不切实际的。
这个博客似乎准确地描述了我想要实现的目标,但它对我不起作用 - 按照说明,我:
RPID=(url-encoded string of
urn:amazon:webservices)&RelayState=(url-encoded destination url)
?RelayState=
)附加到我的 Access Portal 提供的一键登录然而,生成的 URL 只是让我登录并将我置于主页上,而没有任何重定向。
遗憾的是,该文章的所有链接似乎都已损坏。我还找到了这个页面,并尝试使用它来生成深层链接 - 再次,不走运,我刚刚登录到主页。
我确实注意到我的登录网址与示例不同 - 它们看起来像https://<domain>/adfs/ls/idpinitiatedsignon.aspx
,而我的登录网址看起来像https://<internal-string>.awsapps.com/start/#/saml/custom/AAA/BBB
,其中:
AAA
是 url 编码的字符串account-number (account-nickname)
BBB
是一些引用主AWS帐户的base64编码数据的url编码,后跟两个我无法放置的(下划线分隔的)标识符 - 一个是 form ins-[alphanumerics]
,另一个是 formp-[alphanumerics]
这是否意味着我的 ADFS 的配置与此功能预期的不同?还有办法实现我想要的吗?
编辑:我的网络管理员通知我,我们在内部使用 Azure AD,而不是 ADFS,这可能是 URL 格式不同的原因。
amazon-web-services amazon-iam aws-sso aws-iam-identity-center
我有Python背景(虽然完全是自学成才,所以我可能有一些不良习惯或误解),而我正在努力学习Ruby以扩大我的范围.
我正在阅读一些比较,并看到许多断言"Python不能进行元编程"(或者,更少的是,"Python不能像Meta一样简单地进行元编程").所以我离开后迅速阅读了关于元编程的内容,并且给人的印象是,它基本上是在运行时编辑类/对象的方法/行为(如果我不正确,请纠正我!).
我的印象是,由于Python是动态的,这应该不是问题.但是,我运行了以下测试代码,它没有给出我预期的响应:
>>> class foo:
... def make_hello_method(self):
... def hello(obj):
... print 'hello'
... self.hello = hello
...
>>> f = foo()
>>> f.hello()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: foo instance has no attribute 'hello'
>>> f.make_hello_method()
>>> f.hello()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: hello() takes exactly 1 argument (0 given)
Run Code Online (Sandbox Code Playgroud)
我的印象是,对象的每个方法都自动将对象本身作为第一个参数传递(因此将对象方法定义为常量要求(self, [...])
).怎么f
没有被传递给hello()
?
我对导致这种情况的思维过程感兴趣.对我来说,一个相对新手,似乎阻碍了,因为它阻止了列表处理的"链接"(例如mylist.reverse().append('a string')[:someLimit]
).我想可能是"那些人的力量"决定列表理解是一个更好的范例(一个有效的观点),所以不想鼓励其他方法 - 但是这似乎有悖常理,以防止一种直观的方法,即使更好存在替代品.
请注意,我不是在抱怨(我敢肯定有是一个合理的理由,我在它是什么只是感兴趣!),也不是寻找一个解决方案(意见在这里非常具有启发性) -只是寻找一些情况下,并深入理解语言的设计过程.
TL; DR我希望将模块的依赖关系构建到其.jar中,但它们似乎不是.
我正在使用Gradle来构建一个项目.我有两个子项目,app
(一个Android模块)和tests
(一个Java模块),由IntelliJ创建.
由于我想使用app
内容中定义的类tests
,我添加了适当的依赖项.受到这个答案的启发,我有以下设置:
应用程序/的build.gradle:
...
task jarTask(type: Jar) {
baseName ="${project.archivesBaseName}"
from android.sourceSets.main.java
}
configurations {
jarConfiguration
}
artifacts {
jarConfiguration jarTask
}
Run Code Online (Sandbox Code Playgroud)
测试/的build.gradle
...
dependencies {
...
testCompile project(path: ':app', configuration: 'jarConfiguration')
}
Run Code Online (Sandbox Code Playgroud)
但是,app
进口中的一个类org.json.JSONObject
.由于这是由Android SDK提供的,app
可以很好地找到 - 但是当我尝试运行测试时,我得到(in :tests:compileTestJava
)"package org.json不存在".但是,如果我更新tests/build.gradle
...
dependencies {
...
testCompile project(path: ':app', configuration: 'jarConfiguration')
testCompile 'org.json:json:20090211'
}
Run Code Online (Sandbox Code Playgroud)
(见这里)然后测试正确运行.
这不是我所期望的 - 如果.jar没有打包它的依赖项,那么依赖于.jar的任何项目也必须明确地依赖于传递依赖 - 这不会导致依赖关系定义快速增加吗?
这个问题的纺出这一个。现在,我对那里的问题有了更好的了解,并且是一个可行的(如果不完美的话)解决方案,我正在提交一个更集中的后续措施(我仍然是StackOverflow的新手,请告诉我是否这违反了礼节,我应该对原文进行跟进)。
该页面建议“ 您使用AWS CodeBuild来构建,本地测试和打包无服务器应用程序 ”。但是,当我在中包含sam build
命令时buildspec.yml
,我得到以下日志输出,提示sam
未在CodeBuild映像上安装:
[Container] 2018/12/31 11:41:49 Running command sam build --use-container
sh: 1: sam: not found
[Container] 2018/12/31 11:41:49 Command did not exit successfully sam build --use-container exit status 127
[Container] 2018/12/31 11:41:49 Phase complete: BUILD Success: false
[Container] 2018/12/31 11:41:49 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: sam build --use-container. Reason: exit status 127
Run Code Online (Sandbox Code Playgroud)
此外,如果我使用来安装SAM pip install aws-sam-cli
,则sam build --use-container …
我刚刚开始学习Java,并遇到了一个问题.尝试运行Android应用程序时,调用方法makeResponse时会出现NullPointerException.
代码提取(本帖末尾附有完整代码):
private String makeResponse(String input){
//This doesn't work yet. I keep getting null pointer exceptions on the line beginning "int id" line, but can't tell why.
String response = "You picked "+input;
if (sw==null){
response+=" and sw is null"; //This doesn't activate
}
if (input==null){
response+=" and input is null"; //This doesn't activate
}
int id = sw.getIdFromName(input); //If this line (and the following one) are commented out, the method runs with no problem, but neither of the if …
Run Code Online (Sandbox Code Playgroud) 我最近在我的 Raspberry Pi 上安装了 minidlna,一个轻量级的 UPnP 服务器。由于它缺少其他程序(例如 Mediatomb)的 Web 界面,因此我认为编写一个对我来说可能是一个有趣的项目。
我相信 minidlna 将库信息存储在名为“files.db”的单个文件中。
编辑:我被建议检查输出file files.db
- 这如下:
files.db: SQLite 3.x database, user version 8
但是,我找不到可以让我与 shell 中的 .db 文件进行交互的程序。我看过以下推荐的程序:
在前四种情况下,sudo apt-get install
找不到程序。
sudo apt-get install db.util
似乎安装,但在安装过程中,产生以下消息:
Processing triggers for man-db ...
Setting up gcj-4.7-base (4.7.1-1) ...
Setting up libgcj-common (1:4.6.3-7) ...
Setting up libgcj13 (4.7.1-1) ...
Setting up libgcj13-awt (4.7.1-1) ...
Setting up gcj-4.7-jre-headless (4.7.1-1) ...
Illegal instruction
ERROR: gcj-dbtool did …
Run Code Online (Sandbox Code Playgroud) 在以下代码中:
private static void example() {
String inputString = "test";
switch (inputString) {
case "test":
String outputString = "The string said test";
case "not test":
String outputString = "The string did not say test";
}
/*Do stuff with ouputString*/
}
Run Code Online (Sandbox Code Playgroud)
Eclipse 突出显示Case "not test"
错误后的行Duplicate local variable outputString
。但是,由于它们位于switch
语句的不同分支中,因此它们实际上并不冲突,因为一次只能有一个有效。
显然,在这种情况下,我可以通过将outputString
声明移到switch
语句之外来解决这个问题。但是,在更复杂的程序中,解决方案可能并不那么简单。
这仅仅是 Eclipse 为防止糟糕的编程技术而抛出的错误,还是实际的 Java 错误?
我对 Java 很陌生,所以如果这是一个新手问题,我很抱歉 - 我有一个关于“重复局部变量 Java”的谷歌,但到目前为止,所有出现的都是人们寻求帮助来解决问题(通常的解决方案是重命名其中一个变量),而不是讨论问题本身。
TL;DR 是否可以在不破坏所有日志记录的情况下抑制单个 Spark 日志记录消息?
我正在 EMR 上运行 Spark Streaming 作业,并获取如下日志消息:
17/08/17 21:09:00 INFO TaskSetManager: Finished task 101.0 in stage 5259.0 (TID 315581) in 17 ms on ip-172-31-37-216.ec2.internal (107/120)
17/08/17 21:09:00 INFO MapPartitionsRDD: Removing RDD 31559 from persistence list
17/08/17 21:09:00 INFO DAGScheduler: Job 2629 finished: foreachPartition at StreamingSparkJob.scala:52, took 0.080085 s
17/08/17 21:09:00 INFO DAGScheduler: ResultStage 5259 (foreachPartition at StreamingSparkJob.scala:52) finished in 0.077 s
17/08/17 21:09:00 INFO JobScheduler: Total delay: 0.178 s for time 1503004140000 ms (execution: 0.084 …
我在 Helm 图表(例如)中经常看到的一种模式是将布尔值设置为默认值true
,除非提供了一些覆盖值:
feature_enabled_in_k8s_resource: {{ default true .Values.foo_feature_enabled }}
Run Code Online (Sandbox Code Playgroud)
也就是说 - “如果foo_feature_enabled
设置为 Helm 输入中的任何值(通过--set
、values.yaml
等),则设置feature_enabled_in_k8s_resource
为该值 - else(如果未设置),则设置feature_enabled_in_k8s_resource
为true
”
但是,我无法按照预期覆盖该值 -false
在 中设置值values.yaml
和/或--set foo_feature_enabled=false
作为参数传递,仍然会导致模板保存值为true
。
我怀疑这是因为这false
是一个“虚假”值,因此default
将其解析为“需要替换”。
传递一个字符串值("false"
in values.yaml
、 或--set-string foo_feature_enabled=false
)确实出现(从helm template [...]
输出中)设置为feature_enabled_in_k8s_resource
-"false"
但不清楚 Kubernetes 产生的实际应用程序是否会正确解释它(也就是说 - 它可能会解释一个非空字符串作为“真实”,让我们回到原来的默认行为)。即使这有效,它在某种程度上感觉很糟糕,表明我错过了“正确的”解决方案。
(据推测,实际的解决方案是 Helm …
我正在掌握Python SDK,之前从未使用过 GraphQL (但我熟悉基本概念)。我能够odata_next_link
从响应中检索值,但我不确定如何使用它。我从这里注意到:
您应该在下一页结果的请求中的 @odata.nextLink 属性中包含整个 URL。根据执行查询的 API,@odata.nextLink URL 值将包含 $skiptoken 或 $skip 查询参数。URL 还包含原始请求中存在的所有其他查询参数。不要尝试提取 $skiptoken 或 $skip 值并将其用于不同的请求。
但是,我不确定如何在下一个请求中包含该 URL。目前,我的查询看起来像response = await graph_client.groups.by_group_id(group_id).transitive_members.get()
- 我没有看到更改基本网址的选项。我想我可以做这样的事情:
query_params = GroupsRequestBuilder.GroupsRequestBuilderGetQueryParameters(
skip_token = parse_qs(urlparse(response.odata_next_link).query)['$skipToken'][0]
)
request_configuration = GroupsRequestBuilder.GroupsRequestBuilderGetRequestConfiguration(
query_parameters=query_params
)
response = await graph_client.[...].get(request_configuration)
Run Code Online (Sandbox Code Playgroud)
但该报告GroupsRequestBuilder.GroupsRequestBuilderGetQueryParameters.__init__() got an unexpected keyword argument 'skip_token'
(如果我尝试命名参数skiptoken
或,则类似skipToken
)
我的目标是创建一个可以使用Java读取和写入的本地数据库.我有一些使用Python操作本地sqlite数据库的经验,并通过VB.Net与Microsoft Azure上的现有网络数据库进行交互,但是用于创建数据库的Java公式正在逃避我.
大多数源(如JDBC Docs)似乎假设您通过网络协议或localhost上托管的数据库访问数据库.我期望的实现是在文件(或文件集合)中创建和存储数据库,以便可以在本地存储和访问它,而无需网络连接(可通过"文件:"协议).
该JDBC教程看起来像一次我运行起来将是非常有用的,但目前是超出了我的范围,因为我甚至不具有现有的数据库呢.
许多 消息来源提出了H2,MySQL,Derby或Hypersonic DB等解决方案.但是,由于以下原因,我不愿意安装扩展程序(如果这是正确的术语):
出于类似的原因,安装Microsoft SQL Server效率不高.
这个答案看起来很接近我的目标; 但是,它给出了错误:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/?user=root&password=rootpassword
Run Code Online (Sandbox Code Playgroud)
并尝试"jdbc:file://targetFile.sql"给出类似的错误.
我已经看到术语"嵌入式"数据库,我认为这是"本地数据库"的一个子集(即本地数据库存储在同一系统中 - 嵌入式数据库是仅由单个应用程序使用的本地数据库) - 如果我的定义有误,请随时纠正我!